Iubenda logo
Aan de slag

Documentatie

Inhoud

Hoe migreer je toestemmingen van een vorige provider naar de Privacy Controls and Cookie Solution?

Als je overstapt van een andere cookiebeheeroplossing naar de onze, wil je misschien de toestemmingen die je al hebt verzameld migreren. Dit is handig om ervoor te zorgen dat gebruikers die al toestemming hebben gegeven onder de vorige oplossing niet opnieuw de cookiebanner en het bijbehorende verzoek om toestemming te zien krijgen.

Er zijn twee manieren om dit te doen, afhankelijk van of het “oude” platform een cookie levert(synchrone methode) of een aanroep naar zijn API vereist(asynchrone methode).

Synchrone methode

Voordat je de Privacy Controls and Cookie Solution insluit, moet je een synchrone functie definiëren (bijvoorbeeld isConsentGivenByOtherPlatform) om de toestemming van het andere platform te krijgen:

<script type="text/javascript">
    function readLocalCookie(cookieName) {
        var cookies = document.cookie.split(';');
        for (var i = 0; i < cookies.length; i++) { 
            var e=cookies[i].split('=');
            if (e[0] === cookieName) {
                return e[1];
            }
        }
        return null;
    }
    function isConsentGivenByOtherPlatform() {
        var otherPlatformCookieName = 'cookie_from_other_platform'; // use the actual cookie name saved by the other platform 
        var prevConsent = readLocalCookie(otherPlatformCookieName); 
        if (prevConsent) { 
            return true; 
        } else { 
            return false; 
        } 
    }
</script>
Belangrijk

Kopieer en plak de bovenstaande code niet – het is slechts voorbeeldcode die we hebben geleverd om je te helpen de aanpak te begrijpen.

Voeg vervolgens het Privacy Controls and Cookie Solution knipsel toe, waarbij de onReady callback wordt aangeroepen:

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "en",
        "siteId": XXXXXX, // use your siteId
        "cookiePolicyId": YYYYYY, // use your cookiePolicyId
        "banner": {
            "acceptButtonDisplay": true,
            "customizeButtonDisplay": true,
            "position": "float-top-center"
        },
        "callback": {
            "onReady": function() {
                if (typeof window.isConsentGivenByOtherPlatform === 'function' && isConsentGivenByOtherPlatform()) {
                    _iub.cs.api.setPreferences({
                        consent: true,
                        ccpa: true,
                        uspr: {
                            'all': true,
                            'sd8': true,
                            'sd9': true,
                        },
                        purposes: {
                            '1': true,
                            '2': true,
                            '3': true,
                            '4': true,
                            '5': true,
                        },
                        tcfv2: {
                            'all': true,
                        },
                        gac: {
                            'all': true,
                        },
                    }, true);
                }
            }
        }
    };
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

De callback onReady controleert of er al toestemming is gegeven op een ander platform en slaat deze zo ja op door de methode _iub.cs.api.setPreferences() aan te roepen.

Toestemming per categorie

_iub.cs.api.storeConsent() maakt het ook mogelijk om doelen aan te passen in het argument dat {consent: true}, {consent: false} of {purposes: {1: true, 2: false, …}} kan zijn.

Asynchrone methode

Voordat je de Privacy Controls and Cookie Solution code insluit, moet je een functie definiëren die:

  1. accepteert een callback;
  2. detecteert de toestemming;
  3. slaat de toestemming op in een globale variabele; en
  4. roept de callback achteraf op.

Hier is een voorbeeld:

<script type="text/javascript">
    // fetch consent asynchronously from 3rd party 
    function getConsentByOtherPlatform(cb) {
        $.getJSON('http://otherplatform.com/api/get-consent', function(result) {
            if (result.given) {
                window.consentByOtherPlatform = true;
            } else {
                window.consentByOtherPlatform = false;
            }
            cb();
        });
    }
    function isConsentGivenByOtherPlatform() {
        return !!window.consentByOtherPlatform;
    }
</script>
Belangrijk

Kopieer en plak de bovenstaande code niet – het is slechts voorbeeldcode die we hebben geleverd om je te helpen de aanpak te begrijpen.

