Salesforce

Clientseitiges Cookie-Management

« Go Back
Information
Clientseitiges Cookie-Management
UUID-518074a1-a6da-81c3-be52-bae7685d9c94
Article Content

[en] Cookie blocking is a crucial step for successful Cookie Consent implementation. When the OneTrust banner is integrated with a website, users can opt-in or opt-out of certain categories of cookies. But without necessary blocking mechanism in place, these choices might not be respected.

[en] To maintain compliance and ensure cookies are fired based on visitor preferences, it is necessary to have appropriate cookie blocking methods implemented when the OneTrust Banner is integrated.

Cookies selbst können nicht direkt blockiert werden. Die meisten der unter die Gesetzgebung fallenden Cookies werden jedoch durch eingefügte Skripts oder Tags wie JavaScript oder HTML iFrames gesetzt. Dazu gehören die meisten Analyse-Cookies und Cookies von Dritten, wie beispielsweise Werbe-Cookies.

Um dem Gesetz zu entsprechen, sollten solche Skripts daher blockiert oder durch andere Alternativen als Cookies ersetzt werden, wenn die Einwilligung verweigert oder widerrufen wurde.

Um dies zu erreichen, können Sie eines von mehreren benutzerdefinierten JavaScript-Verfahren zusammen mit einer Wrapper-Steuerung verwenden.

Anmerkung

Dieser Artikel behandelt nur JavaScript. Informationen zum Blockieren von iFrames finden Sie unter Manuelles Umschreiben von iFrames in Cookie Compliance.

Umschreiben des JavaScript-Typs

Dies ist eines der effizientesten Verfahren, um zu verhindern, dass durch script-Tags gesteuerte Cookies ohne Einwilligung gesetzt werden. Dieses Verfahren erfordert die am wenigsten aufwendige Änderung an Ihrer Website und erfordert keine Verwendung des Wrappers (unten).

Wichtig

Es wird empfohlen, nach Möglichkeit diesen Ansatz zu nutzen.

[en] Below are a couple examples in which this method would be applicable.

[en] In-Line Scripting Example:

<script type=’text/javascript’>
document.cookie = “targeting-cookie”+”=”+”1234”
</script>

[en] JavaScript File Example:

<script type=’text/javascript’ src=’/path/cookie.js’></script>

[en] How to Implement

Normale Skript-Tags sehen so aus:

<script type="text/javascript">
code
</script>

Wenn Sie den Skript-Typ umschreiben, müssen Sie die Skripts ändern:

<script type="text/plain" class="optanon-category-C0002">
code
</script>

Die Nummer im Klassenbezeichner entspricht der Cookie-Gruppen-ID für die Cookies, die das Skript lädt. In diesem Fall handelt es sich um Leistungs-Cookies.

[en] How it Works

Wird der obige Code geladen, wird JavaScript innerhalb der Tags nicht ausgeführt, und es werden keine Cookies gesetzt. Wenn dann der Cookie Compliance-Code geladen wird und Cookies die Einwilligung zur zugehörigen Gruppe haben, ändert er das Tag dynamisch in: script type=text/JavaScript – der Code innerhalb der Tags wird dann erkannt und wie gewohnt ausgeführt.

<script type=’text/plain’ class=’optanon-category-C0004’>
document.cookie = “targeting-cookie”+”=”+”1234”
</script>

[en] After re-writing this tag, the script would only fire on the site when a user consents to the C0004 category (Targeting Cookies). The class attribute is responsible for updating the type. When consent is withdrawn/withheld for the assigned category, the type will be text/plain; when consent is given, it will be text/javascript.

[en] In this example, when a user does not consent to Targeting cookies (C0004) , the script tag would appear as follows:

client_side_1_pc.png

[en] When a user consents to Targeting cookies (C0004), the type will appear as follows:

client_side_2_PC.png

Anmerkung

Sie können mit dieser Methode mehrere Kategorien von Cookies mit der folgenden Syntax blockieren:

