Google Analytics Opt Out-Script
Besucherauswahl zur Teilnahme am Tracking

Mit dem kostenlosen Opt-Out-Script für Analytics ist es möglich, dem Besucher einer Website die Wahl zu lassen, ob er am Tracking teilnimmt oder nicht. Die Auswahl wird in einem Cookie (solange wenigstens das noch erlaubt ist) gespeichert und gilt so auch für folgende Seitenaufrufe oder Besuche der Site innerhalb des nächsten Jahres.

Achtung: Die hier auf der Seite beschriebene und als Download verlinkte Fassung basiert auf einem alten Trackingcode, der noch vor dem asynchronen Tracking und schließlich dem Universal Analytics Tag im Einsatz war. Da eine Umstellung auf Unisersal Analytics unumgänglich ist, verwenden Sie bitte statt dieser Version die aktuelle Fassung des OptOut-Scripts für Universal Analytics.

Es basiert ursprünglich auf der Idee / Lösung von Marco Hassler und ist mit der Absicht verändert worden, die Implementierung ausschließlich durch zentrale Anpassung eines Templates zu ermöglichen und dazu keine Nebenwirkungen oder Anpassungsbedarf bei zusätzlichen Aufrufen von Trackingmethoden innerhalb einzelner Seiten zu erzeugen. Zu diesem Zweck wird ein "Dummy-Tracker" generiert, der alle evtl. Aufrufe entgegennimmt, aber keinerlei Aktionen ausführt (Details siehe unten).

Ergänzung zu den Opt-Out-Browsererweiterungen von Google

Google bietet ein Add-on zur Deaktivierung von Analytics auf besuchten Websites für aktuelle Fassungen von Firefox, Internet Explorer und Google Chrome an. Während man mit diesen Erweiterungen theoretisch komplett aus dem Tracking aussteigen kann, ist wohl in der Realität zu erwarten, dass die Masse der Besucher einer mit Google Analytics ausgestatteten Website keine Ahnung von deren Existenz hat. Aus diesem Grund sollte es für viele Besucher ungeachtet der Browsererweiterungen hilfreich sein, wenn direkt auf jeder Seite ersichtlich ist, dass Tracking stattfindet und eine Option zum Ausstieg besteht.

Download des Scripts

Die Verwendung des Scripts auf Ihrer eigenen Website ist ohne Einschränkung und kostenlos möglich. Es besteht auch keine Pflicht, einen Link auf diese Domain zu setzen, wobei wir dies freilich - z. B. im Rahmen der Erweiterung der Datenschutzbestimmungen - durchaus begrüßen würden ;). Änderungen am Script bedürfen keiner expliziten Erlaubnis.

Hier kann das Script nebst Anleitung und Beispielseite kostenlos heruntergeladen werden.

Einbau

Hochladen: Nach dem Entpacken des Archivs auf dem lokalen Rechner steht zunächst das Hochladen der Scriptdatei gms_gaswitch-v100.js auf den eigenen Webserver an. Dies muss nicht im Stammverzeichnis des Servers geschehen, wird im Folgenden aber angenommen. Pfadangaben aus den Beispielen müssen also angepasst werden, wenn ein anderer Order für die Ablage von Scripten verwendet wird.

Einbinden des Scripts: Liegt das Script auf dem Server, ist es im nächsten Schritt erforderlich, dieses in allen benutzenden Seiten zu referenzieren. In der Regel kann dies in einem Template oder einer Seitenvorlage des CMS geschehen; in dem Bereich, in dem die Metadaten der Seiten definiert werden. Hier ist ein Link zum Script einzufügen:

<script type="text/javascript" src="gms_gaswitch-v100.js"></script>

