« Web Analytics Association - Late Afternoon am 3.11 in Zürich | Start | Web Analytics Buch-Cover: Abstimmen und gewinnen! »

14. November 09

Datenschutz fördern: Opt-Out für Web Analytics Tracking-Codes

Fortwährend eine brennende Frage ist die juristische Situation beim Einsatz von Web Analytics Systemen wie Google Analytics auf der eigenen Website – ich habe bereits mehrmals auf diesem Blog darüber berichtet. Die Meinungen zu dieser Thematik gehen von „verboten“ über „riskant“ bis „problemlos“ weit auseinander. In Deutschland sind sich selbst die Gerichte uneins. Je nach Amtsgericht ist die Speicherung der IP-Adresse – darum geht’s schlussendlich – einmal personenbezogen und daher ohne vorgängige Einwilligung des Nutzers untersagt (Amtsgericht Berlin Mitte) oder aber erlaubt (Amtsgericht München). Der Entscheid eines höheren Gerichts steht noch aus, derweil in der Praxis wie bereits in den letzten 15 Jahren (!) IP-Adressen ausser in Analytics-Systemen vor allem auch in Server-Logfiles weiter gespeichert werden – das kümmert allerdings in der aktuellen Diskussion kein Jurist oder Gericht.

Mein Votum in diesem Thema appelliert an die Vernunft und das gemeinsame Wohlwollen von Websitebetreibern und Nutzern. Gespeicherte IP-Adressen können ausser von Internet Service Providern und dem Staat nicht eindeutig einer Person zugeordnet werden – von ganz seltenen und aussergewöhnlichen Fällen mal abgesehen. Dennoch möchten einige Website-Besucher sehr vorsichtig mit ihren Web-Fussabdrücken umgehen – und diesem Bedürfnis sollte ein seriöser Website-Betreiber Folge leisten. Meine Empfehlung für Website-Betreiber, welche ein Analytics-System einsetzen, lautet daher wie folgt:

  • Datenschutzerklärung kommunizieren: Egal welche Daten man sammelt und was man damit tut, es sollte immer für den Nutzer transparent bleiben. Am sinnvollsten hinterlegt man diese Transparenz in einer Privacy Policy bzw. Datenschutzerklärung auf der Website.
  • Analytics-Daten nicht mit personalisierten Informationen verknüpfen: Obwohl die Verknüpfung vielfach interessant wäre, ist dies ohne explizite Einwilligung des Nutzers nicht legal.
  • „Opt-in-Verfahren“ bei Übermittlung persönlicher Daten: Sobald persönliche Daten wie Name, Adresse, E-Mail-Adresse etc. zum Beispiel über ein Kontaktformular oder eine Anmeldung gesammelt und anschließend gespeichert werden, sollte der Besucher um explizite Erlaubnis (Opt-in-Verfahren) zur Speicherung dieser Daten gefragt werden.
  • Ort der Datenspeicherung beachten: Wer die Speicherung der Daten nicht intern betreibt, sondern bei einem Web Analytics-Anbieter als Software as a Service (SaaS) bezieht, sollte sich über den Standort des Datencenters im Klaren sein. Werden die Daten durch den Drittanbieter innerhalb eines europäischen Landes gespeichert, kann man davon ausgehen, dass der Anbieter ähnlichen gesetzlichen Bedingungen unterliegt wie man selbst. Anbieter wie Nedstat, Yahoo oder Webtrekk speichern z.B. die Nutzungsdaten in einem europäischen Land.
  • Option zur Abschaltung des Trackings bieten: Ebenfalls ein faires Verhalten ist es, dem Besucher anzubieten, dass sein Nutzungsverhalten überhaupt nicht gespeichert wird. Bei so einem Opt-out-Verfahren kann der Besucher mittels Deaktivieren einer Check-Box das Tracking abschalten – seine Einstellung wird dabei in einem Cookie gespeichert.

Den letzten Punkt finde ich ganz wichtig und eindrücklich, um dem Besucher zu demonstrieren, dass wirklich ein Wohlwollen seitens des Website-Betreibers besteht. Überdies bin ich überzeugt, dass nur ganz wenige Nutzer von einer solchen Option Gebrauch machen werden (auch dies liesse sich übrigens tracken) – allein die Möglichkeit schafft aber schon sehr viel Vertrauen. Auf diesem Blog besteht übrigens ebenfalls die Möglichkeit, das Tracking via Google Analytics auf Wunsch zu unterbinden. Die Einstellungen werden in einem Cookie gespeichert, so dass ab der Folgeseiten oder beim nächsten Besuch bis auf Widerruf keine Nutzungsdaten des betreffenden Besuchers mehr an Google Analytics gesendet werden.

GoogleAnalyticsAbschalten 
Manche Web Analytics-Systeme bieten solche Opt-Out Funktionen für Ihre Produkte bereits an. Andere – darunter auch bei Google Analytics – kennen eine solche Funktion noch nicht. Allerdings kann man mit ein paar Zeilen JavaScript-Code so etwas recht einfach implementieren. Folgender Code-Ausschnitt zeigt, wie dies für Google Analytics geht. Damit können auch Website-Betreiber welche Google Analytics einsetzen demonstrieren, dass auf Wunsch des Besuchers keine Daten an Google gesendet werden.