<script type="text/plain" class="optanon-category-C0002-C0003-C0004">
code
</script>

Die Werte in dem Ausdruck class="optanon-category-#-#-#" entsprechen den Kategorien, die in der Cookie-Liste für die Seite eingerichtet wurden. 

Wenn Sie mit diesem Verfahren mehrere Kategorien auflisten, werden die Kategorien gleichzeitig gesperrt. Keiner der Cookies in diesen Kategorien wird gesetzt, es sei denn, der Besucher der Website stimmt der Sperrung aller Kategorien zu.

Steuerung von Optanon Wrapper

Der Optanon Wrapper ist im Hauptskript-Tag enthalten und sieht so aus:

<script type="text/javascript">
function OptanonWrapper() {
}
</script>

Er fungiert als Halter für die Hilfsverfahren, mit denen Skripts oder HTML-Tags, die das Setzen von Cookies bewirken, blockiert oder gesteuert werden. Der Wrapper wird bei jedem Seitenaufruf oder immer dann ausgeführt, wenn der Benutzer Änderungen an den Datenschutzeinstellungen im Präferenz-Center speichert.

Werden die Cookie-Gruppen von inaktiv auf aktiv umgeschaltet, so werden die entsprechenden Hilfsverfahren ausgeführt und das zugehörige JavaScript/HTML in die Seite eingefügt.

Die Skripts des Hilfsverfahrens müssen nicht innerhalb der Wrapper-Steuerung platziert werden. Wenn dies jedoch nicht der Fall ist, werden sie nur beim Laden der ersten Seite ausgeführt. Wenn Sie möchten, dass sich eine Opt-in-Aktion (inaktiv zu aktiv) sofort für den Benutzer auf der Seite widerspiegelt, dann sollten Sie den Wrapper verwenden.

Änderungen im Benutzererlebnis als Folge einer Opt-out-Aktion (aktiv zu inaktiv) werden nur beim Aktualisieren der Seite oder beim Navigieren zu einer neuen Seite berücksichtigt.

[en] Below is an example function called through OptanonWrapper():

[en] Example function:

toConsole() {
    console.log(“SUCCESS”)
}
function OptanonWrapper{
  if(OnetrustActiveGroups.includes("C0002")){
    toConsole()
  }
}

[en] OnetrustActiveGroups plays a critical role in the Optanon Wrapper Control method. OnetrustActiveGroups is a data layer variable that gets updated every time a user modifies their choices with the latest category IDs. For more details on this variable, see OnetrustActiveGroups – Verwenden des Datenschichtobjekts.

[en] In the above instance, toConsole() is an example function that is writing a message on the console when the if condition is executed. In this example, the if condition is checking for the OnetrustActiveGroups data layer variable and if it includes the C0002 category, meaning when Performance cookies are active. Whenever this condition is satisfied, the toConsole() function is executed. The toConsole() function will be called every time the OptanonWrapper() fires and when a user consents to Performance cookies (C0002).

[en] When the function is executed based on consent for Performance category, it appears as follows:

client_side_3_pc.png

Anmerkung

[en] The toConsole() function written above is strictly an example. Make sure to implement this method if there are any existing functions on the website that are required to be controlled based on consent.

[en] SDK-Specific Actions

[en] Third-party tools often have public methods that can be called to indicate to the tool that a user has granted or revoked consent. These will often result in the technology being set to “strict” or “restricted” mode so that a restricted amount of data is processed to respect a user’s choices. If the technology you want to control has these methods, you can implement them through the OptanonWrapper control. See the following example:

function OptanonWrapper(){
        if(OnetrustActiveGroups.includes(“C0002”)){
                myAnalyticsTool.setUnrestrictedMode () //consent given, operate regularly
        }else{
                myAnalyticsTool.setRestrictedMode() //consent not given, operate in restricted mode
        }
}

[en] Events