Hinweis: Die Einbindung kann theoretisch auch später im Code der Seite vorgenommen werden oder auch unmittelbar vor den (angepassten) Trackingcode gesetzt werden. Auf jeden Fall ist es empfehlenswert, den Einbau - also diesen und die folgenden Schritte - zunächst an einer Testseite vorzunehmen und hierfür ggf. zunächst eine Kopie des aktuellen Templates vorzunehmen, um den Livebetrieb der eigenen Website nicht zu beeinträchtigen. Erst nach erfolgreichem Test auf einer einzelnen Seite sollten Sie sich dann als Webmaster oder Administrator des CMS selbst an den Einbau in die komplette Website wagen.

Einbau der Checkbox: Der Benutzer soll wählen können, ob Google Analytics verwendet wird oder nicht. Dazu ist es erforderlich, irgendwo auf der Seite - z. B. im Fuß oder ganz unten unter allen anderen Inhalten - eine Checkbox unterzubringen, mit der diese Wahl getroffen werden kann. Empfehlenswert ist es - genau wie in der Variante von Marco Hassler vorgeschlagen - hier gleich einen Link unterzubringen, der zu einer Erklärung in den Datenschutzhnweisen oder an anderer geeigneter Stelle auf der eigenen Website; z. B. per Seitenanker; führt.

<input type="checkbox" id="checkGAActive" value="false" > Anonyme Datenaufzeichnung  [<a href="datenschutz.html#Analytics">Mehr Info</a>]

Die Positionierung und ausreichend (un)auffällige Formatierung des Elements muss dann normalerweise separat im CSS des Designs untergebracht werden, wenn der Einbau in die komplette Site geschieht. Im Testbetrieb auf einer einzelnen Seite reicht sicherlich das Standardformat oder eingebetette <style> - Anweisungen. Über die endgültigen Betextung von Checkbox und Link muss jeder selbst entscheiden ;) Ein Beispiel und einen Vorschlag für einen solchen Hinweistext finden Sie z. B. auf dieser Website (siehe gaaanz unten).

Anpassung des Trackingscripts: Nun muss noch der vorhandene Analytics-Trackingcode auf der Seite (und später im Template aller Seiten) modifiziert werden. Die Modifikation zunächst einmal dazu, erstens die Checkbox zu "initialisieren", indem ein ggf. vorhandener Cookie ausgelesen und der Zustand der Checkbox (ausgewählt oder nicht) entsprechend eingestellt wird. Dazu dient die erste Zeile des angepassten Codes, in der gmsInitGASwitch('checkGAActive'); aufgerufen wird; die ID der Checkbox wird dabei als Parameter übergeben.

Außerdem wird ein Ereignis an die Checkbox gebunden, so dass beim Klick auf die Checkbox die Entscheidung des Anwenders in einem Cookie abgelegt wird.

Typischer Originalcode

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>

<script type="text/javascript">
try {
_gat._anonymizeIp();
var pageTracker = _gat._getTracker("UA-xxxxxx-xx");
pageTracker._trackPageview();
} catch(err) {}
</script>

Angepasste Fassung