Voeg vervolgens de snippet Privacy Controls and Cookie Solution toe, waarbij de callback onReady wordt aangeroepen:

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "en",
        "siteId": XXXXXX, // use your siteId
        "cookiePolicyId": YYYYYY, // use your cookiePolicyId
        "banner": {
            "acceptButtonDisplay": true,
            "customizeButtonDisplay": true,
            "position": "float-top-center"
        },
        "callback": {
            "onReady": function() {
                if (typeof window.isConsentGivenByOtherPlatform === 'function' && isConsentGivenByOtherPlatform()) {
                    _iub.cs.api.setPreferences({
                        consent: true,
                        ccpa: true,
                        uspr: {
                            'all': true,
                            'sd8': true,
                            'sd9': true,
                        },
                        purposes: {
                            '1': true,
                            '2': true,
                            '3': true,
                            '4': true,
                            '5': true,
                        },
                        tcfv2: {
                            'all': true,
                        },
                        gac: {
                            'all': true,
                        },
                    }, true);
                }
                }
            }
        }
    };
</script>
<script type="text/javascript">
    // ask for 3rd party consent before including the CS
    getConsentByOtherPlatform(function() {
        var s = document.createElement('script');
        s.src = '//cdn.iubenda.com/cs/iubenda_cs.js';
        document.head.appendChild(s);
    });
</script>

De callback onReady controleert of er al toestemming is gegeven op een ander platform en slaat deze zo ja op door de methode _iub.cs.api.setPreferences() aan te roepen.

Toestemming per categorie

_iub.cs.api.storeConsent() maakt het ook mogelijk om doelen aan te passen in het argument dat {consent: true}, {consent: false} of {purposes: {1: true, 2: false, …}} kan zijn.

_iub.cs.api.setPreferences(consentObj, hideBanner)

De methode _iub.cs.api.setPreferences verwacht twee argumenten: consentObj (vereist) en hideBanner (optioneel).

consentObj

Het is een object met volgvoorkeuren:

  • toestemming – vereist – aanvaardt true of false – het verwijst naar algemene toestemming
  • ccpa – vereist als CCPA is ingeschakeld – accepteert true of false – dit verwijst naar privacy in de VS en wordt alleen toegepast als CCPA is ingeschakeld in Cookie Solution
  • uspr – vereist als USPR is ingeschakeld – accepteert een object met de volgende opties – dit verwijst naar USPR-toestemming en wordt alleen toegepast als USPR is ingeschakeld in Cookie Solution
    • all – accepteert true of false – deze optie stelt dezelfde waarde in voor alle doeleinden
uspr: {
   all: true // or false
}
  • [purposeId] – accepteert true of false – deze optie stelt de waarde in voor specifieke ID-doeleinden
uspr: {
   's': true, // or false
   'sh': false, // or true
   'adv': false // or true
}
  • purposes – verplicht als perPurposeConsent is ingeschakeld – accepteert een object met de volgende opties – dit verwijst naar toestemming voor doeleinden en wordt alleen toegepast als perPurposeConsent is ingeschakeld in Cookie Solution.
    • all – accepteert true of false – deze optie stelt dezelfde waarde in voor alle doeleinden
purposes: {
   all: true // or false
}
  • [purposeId] – accepteert true of false – deze optie stelt de waarde in voor specifieke ID-doeleinden
purposes: {
   '1': true, // or false
   '2': false, // or true
   '4': false // or true
}
  • tcfv2 – vereist als TCF is ingeschakeld – accepteert een object met de volgende opties – het verwijst naar TCF-toestemming en wordt alleen toegepast als TCF is ingeschakeld in Cookie Solution
    • all – accepteert true of false – deze optie stelt dezelfde waarde in voor alle TCF doeleinden
tcfv2: {
   all: true // or false
}
  • [string] – accepteert een TCF string
tcfv2: 'CP9rVEAP9rVEAB7FGCENAyEgAAAAAAAAAAAAAAAUHgJAA4AM-AjwBKoDfAHbAO5AgoBIgCSgEowJaATHAmSBNICfYFBAKDgAAAAA'
  • gac – vereist als Google Aditional Consent is ingeschakeld – accepteert een object met de volgende opties – het verwijst naar GAC-toestemming en wordt alleen toegepast als GAC is ingeschakeld in Cookie Solution
    • all – accepteert true of false – deze optie stelt dezelfde waarde in voor alle GAC-leveranciers
gac: {
   all: true // or false
}
  • [string] – accepteert een GAC string
gac: '1~1584.2292.2392'

hideBanner

Het is een booleaans om de banner wel of niet te verbergen na de voorkeursopslag, in dit geval moet het altijd zijn true

_iub.cs.api.setPreferences({ ... }, true); // hide the banner after the preference storage

_iub.cs.api.setPreferences({ ... }, false); // keep the banner after the preference storage

Zie ook