[en] The OneTrust JavaScript SDK raises several events that can be used to trigger consent-related actions. The two most relevant events are OneTrustGroupsUpdated, which fires when consent becomes available on page load and whenever consent is changed, and OTConsentApplied, which only fires when an explicit consent action has been taken.

window.addEventListener(“OneTrustGroupsUpdated”, event => {
        if(event.details.includes(“C0002”)){
                myAnalyticsTool.setUnrestrictedMode();
}else{
        myAnalyticsTool.setRestrictedMode();
}
})

Anmerkung

[en] When using this method, it’s important to ensure that the third-party technology remains uninitialized or is operating in restricted mode until consent becomes available. Otherwise, it’s possible that data collection is occurring for 1-2 seconds before the third party is told to operate in restricted mode.

[en] For more information on OneTrust JavaScript events, see [en] Cookie Consent Java Script Events Guide.

Hilfsverfahren

Hilfsverfahren werden dazu verwendet, Skripts oder HTML-Tags zu blockieren oder zu steuern, die das Setzen von Cookies bewirken.

Anmerkung

Optanon und OneTrust können austauschbar verwendet werden. Wir empfehlen jedoch die Verwendung von OneTrust.

OneTrust.InsertScript

Bei diesem Verfahren werden die Skripts, die für das Setzen von Cookies verantwortlich sind, in einer externen Datei abgelegt und dynamisch in die Seite eingefügt, wenn die Cookie-Gruppe aktiv ist, der sie zugeordnet sind.

Das Format lautet:

OneTrust.InsertScript(url, selector, callback, options, groupId)

Beispiel 1. OneTrust.InsertScript

OneTrust.InsertScript('/gaCookies.js', 'head', null, null, 'C0002');OneTrust.InsertScript('/performance-cookies-script.js', 'head', null, null, '2');

[en] In the example below, gaCookies.js is an external file that is setting Google Analytics cookies. This JavaScript file will be inserted only when Performance cookies are active. Implementing this using the InsertScript method within the OptanonWrapper() function would appear as follows:

function OptanonWrapper() { 
            OneTrust.InsertScript('path/gaCookies.js','head', null, null, 'C0002');
 }

Das Ergebnis:

[en] In this example, the gaCookies.js file will get injected before the closing head tag of the HTML when Performance cookies (C0002) are active. The following script will be inserted in the source and will be executed as a regular JavaScript file:

<script type="text/javascript" src="path/gaCookies.js"></script>
client_side_4_insertscript.png

Wenn die Gruppe Leistungs-Cookies mit der ID 2 auf aktiv oder immer aktiv gesetzt ist, wird das folgende Skript in die Seite unmittelbar vor dem abschließenden head-Tag eingefügt:

Anmerkung

[en] Please note that the gaCookies.js used in the scenario above is strictly an example. This method is applicable to any JavaScript file that is required to be injected in the code based on user consent.

In der folgenden Tabelle finden Sie eine Erläuterung der verschiedenen Parameter.

Parameter

Datentyp

Beschreibung

Wert

Erforderlich

URL

Zeichenfolge

Absolute oder relative URL der JS-Datei

Ja

Selektor

Zeichenfolge

Selektor für übergeordnetes HTML-Element, wo das script-Tag eingefügt wird

Head

Body

Übergeordnete ID

Ja

Rückruf

Funktion

Eine JavaScript-Funktion, die nach dem Einfügen des Skript-Tags aufgerufen wird

Funktionsname

null

Ja

Optionen

Objekt

Eine Liste von Verhaltensweisen, wenn das Skript-Tag eingefügt wird

Siehe Definition der Optionen unten

Ja

groupId

Anzahl

Gruppen-ID, für die das Skript-Tag eingefügt wird

Optanon Gruppen-ID

Ja

OneTrust.InsertHTML

Dieses Verfahren sollte verwendet werden, wenn der Code, der die Einstellung von Cookies steuert, entweder ein Standard- oder ein benutzerdefiniertes HTML-Tag ist.