<script type="text/javascript">
gmsInitGASwitch('checkGAActive');
if (gmsGATrackingActive()) {
   var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
   document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>

<script type="text/javascript">
if (gmsGATrackingActive()) {
   try {
   _gat._anonymizeIp();
   var pageTracker = _gat._getTracker("UA-xxxxxx-xx");
   pageTracker._trackPageview();
   } catch(err) {}
} else {
   var pageTracker = new gmsDummyTracker();
}
</script>

Weiterhin wird der Code so angepaßt, dass je nach Auswahl des Anwenders entweder der normale "pageTracker" (oder der entsprechende Name in Ihrem Code, der ggf. abweichen kann) verwendet wird oder der oben angesprochene "Dummy-Tracker" zum Einsatz kommt, der alle ggf. folgenden Aufrufe durch onclick- oder andere Ereignisse auf der Seite abfangen soll, so dass keine Script-Fehlermeldungen auf der Seite ohne aktiven "echten" Tracker entstehen. Dies befreit von der Erfordernis der Originallösung, vor allen Aufrufen einer Analytics-Funktion explizit durch Codeanpassung nachzufragen, ob diese ausgeführt werden soll oder nicht.

Verwendung über mehrere Subdomains

Generell gilt die vorgenommene Einstellung für alle Seiten, die auf der betreffenden Domain bereitgestellt werden und die das Script verwenden. Mehrere Subdomains (z. B. www.meinedomain.de, blog.meinedomain.de und sonstwas.meinedomain.de) müssen aber ggf. vom Besucher einzeln aktiviert / deaktiviert werden. Um dies zu vermeiden, kann der Domainname bei der Initialisierung angegeben werden. In diesem Fall gilt die Einstellung auch über Domaingrenzen hinweg. Wie der Code genau aussieht, hängt zwar davon ab, ob auch in Analytics für jede Subdomain ein eigenes Profil existiert oder ob alle Subdomains gemeinsam Daten sammeln (entweder stehen dann unterschiedliche Profil-IDs in den Codes oder es findet sich _setDomainName() im Code), die erf. Anpassung betrifft aber nur die Initialisierung, die dann um den Domainnamen erweitert wird: gmsInitGASwitch('checkGAActive', 'meindomain.de');

Hier ein Beispiel für mehrere Subdomains und gemeinsames Profil:

<script type="text/javascript">
gmsInitGASwitch('checkGAActive', 'meinedomain.de');
if (gmsGATrackingActive()) {
   var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
   document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>

<script type="text/javascript">
if (gmsGATrackingActive()) {
   try {
   _gat._anonymizeIp();
   var pageTracker = _gat._getTracker("UA-xxxxxx-xx");
   pageTracker._setDomainName('.meinedomain.de');
   pageTracker._setAllowHash(false);
   pageTracker._trackPageview();
   } catch(err) {}
} else {
   var pageTracker = new gmsDummyTracker();
}
</script>

War´s das schon?

Ja, in der Regel schon. Sollte es im Testbetrieb Probleme geben, hilft ein Debugger wie Firebug normalerweise schnell, den Schreibfehler zu finden. In selteneren Fällen heißt der pageTracker aus gutem Grund im unveränderten Origina-Trackinglcode nicht pageTracker, so dass ein einfaches Kopieren und Einfügen des obigen Beispielcodes nicht weiterhilft. Auch, wenn noch weitere Modifikationen (z. B. für Tracking über mehrere Domains, Definition von Ausnahmen oder Suchmaschinen etc.) im Originalcode vorhanden sind, muss die Anpassung von Hand vorgenommen werden. Und es ist immer erforderlich, das "xxxxxx-xx" aus dem Beispielcode mit der eigenen ID aus dem Originalcode auszutauschen ;)

Wenn es irgendwie möglich ist, sollte man zudem zumindest in Stichproben testen, ob Seiten bei ausgeschaltetem Tracking Fehler erzeugen, wenn hier "verwanzte" Links mit virtuellen Seitenaufrufen, Eventtracking oder ähnliche Scherze zum Einsatz kommen. Der DummyTracker sollte alle Aufrufe dieser Art sauber abfangen und umfasst alle dokumentierten Methoden des Originaltrackers zum Stand 12/2009. Gibt es mit einzelnen Methoden Probleme, wären wir für eine kurze Nachricht sehr dankbar.

Code weiter anpassen

Je nach Einsatzgebiet kann es möglich sein, dass Sie manuelle Anpassungen an einzelnen Seiten oder besonderen Templates für einzelne Bereiche Ihrer Website machen müssen. Davon betroffen sind z. B. Seiten, auf denen der Anwender keine Chance hat, die Checkbox zu bedienen, weil z. B. automatisch auf ein anderes Ziel weitergeleitet wird, sobald die Seite geladen wird. In solchen Fällen können Sie sich die Checkbox sparen und folglich auch den ersten Aufruf zur Initialisierung der Checkbox ersatzlos entfallen lassen. Ob Sie in diesem Fall auch auf den Rest der Modifikation weglassen und solche Seiten auf jeden Fall in Analytics tracken, ist schnussendlich zwar Ihnen selbst überlassen... dem vertrauensvollen Benutzer haben Sie damit aber sicher nicht das geliefert, was er bei Deaktivierung allen Trackings erwartet hatte.

Optimierung und Fehlerkorrektur

Auch kann es durchaus sinnvoll sein, den Code in eigene Bibliotheken zu übernehmen oder zu optimieren - sei es die Größe durch Eliminieren der Formatierung zur Verbesserung der Ladezeit der auch eine Verbesserung des JavaScript-Codes selbst. Wir sind zugegebenermaßen keine JavaScript-Fachleute, sondern haben lediglich eine Lösung für ein Problem gesucht und im Rahmen einiger eigener Websites in gängigen Browsern getestet. Wenn Sie selbst Verbesserungen oder Fehlerkorrekturen für einzelne Browser vorgenommen haben, sind wir auch in diesem Fall dankbar für eine kurze Nachricht.

Nutzung der Option in Analytics messen

Das Script ist so gestaltet, dass Sie jedes Ausschalten des Trackings als Ereignis in Google Analytics messen können. Im Fall einer Deaktivierung funkt Ihre Website also im derzeitigen Zustand immer noch wenigstens einmal zum Trackingserver. Die Seite, auf der die Deaktivierung stattgefunden hat, wird als Label des Ereignisses übergeben.

Ereignisse in Analytics - Switch Tracking als Ereignis messen

Achtung: Aufgabe nur fast gelöst!

Von dem beschriebenen Auslösen des "letzten Events" vor der Deaktivierung abgesehen ist diese Lösung ohnehin nicht zu 100% geeignet, den Besucher vor dem Tracking zu schützen, denn wenigstens eine gemessene Seite muss er bei der optimistischen Standardeinstellung ("Klar, tracking ist an!") besuchen, um das Tracking dort zu deaktivieren. Wenn Sie also jedem Besucher schon vorher die Wahl lassen wollen, müssen Sie durch Anpassung des Scripts oder Vorschalten einer Auswahlseite für alle Besucher, die noch nicht aktiv gewählt haben, ob sie aufgezeichnet werden wollen oder nicht, eine entsprechende Lösung herbeiführen. Wählen Sie die pessimistische Version, so dass alle Besucher aktiv in das Tracking einwilligen müssen (also Opt-In statt Opt-Out), ist die Platzierung im Fuß auf jeden Fall ein Garant dafür, dass Sie nur noch 0.x% der Besucher aufzeichnen werden, was ja auch nicht das Ziel sein kann.

Mit der hier beschriebenen Lösung können Sie aber zumindest auf transparente Weise die faire Auswahl offerieren, als Besucher dauerhaft aus dem Tracking auszusteigen. Im Hinweistext zur Funktion auch auf die Existenz der o.a. Browsererweiterungen hinzuweisen, ist zudem eine gute Möglichkeit, den wirklich an diesem Thema interessierten Besucher auf Alternativen auch für andere Websites hinzuweisen. Verantwortlicher Umgang mit Datenschutz - und dem persönlichen Sicherheitsbedürfnis des Einzelnen - sollte jedenfalls stets dem Bestreben, "alle" Besucher zu erfassen, untergeordnet werden. Mal ehrlich: Wer braucht schon "absolute Zahlen" aus einem Webanalyse-Tool?

 


Jetzt kostenloses Angebot anfordern

Sind Sie an einer Betreuung Ihres AdWords-Kontos oder Beratung zu Usability, Conversionoptimierung und / oder Webanalyse interessiert? Dann rufen Sie uns an:

Sie erreichen uns telefonisch unter (0 21 66) 125 77 10.

 
Warum mit uns?

Langjährige Erfahrung
im Onlinemarketing:
Suchmaschinen-Marketing
erfolgreich seit 1996

Angebot anfordern

Alle Kontenmanager unserer Google AdWords Agentur sind qualifizierte und durch Google zertifizierte AdWords Experten.

Faire Festpreise
jederzeit kündbar
seriöse Optimierung.