<html>
<head>
<script type="text/javascript">

function getCookie(value) {
    var dc = document.cookie;
    var prefix = value + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
    } else {
    begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
    end = dc.length;
    }
    return dc.substring(begin + prefix.length, end);
}


function doGA_Tracking()
{
   var GA_OptOut = getCookie("GA_OptOut");
   if (GA_OptOut && GA_OptOut!=null && GA_OptOut=='true') return false
   else return true;
}

var expdate=new Date();
expdate.setDate(expdate.getDate()+365);

</script>
</head>
<body>


<input type="checkbox" id="GA_OptOut" value="true" onClick="this.checked?document.cookie='GA_OptOut=false;path=/;expires='+expdate.toGMTString()+';':document.cookie='GA_OptOut=true;path=/;expires='+expdate.toGMTString()+';'"> Besuch mit Google Analytics aufzeichnen.<br/>

<script type="text/javascript">
//Wenn neben dem Standard-Tracking-Code (GATC) zusätzlich bei bestimmten Ereignissen, z.B. Klick auf Links, Events oder virtuelle Seitenaufrufe implementiert werden, müssen diese mit untenstehendem Code ergänzt werden (doGA_Tracking()?BESTEHENDER_TRACKINGAUFRUF:'';). Andernfalls würde das Ereignis ein Fehler werfen falls der GATC vom Besucher deaktiviert wird.

//doGA_Tracking()?pageTracker._trackEvent('Links', 'Subscription', 'RSS-Mainfeed'):'';

</script>
<script type="text/javascript">
   var el=document.getElementById('GA_OptOut');
   if (el!=null) el.checked = doGA_Tracking();
</script>


<script type="text/javascript">
   if (doGA_Tracking())
   {
  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 (doGA_Tracking())
   {
  try{
var pageTracker = _gat._getTracker("UA-xxxxxx-x");
pageTracker._trackPageview();
  }
  catch(err) {}
   }
</script>
</body>
</html>

TrackBack

TrackBack-Adresse für diesen Eintrag:
http://www.typepad.com/services/trackback/6a00e5505822238833012875a12e60970c

Listed below are links to weblogs that reference Datenschutz fördern: Opt-Out für Web Analytics Tracking-Codes:

Kommentare

Feed You can follow this conversation by subscribing to the comment feed for this post.

Das Opt-Out Beispiel ist eine super Sache. Damit lassen sich viele Bedenken bezüglich Legalität ausschalten.

Muss man dann noch was bei Analytics einstellen?

@Pascal: Nein, keine Einstellungen in Google Analytics notwendig. Das obige Script unterdrückt einfach den Aufruf des Google Analtics Tracking-Codes, falls der Besucher dies wünscht

ich hab es jetzt mal getestet und analytics zeichnet keine daten mehr auf auch wenn man den haken drin lässt. (ich weiß, dass analytics nicht in realtime zeigt)

@Pascal:Kannst du mir mal eine URL zu der Seite senden, wo du das Skript integriert hast? Dann schau ichs mir mal an. (sonst Quellcode dieses Blogs mal anschauen - hier kommen die Daten bei gecheckter Box durch)

@Pascal: Da ist beim Reinkopieren in den Blog dann tatsächlich ein Anführungszeichen verlorgen gegangen (Zeile var gaJsHost=..., vor dem zweiten 'https'). Ist jetzt oben korrigiert. Danke fürs Mitteilen!

"Wohlwollen von Websitebetreibern"... Das ist genauso theoretisch wie einen Löwen in Afrika zu bitten, statt Fleisch Fisch zu essen

Vergessen: wenn man sicher sein will, dann ganz einfach google-analytics.com in der HOSTS-datei umleiten.

Hallo,
mir würde diese Funktion sehr zusagen. Jetzt habe ich aber eine technische Frage.
Den Google-Analytics-Code habe ich standardmäßig auf jeder html-Seite untergebracht. Jetzt würde ich gerne im Impressum die Checkbox einfügen. Wie schaut das dann mit den anderen Seite aus? Bleibt dann der alte Code trotzdem drin oder muss vom Code auf dieser Seite hier was auf die restlichen html-Seiten drauf?

@Matthias: Der neue Code muss auf jeder Seite den alten ersetzen, damit das Tracking auch Website-weit (und nicht nur auf einer Seite) abgestellt wird. Normalerweise kann man das in einem Template zentral und einmal hinterlegen - aber wenn du mehrere HTML-Seiten hast, wirst du das auf jeder Seite anpassen müssen.

Aber dann nur einmal mit der Checkbox-Befehlszeile und bei den anderen Seiten der Rest?

Die Checkbox selbst (input type="checkbox" usw.) dann nur auf der einen Seite, ja. Der Rest des Scripts sollte gleich belassen werden können (habs nicht getestet, aber glaube dass es beibehalten werden kann)

hallo marco,

ich habe zum tracken von events noch zwei fragen.
1. muss jeder exakte aufruf (zb. _trackEvent('download', 'flyer', 'xyz.pdf')) angegeben werden? oder gibt es eine möglichkeit das zu generalisieren?
2. das script greift aber nicht, wenn ich das event-tracking mit jquery an links hänge. oder sehe ich das falsch?

gruss, seb

@seb:
Grundsätzlich musst du ja vor dem Event-Aufruf prüfen, ob der Besucher das Tracking erlaubt oder nicht. Wenn er es nicht erlaubt, dann ist das GA-JS nicht geladen und dann würde der Event-Aufruf einen JavaScript-Error werfen. Ich prüf dies vor jedem Aufruf mit doGA_Tracking()?pageTracker._trackEvent(...):'';
Das könnte man aber sicher auch anders lösen, z.B. einfach mit einer try/catch-Anweisung rund um den Event-Aufruf. Die ganz generische Lösung die auch noch mit jquery tut fällt mir aber so spontan grad nicht ein...

@seb, @marco:

Wenn eine Website mehr als im "üblichen" Umfang von virtuellen Pageviews, Eventtracking etc. Gebrauch macht, ist es in der Tat recht kompliziert, alle Aufrufe zu finden und anzupassen. Daher nutzen wir inzwischen eine angepasste Variante des Scripts, die einfach einen "DummyTracker" erzeugt, der alle ggf. später erfolgenden Aufrufe von Trackingmethoden entgegennimmt, so dass es nicht zu Scriptfehlern kommt und trotzdem keine Kommunikation mit Analytics stattfindet, wenn die Option entsprechend eingestellt ist.

Das Ding ist inzwischen auf mehreren Sites im Einsatz und scheint problemlos zu funktionieren - Download und Infos dazu unter http://www.gandke.de/analytics-opt-out-download.html

@Markus: Danke für die Erweiterung, cool.

Schade schade. =)
Wir haben leider die Anleitung zu spät gefunden und was eigenes programmiert.