Das Format lautet:

OneTrust.InsertHtml(element, selector, callback, options, groupId)

Beispiel 2. OneTrust.InsertHTML

OneTrust.InsertHtml('<iframe type="text/html" width="640" height="360" frameborder="no" src="https://www.youtube.com/embed/v=GEH-usLSwqE"></iframe>','123', null, null, 'C0003');OneTrust.InsertHtml('<customElement customAttribute="value">some content</customElement>', 'parent_element_id', null, null, '3');

[en] In this example, the iFrame is the standard HTML element to be injected in a section that has ID 123. The first null value specifies that there is not a callback function and the second null value specifies that there is no options parameter added. The group ID (C0003) will allow the element to be inserted when consent is granted for Functional-category cookies.

Das Ergebnis:

client_side_5_inserthtml.png

Anmerkung

[en] Please note that this method will automatically add an enclosing div around the element that is getting inserted.

<customElement customAttribute="value">some content</customElement>

Wenn die Gruppe Funktionalitäts-Cookies auf inaktiv gesetzt ist, wird das Skript nicht eingefügt.

In der folgenden Tabelle finden Sie eine Erläuterung der verschiedenen Parameter.

Parameter

Datentyp

Beschreibung

Wert

Erforderlich

Element

Zeichenfolge

Einzufügendes HTML-Tag

Ja

Selektor

Zeichenfolge

ID des übergeordneten HTML-Elements, wo das Element eingefügt wird

Übergeordnete ID

Ja

Rückruf

Funktion

Eine JavaScript-Funktion, die nach dem Einfügen des Elements aufgerufen wird

Funktionsname

null

Ja

Optionen

Objekt

Eine Liste von Verhaltensweisen, wenn das Element eingefügt wird

Siehe Definition der Optionen unten

null

Ja

groupId

Anzahl

Gruppen-ID, für die das Element eingefügt wird

Optanon Gruppen-ID

Ja

Anmerkung

Einige Komponenten von Drittanbietern, die Cookies setzen, verwenden sowohl JavaScript- als auch HTML-Elemente, die voneinander abhängig sind. In den meisten Fällen müssen Sie dann sowohl das HTML- als auch das JavaScript-Hilfsverfahren gepaart verwenden, um das Problem zu vermeiden, dass ein Element ohne das andere vorhanden ist.

Der Optionsparameter

Bei beiden obigen Methoden bietet der Optionsparameter eine Möglichkeit, den Seiteninhalt basierend darauf, ob die Einwilligung für eine Gruppe von Cookies erteilt wurde, weiter zu beeinflussen. Dies stellt einen einfachen Mechanismus dar, der es Besitzern von Websites ermöglicht, entweder das Opt-in anzuregen oder den Besuchern, die sich abmelden, ein anderes Benutzererlebnis zu bieten.

Der Parameter kann einige oder alle der folgenden Angaben enthalten:

{
deleteSelectorContent: <bool>,
makeSelectorVisible: <bool>,
makeElementsVisible: [‘<id>’, ‘<id>’, ‘<id>’, ...],
deleteElements: [‘<id>’, ‘<id>’, ‘<id>’, ...]
}

Die folgende Tabelle beschreibt das Verhalten der einzelnen Optionen.

Option

Datentyp

Beschreibung

Wert

Erforderlich

deleteSelectorContent

Boolesch

Löschen Sie alle übergeordneten Containerinhalte, bevor Sie das Element einfügen.

true

false

Nein

makeSelectorVisible

Boolesch

Zeigt das übergeordnete Container-Element nach dem Einfügen des Elements an.

true

false

Nein

makeElementsVisible

Array

Eine Liste der HTML-Element-IDs, die nach dem Einfügen des Elements angezeigt werden sollen.

[ID, ID]

Nein

deleteElements

Array

Eine Liste der HTML-Element-IDs, die nach dem Einfügen des Elements gelöscht werden sollen.

[ID, ID]

Nein

