Themenbild Blogbeiträge

Opt-Out-Code für Google Analytics-Tracking mit JS

Autor: Kristof Benninger – Datum: 17.03.21

Conversion Tracking in den Zeiten der DSGVO” klingt wie der berühmte Roman “Die Liebe in den Zeiten der Cholera” von Gabriel García Márquez. Tatsächlich erfährt das sogenannte Conversion Tracking in der DSGVO jedoch wenig Liebe und Zärtlichkeit, weshalb dessen Anwendung durch zahlreiche Maßnahmen rechtskonform abgesichert werden muss.

 

Um die geltenden Datenschutzbestimmungen für das Conversion Tracking über Google Analytics zu erfüllen, muss zunächst ein Auftrag zur Datenverarbeitung abgeschlossen werden. Das ist wirklich noch die leichteste Übung in diesem Prozedere. Der Tracking-Code muss schließlich noch auf jeder Seite implementiert werden, die für unsere Erfassung von Relevanz ist. Wir müssen das Ganze natürlich weiterhin auch in der sowieso schon ellenlangen Datenschutzerklärung festhalten. Zudem braucht unsere Website dann auch noch ein DSGVO-konformes Consent Tool.

In der Datenschutzerklärung sollte sich außerdem noch ein Link zu dem Browser-Plugin befinden, welches die Sendung und Nutzung der von den Cookies gesammelten Informationen an und durch Google verhindert. Da dieses Plugin jedoch dummerweise (noch) nicht von allen Browsern unterstützt wird und auch auf mobilen Endgeräten nicht funktioniert, müssen wir in die Datenschutzerklärung vorsichtshalber auch noch einen ominösen Opt-Out-Link einbauen, der die Datenerfassung durch Google Analytics auch für Smartphones und jedwede Art von Browser deaktiviert.

Der Link kann folgendermaßen aussehen:

< a href=’javascript:gaOptout();‘> Erfassung von Daten durch Google Analytics für diese Website deaktivieren < /a >

 

Natürlich könnte man das Aufrufen der JS-Funktion gaOptout() auch etwas zeitgemäßer gestalten, indem man beispielsweise dem Link-Tag eine ID zuweist und dann für das Element mit dieser ID einen Eventlistener erstellt, der wiederum die entsprechende Funktion aufruft. Modernisten dürfte also folgender Code zufrieden stellen:

< a href=“ id=’optout‘> Erfassung von Daten durch Google Analytics für diese Website deaktivieren < /a >

 

Dann könnte man im nächsten Schritt die entsprechende Funktion einfach über einen Eventlistener aufrufen:

const optoutLink = document.getElementById(„optout“);

optoutLink.addEventListener(„click“, gaOptout);

 

Beides würde funktionieren. Im ersten Fall wird die JS-Funktion über das href-Attribut aufgerufen, im zweiten Fall – vielleicht etwas JS-konformer – über einen Eventlistener. Hier sind wir noch beim übersichtlichen Part.

Kommen wir nun zum interessanten Teil des Codes. Angenommen wir haben also den entsprechenden Link in unserer Datenschutzerklärung so wie in einem der beiden obigen Fälle platziert. Dann muss irgendwo auf der Datenschutzseite auch der entsprechende JS-Code implementiert sein, sei er nun direkt auf der Seite definiert oder über eine externe Quelle eingebunden. So sieht dieser aus:

 <script>

 

var gaProperty = ‚UA-XXXXXXX-X‘;

 

var disableStr = ‚ga-disable-‚ + gaProperty;

 

if(document.cookie.indexOf(disableStr + ‚=true‘) > -1) 

{window[disableStr] = true; }

 