Könnt ihr euch hier ansehen: www.h-creatives.de

(oben auf der linken Seite)

Hey!

Klasse Artikel.
Hab ich auch gleich mal umgesetzt:
http://www.marcelsinemus.de/impressum.html
Hoffe, dass ich das Skript richtig eingebaut habe. Als Nicht-JavaScript-Experte ;-)

Gruss Marcel

Die opt-out Funktion hört sich sehr gut an. Bei Google Analytics hat man wohl Handlungsbedarf gesehen und inzwischen auch einiges getan. Ich habe vor kurzem eine –wie ich finde- sehr verständliche Anleitung zur "anscheinend" datenschutzkonformen Nutzung von Google Analytics gefunden.

http://www.datenschutzbeauftragter-info.de/google-analytics-datenschutzkonform-einsetzen/

Was meint ihr? Damit sollte man doch auf der sicheren Seite sein, oder?

Wie lange merkt sich das Script denn, dass der User keine Daten preisgeben möchte?
Nur den Seitenbesuch über oder länge?

Vielen Dank, möchte das Script gerne bei mir implementieren =)

@jokergermany.de.vu
Das Skript setzt das Cookie auf ein Jahr: expdate.setDate(expdate.getDate()+365);

Das kann aber auch entsprechend angepasst werden. Übrigens gibt es ein weiter ausgereiftes Skript (für den Asynchronen GA Code und etwas einfacher zu implementieren) in der neuen Auflage meines Buchs. Wird bei Gelegenheit auch mal hier gepostet.

Grüsse, Marco

Hallo,

vielen Dank für den Beitrag, ich habe mich in den letzten Tagen etwas mehr mit dem Datenschutz beschäftigt und finde die die Lösung sehr gut. Da es anscheinend eine noch einfachere Methode gibt, wollte ich kurz erfragen ob diese noch veröffentlicht wird, oder lediglich das Buch diese beinhaltet?

Grüße,

Jürgen

@Jürgen: Das neue "Sorglos"-Skript mit dem Asynch-Code hab ich hier zusammengestellt. Erläuterungen und Einbauanleitungen dazu in der dritten Auflage des Buchs. Im Quelltext dieser Seite ist übrigens der Code eingebaut (für ein Beispiel)

Grüsse, Marco

Hallo Marco,

hab vielen Dank - ich werde mein Glück versuchen und hier davon Berichten ;)

Grüsse, Jürgen

Post a comment.

If you have a TypeKey or TypePad account, please anmelden.


Über das Blog | Impressum | Nutzungsbedingungen | Ihren Besuch aufzeichnen [?]


Web Analyticson


Das Buch zum Blog:

  • Buch
    Details zum Buch Buch bei Amazon.de bestellen

Die App zum Blog:

  • iPhone App
    Download

Über den Autor

  • Marco Hassler ist Business Unit Manager und Partner beim IT- und Web-Dienstleister Namics.

    marco.hassler (at) gmail.com

Ethik Code

  • Web Analytics Association Code of Ethics

Twitter Updates

    Web Analytics Fotos

    Web Analytics Association

    • Web Analytics Association