[en] Below are examples for each of these options:

  • [en] deleteSelectorContent

    [en] One of the use-cases for this option is to replace content with script.

    function OptanonWrapper() {
                  let options = { deleteSelectorContent: true
                  }
                 OneTrust.InsertScript('path/gaCookies.js', 'div1', null, options, 'C0003');
                 }

    [en] In the above snippet, OneTrust.InsertScript is utilized to inject gaCookies.js in the parent element with ID div1. Since deleteSelectorContent is set to true, the content of the div1 element will be removed and gaCookies.js will be inserted when a user consents to Functional cookies.

    [en] Results:

    • [en] When functional cookies are inactive:

      delete_selector_content_1.png
    • [en] When functional cookies are active:

      delete_selecor_content_2.png
  • [en] makeSelectorVisible

    [en] This option is applicable when a user has to first consent to a certain category to view the content of an element. To use this option, the prerequisite is for the parent element to be hidden.

    function OptanonWrapper() {
            let options = {
              makeSelectorVisible: true
            }
            OneTrust.InsertScript('path/gaCookies.js', 'div1', null, options, 'C0003');
          }

    [en] In the above example, if the div1 element is hidden initially, then display: block will be added for that element. When Functional cookies are toggled off, the div1 element will not be visible. When a user consents to the Functional category, gaCookies.js will be inserted and the element will become visible since makeSelectorVisible is set to true.

    [en] Results:

    • [en] When functional cookies are inactive:

      make_selector_visible_1.png
    • [en] When functional cookies are active:

      make_selector_visible_2.png
  • [en] makeElementsVisible

    [en] This option is useful when there are multiple elements that are required to be made visible on consent along with script insertion.

    function OptanonWrapper() {
            let options = {
                            makeElementsVisible: ['div2','div3']
                    }
                    OneTrust.InsertScript('path/gaCookies.js', 'div1', null, options, 'C0003');
            }

    [en] In the above example, the OneTrust.InsertScript will insert gaCookies.js in the HTML element with ID div1 when a user consents to Functional cookies. Additionally, because the makeElementsVisible parameter is added, the elements in its array (div2 and div3) will be made visible if they were hidden initially.

    [en] Results:

    • [en] When functional cookies are inactive:

      make_elements_visible_1.png
    • [en] When functional cookies are active:

      make_elements_visible_2.png
  • [en] deleteElements

    [en] This is useful in a scenario when multiple elements are required to be deleted once consent is given. Similar to makeElementsVisible, this option is also taken in array as a value.

    function OptanonWrapper() {
                    let options = {
                    deleteElements: ['div2','div3']
                    }
                    OneTrust.InsertScript('path/gaCookies.js', 'div1', null, options, 'C0003');
            }

    [en] In the above example, when a user consents to Functional cookies, the gaCookies.js will be inserted in div1. Because the deleteElements parameter is added, the div2 and div3 elements will be deleted.

    [en] Results:

    • [en] When functional cookies are inactive:

      delete_elements_1.png
    • [en] When functional cookies are active:

      delete_elements_2.png

Anmerkung

  • HTML-Elemente werden immer vor dem Tag des schließenden übergeordneten Elements eingefügt.

  • Um makeSelectorVisible einzustellen, muss das übergeordnete Element zunächst manuell ausgeblendet werden.

  • Alle HTML-Elemente, die in der Liste der IDs für makeElementsVisible angegeben sind, müssen zunächst manuell ausgeblendet werden.

  • deleteSelectorContent löscht nur den Inhalt des Containerelements.

  • deleteElements löscht jedes angegebene Element vollständig.

  • Die Verwendung des Selektors zum Festlegen eines anderen Elements als „Head“ oder „Body“ erfordert den ID-Wert des übergeordneten Elements.

  • [en] The Options parameter can be used with both the Wrapper Control methods – InsertScript and InsertHtml

 
Article Visibility
195,189
Translation
German
Not Checked

Powered by