function gaOptout() {

 

document.cookie = disableStr + ‚=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/‘;

 

window[disableStr] = true;

 

alert(„Google Analytics wurde deaktiviert“);

 

</script>

 

Schnappatmung einstellen, wir bröseln den Code nun der funktionellen Reihe nach auf. Angenommen wir klicken nun auf den Link, sagen wir der Einfachheit und Direktheit halber auf den ersten Link, bei dem die JS-Funktion über das href-Attribut aufgerufen wird. Was passiert dann? Die Funktion gaOptout() ist ja auf unserer Seite vorhanden und wird aufgerufen. Nach der geschweiften Klammer wird ein Cookie gesetzt:

 

document.cookie = disableStr + ‚=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/‘;

 

Das Cookie setzt sich zusammen aus der Bezeichnung, festgehalten in der Variable disableStr, dem Wert, der diesem Cookie zugewiesen wird (hier ist der Wert der String „true“) sowie einem Ablaufdatum, welches man durch expires= definiert, und dem Pfad, der beschreibt, welchen Gültigkeitsbereich das Cookie hat. Das /-Zeichen bedeutet, dass das Cookie nun überall auf unserer Website verfügbar ist.

Das oben gesetzte Cookie ist also für die gesamte Website gültig und läuft erst in ferner Zukunft am 31.12.2099 ab. Doch welche Bezeichnung steckt nun hinter der Variable disableStr? Dazu müssen wir den JS-Code von Anfang an betrachten.

Zunächst wird eine Variable gaProperty definiert. Deren Wert ist ein String, hier “UA-XXXXXXX-X”, dessen X-Zeichenfolge wiederum als Platzhalter für die Property-Tracking-ID von Google Analytics fungiert. Hier sagen wir also, dass der Wert der Variable gaProperty ein String ist, der der Tracking-ID entspricht, welche für Google Analytics auf der Website für die entsprechende Property implementiert wurde.

Als Nächstes definieren wir die Variable disableStr:

var disableStr = ‚ga-disable-‚ + gaProperty;

 

Hier weisen wir als Wert zunächst den String “ga-disable-” zu. Das Kürzel “ga” steht für Google Analytics. Der zweite Teil ist dann die Google Analytics Property-ID, womit wir die Wertzuweisung für die Variable disableStr wie folgt lesen können:

var disableStr = Google Analytics deaktivieren für folgende Property-ID…;

 

Deaktiviert wird aber durch die bloße Zuweisung eines Strings an eine gewöhnliche Variable zunächst einmal gar nichts! Was bringt das also? Wende wir uns wieder der Funktion zu. Wir wissen jetzt, dass der Name des gesetzten Cookies wie folgt lautet:

ga-disable-UA-XXXXXXX-X

 

Man hätte dem Cookie auch sonst irgendeine Bezeichnung geben können, diese macht jedoch durchaus Sinn, vor allem im Hinblick darauf, dass wir dann wissen, was gemeint ist. In der nächsten Zeile folgt der Part, der das Google Analytics-Tracking in der Tat außer Kraft setzt:

window[disableStr] = true;

 

Man hätte auch schreiben können

window[“ga-disable-UA-XXXXXXX-X”] = true;

 

Die Anweisung lautet also ganz eindeutig: Deaktiviere für Google Analytics das Tracking für die Property-ID soundso. Mit dieser einfachen Zeile wurde also das Tracking gestoppt. Die alert-Meldung darunter ist für den User als Bestätigung durchaus sinnvoll und wichtig, kann jetzt aber ignoriert werden. Warum haben wir dann eigentlich die anderen Codebestandteile geschrieben, wenn der Code window[disableStr] = true ausreicht, um das gewünschte Ergebnis zu erreichen?

Gute Frage, hier kommt die Antwort:

Wir wollen ja nicht nur, dass das Tracking für die Seite, auf der wir den Opt-Out-Link angeklickt haben, deaktiviert wird, sondern auch für alle anderen Seiten. Genau aus diesem Grund setzen wir das Cookie. Nehmen wir wieder an, wir haben auf der Datenschutzseite den Opt-Out-Link angeklickt und für diese Seite wurde das Google Tracking deaktiviert. Was passiert nun, wenn wir etwa zur Startseite zurückkehren, wo der Tracking-Code ebenfalls implementiert ist?

Sofern wir auf der entsprechenden Seite den obigen JS-Code eingefügt haben, sollte dann dort geprüft werden, ob ein Cookie gesetzt wurde, das uns signalisiert, den Analytics Tracking-Code zu deaktivieren:

if (document.cookie.indexOf(disableStr + ‘=true’) > -1) 

{ window[disableStr] = true; }

 

Was sagt uns obiges Codeschnipsel? Falls die Indexposition eines Cookies mit dem Namen des Wertes der Variabel disableStr und dem dazugehörigen Wert true (gemeint ist hier das Wort true als String und nicht der boolesche Wert true!) größer ist als -1, also mindestens die Indexposition 0 hat, also auf jeden Fall vorhanden ist, dann führe folgende Anweisung aus:

window[disableStr] = true; 

 

Oder mit anderen Worten: Falls das Cookie mit dem Namen “ga-disable-UA-XXXXXXX-X” und dem Wert “true” gesetzt wurde, dann deaktiviere das Google Analytics-Tracking. Wir setzen also das Cookie auf der Datenschutzseite, damit auf anderen Seiten überprüft werden kann, ob wir uns für ein Opt-Out entschieden haben. Den Code könnte man für alle Seiten bis auf die Datenschutzseite noch insofern kürzen, als wir dort die Funktionsdefinition auch weglassen können. Die Funktionsdefinition brauchen wir schließlich nur dort, wo diese auch aufgerufen werden soll, und das ist in unserem Fall nur die Datenschutzseite. Für alle anderen Seiten reicht die Definition der Variablen und die if-Anweisung zur Überprüfung des entsprechenden Cookies.

Hier nochmal eine Info-Grafik, die das Erklärte zusammenfasst:

 

 

 

Opt Out Grafik

WeDeSu-Blog

Mann mit Maske vor dem Gesicht kann nichts sehen

Keywords & Konvertierung – Der blinde Fleck

Effektive Keywords müssen eine Konvertierung des Nutzerverhaltens bewirken. Neben Suchvolumen u. Wettbewerb braucht es aber noch einen weiteren Indikator, um das zu garantieren. Welcher das ist, erfahren Sie im Blogbeitrag über Keywords & Konvertierung.

Daumen hoch Daumen runter

Gute Backlinks, schlechte Backlinks

Was sind gute Backlinks, was sind schlechte Backlinks? Wie kommt man an gute Backlinks heran und wie befreit man sich von schlechten Backlinks? Lesen Sie mehr dazu im Blogbeitrag über Backlinks.
Fragezeichen

Was war nochmal was? Sitemap vs. .htaccess vs. robots.txt

Jeder, der sich in das Thema SEO einarbeitet, lernt früher oder später drei Dateien kennen, die sinnvoller Bestandteil der Suchmaschinenoptimierung sind: Sitemap, .htaccess u. robots.txt. Welchen Zweck diese jeweils erfüllen, erfahren Sie im Blogbeitrag über Sitemaps, .htaccess u. robots.txt.

 

Opt Out

Opt-Out-Code für Google Analytics-Tracking mit JS

Wie funktioniert eigentlich der JavaScript Opt-Out-Code für das Google Analytics-Tracking? Unser Blogbeitrag über den Opt-Out-Code für das Analytics-Tracking liefert die Erklärung.

 

Copyright 2021 – Kristof Benninger