Customer Privacy Api

The Customer privacy API is a browser-based JavaScript API that allows developers to read and write cookies associated with buyers' consent to be tracked.

The API is implemented as a property on the global window.Shopline object, and is accessible to all SHOPLINE stores.

You can use the API to build consent collection mechanisms, such as General Data Protection Regulation (GDPR) compliance banners.

For marketing and analytics use cases, you can use the API when tracking or exporting data about storefront visitors to cover GDPR compliance.

To use the Customer privacy API, merchants must restrict data collection for the App's target region in their store admin settings.

You can handle consent using the following methods:

If the API fails to load, the banner will not initialize.

Initializing​

To initialize the Client Privacy API, you need to use the loadFeatures method and initialize your banner in the callback function:

window.Shopline.loadFeatures(
[
{
name: 'consent-tracking-api',
version: '0.1'
}
],
error => {
if (error) {
throw error; // If the following operations are not performed, an error can be thrown in advance here
}
new Banner(); // or initialize your banner here
}
)

shouldShowGDPRBanner(): boolean​

You can use this method to determine if the GDPR banner should be shown:

window.Shopline.customerPrivacy.shouldShowGDPRBanner()

Return value​

This method returns a boolean indicating whether you should display the GDPR banner to visitors.

The response summarizes the visitor's location, the merchant's preferences, and whether the visitor has provided consent value in the past year.

Visitor consent form provided in the past yearEU visitorsMerchants limit tracking for European customersBoolean value
Not applicableNot applicable✘false
✘✔✔true
✘✘✔false
✔✔✔false
✔✘✔false

You can use this method to set the buyer's response to tracking consent requests:

window.Shopline.customerPrivacy.setTrackingConsent(consent: boolean, callback: function)

Call parameters​

ParameterTypeDescription
consentboolean
  • Represents the buyer's response to a tracking consent request. You can use banner UI elements or other similar mechanisms to get responses.
  • If set to true, the API returns a custom event called trackingConsentAccepted.
  • If set to false, no custom event will be returned, but the callback function will still be executed.
    callbackfunctionFunction to execute after the API has set tracking consent. You can use this feature to hide UI banner elements or perform similar tasks.

    Example​

    The following sample request shows a JavaScript function that sets consent to true and executes a callback function to hide the banner.

    function handleAccept(e) {
    window.Shopline.customerPrivacy.setTrackingConsent(true, hideBanner);
    document.addEventListener('trackingConsentAccepted', function () {
    console.log('trackingConsentAccepted event fired');
    })
    }

    Callback function result​

    The API executes the callback function and optionally emits a custom event called trackingConsentAccepted。

    Example​

    Successful requests return an object containing the status:

    {
    code: "SUCCESS",
    data: true,
    message: "OK",
    success: true
    }

    If the request has errors, an error object is returned:

    {error: [string]}

    Visitor tracking​

    You can use the Customer privacy API to check if a customer has consented to being tracked, and if the merchant has decided against selling visitor data. You must ensure that the API is initialized.


    For visitor tracking consent, you should implement a mechanism to listen for consent collection events that can be fired asynchronously on the page to ensure you don't miss any tracking opportunities.

    You can collect consent using the following methods:

    Tracking and data sending can continue if the Customer privacy API is not available. All methods should check that the API is available before checking whether the tracking or sale of data is blocked.

    Example of API check:

    if (!window.Shopline.customerPrivacy || window.Shopline.customerPrivacy.userCanBeTracked()) {
    startTracking()
    }

    Initializing​

    To initialize the Customer Privacy API, you need to make the API available on the page using the loadFeatures method:

    window.Shopline.loadFeatures(
    [
    {
    name: 'consent-tracking-api',
    version: '0.1'
    }
    ],
    error => {
    if (error) {
    throw error; // If the following operations are not performed, an error can be thrown in advance here
    }
    }
    )

    userCanBeTracked(): boolean​

    You can use this method to return whether a storefront visitor has consented to being tracked:

    window.Shopline.customerPrivacy.userCanBeTracked();

    Return value​

    The API returns a boolean indicating whether the user can be tracked. The response aggregates the visitor's consent and location, as well as the merchant's preferences.

    Visitor's ConsentEU visitorsMerchants limit tracking for European customersBoolean value
    Not applicableNot applicable✘false
    ✔✔✔true
    ✔✘✔true
    ✘✔✔false
    ✘✘✔false
    undeclared✔✔false
    undeclared✘✔true

    A trackingConsentAccepted event is fired when active tracking consent has been collected on the page.

    By listening to this event and calling your custom start tracking method when it fires, you can avoid any possible data loss due to lack of asynchronous consent collection.

    document.addEventListener('trackingConsentAccepted', function () {
    // Trigger a custom method to start tracking
    });
    Was this article helpful to you?