Eigene Besuche korrekt ausschließen – trotz anonymizeIP
Jeder, der hierzulande Google Analytics datenschutzkonform einsetzen möchte, nutzt den Parameter „anonymizeIP“: Damit werden die IP-Adressen anonymisiert an die Google-Server übertragen. Soweit so gut. Blöd nur, wenn man seine eigenen Besuche über die IP-Filter versucht auszuschließen. Ich zeige dir, warum das nicht mehr so einfach geht und welche Folgen das hat.
- Update 26.01.2017 – Möglichkeit des Ausschließens hinzugefügt
- Update 28.05.2021 – Weitere Möglichkeit des Ausschließens mit dem Google Tag Manager hinzugefügt
In meinen Analytics-Audits sehe ich recht oft die Nebenwirkung anonymisierter IP-Adressen: Die Daten stimmen hinten und vorne nicht! Okay, dann schließe ich halt meine eigenen Besuche nicht aus, mag der ein oder andere denken. Ganz schlechte Idee. Warum? Als Antwort zwei Beispiele:
Szenario 1: Großartige Verweildauer – nur für welche IP-Adressen?
Stell dir vor, du arbeitest für ein mittelständisches Unternehmen mit 120 Mitarbeitenden, von denen 20 im Support arbeiten und sich den lieben langen Tag ausführlich auf den eigenen Seiten tummeln. Glaub mir: Die Verweildauer, die dir dein Google Analytics zeigt, wird viel zu groß sein.
Szenario 2: Fantastische Zugriffszahlen? Ganz sicher?
Oder du betreust die Seiten für einen Konzern, bei dem jeden Morgen im Browser von 100.000 Mitarbeitenden die Firmen-Webseite automatisch aufgerufen wird. Du hast fantastische Zugriffszahlen? Lass mich raten: Alle so gegen 9 Uhr morgens? Du siehst, die eigenen Besuche müssen raus. Unbedingt! Aber wie funktioniert das überhaupt mit dem Filtern der IP-Adresse?
Eigene Besuche anhand der IP-Adresse identifizieren
Jede IP-Adresse gibt es nur einmal. Anhand dieser IP-Adresse ist jeder Rechner und Internetanschluss im Internet identifizierbar. Die IP-Adresse des Anschlusses, den ich gerade nutze, lautet:
Diese IP-Adresse wird standardmäßig an Google Analytics übertragen. Und damit kannst du sehr gut die eigenen Besuche ausschließen. Schließlich möchte ich meine Besucher messen und nicht, wie oft ich oder Kollegen die Seite besuchen, um zum Beispiel einen neuen Blogbeitrag hochzuladen oder im Shop etwas neu einzustellen.
Google Analytics Filter mit IP
In Google Analytics kann ich meine eigenen Besuche komfortabel ausschließen, in dem ich meine IP aus den Datenansichten herausfiltere.
Das Filtern auf IP-Ebene funktioniert nur, wenn mir eine feste IP zugewiesen wird.
Die Eingabemaske sieht folgendermaßen aus:
Zumindest hat es so funktioniert, bis die Datenschützer neue Forderungen gestellt haben …
Gut für den Datenschutz, schlecht für die Analyse
Die deutschen Datenschützer sagen klar , dass die IP-Adresse geschützt werden muss. Deshalb haben die Googler nachgedacht und eine datenschutzkonforme Möglichkeit geschaffen. Es gibt jetzt einen Parameter in der Google-Analytics-Konfiguration, der das datenschutzkonforme Verhalten einschaltet. Sobald du „anonymizeIP“ auf „true“ setzt, wird der Teil nach dem letzten Punkt der IP-Adresse nicht mehr übertragen. Dann kommt die IP-Adresse nur noch so an:
Gestutzte IP-Adressen – ein echtes Analytics-Problem
Leider fangen damit für uns in der Datenanalyse die Probleme erst richtig an: Mit dieser gestutzten IP-Adresse ist der oben gezeigte Filter komplett wirkungslos! Denn deine IP-Adresse wird nicht mehr erkannt.
Schau gleich nach, ob dein Google Analytics auch betroffen ist.
Glück gehabt: Einfache Lösung für Firmen mit C-Netzen
Es gibt Firmen, denen gehört das gesamte sogenannte C-Netz einer IP-Adresse. Das sind alle Adressen, bei denen die ersten drei Ziffernblöcke gleich sind. Die können den Filter dann so weiter benutzen:
Lösung für alle anderen: ja – aber …
Leider gibt es für alle anderen keine einfache Lösung von der Stange. Die Lösungen sind in der Regel individuell jeweils nach der eingesetzten Technologie zu entwickeln. Das erfordert meist genaues Hinschauen, viel Überlegen und ordentlichen Basteleinsatz. Das Gute: Es ist machbar.
[Update 26.01.2017: Ergänzung „Einfache Lösung für alle“ ]
Einfache Lösung für alle
Die einfachste Lösung ist, wenn jeder Mitarbeiter eine bestimmte Seite aufruft und dadurch automatisch als interner Besucher markiert wird. Und so geht es:
Dimension für die Differenzierung der Besucher
Zum Markieren der Mitarbeiter nutzen wir die Dimensionen von Google Analytics. Dazu gehst du auf Verwaltung ⇒ Property ⇒ benutzerdefinierte Definitionen ⇒ benutzerdefinierte Dimension.
Du klickst auf “Neue benutzerdefinierte Dimension anlegen” und tust genau das. Dann vergibst du einen Namen für die neue Dimension. Dieser erscheint nur innerhalb von Google Analytics, es ist dafür da, dass du die Dimension besser erkennst. Ich nutze als Namen “Besuchertyp”. Den Umfang stellst du auf “Nutzer”, so überlebt die Einstellung auch das Schließen des Browsers. Damit die Dimension greift, setzt du noch das Häckchen bei “aktiv”:
Nachdem du die Dimension erstellt hast, rufst du den Eintrag nochmal auf und erhälst die Infos, welche Dimension es ist:
In diesem Fall ist es “dimension1”. Diesen Wert benötigst du gleich noch.
Möglichkeit 1: HTML-Datei erstellen
Jetzt erstellst du eine HTML-Datei, die den Analytics-Code aufruft und die Dimension auf “internal” setzt. Die sieht dann so aus:
In der Datei trägst du deine Analytics-ID ein und änderst gegebenenfalls noch die Dimension. Anschließend lädst du die Datei per FTP/SFTP auf den Server hoch. Wenn du nicht weißt, wie das geht, frag die IT. Es ist wichtig, dass diese Datei auf der gleichen Domain läuft.
Als nächstes rufst du die Seite auf. Das ist wichtig, damit du später einen Filter erstellen kannst.
Möglichkeit 2: Mit Google Tag Manager auf Parameter reagieren
Wenn du den Google Tag Manager für dein Google Analytics nutzt, gibt es einen besseren Weg, als das Hochladen und Aufrufen einer besonderen HTML-Seite. Du musst eigentlich „nur“ dafür sorgen, dass beim Aufrufen einer URL mit einem bestimmten Parameter ein Event mit der entsprechenden Dimension geschickt wird. Klingt kompliziert, ist es aber eigentlich nicht. Übrigens, ich habe diese Methode noch ein bißchen aufwendiger auch in meinem Google Tag Manager-Buch veröffentlicht. Aber hier jetzt erstmal die einfache Methode. Auch wenn ich hier von einer „einfachen Methode“ schreibe, gehe ich davon aus, dass du dich schon ein wenig mit dem Google Tag Manager auskennst. Wenn nicht: du kennst jetzt ja mein Buch 😉
Google Analytics Ereignis erstellen
Als erstes erstellst du ein Google Analytics Ereignis. Es ist relativ egal, welche Werte du überträgst. Das wichtigste ist, dass du die entsprechende Dimension (siehe oben) mit dem Wert „internal“ füllst. In diesem Fall ist es die Dimension im Slot 1.
Trigger anlegen
Kein Tag ohne Trigger, deshalb legst du jetzt noch einen Trigger an, der auf einen bestimmten Parameter reagiert. Da wir den Parameter anderweitig nicht benötigen, machen wir das hier der Einfachheithalber „Quick&Dirty“. Der Trigger löst einfach aus, wenn in der URL „user=internal“ auftaucht. Das sieht dann so aus:
Und der gesamte Tag sieht dann so aus:
Filter erstellen
Damit du einen passenden Filter erstellen kannst, musst du einige Zeit warten. Denn erst wenn Analytics aktive Daten in deiner Dimension erkennt, wird sie bei den Filtern angezeigt.
Dann gehst du zu den Filtern und legst einen neuen Filter an:
Sobald du den Filter gespeichert hast, werden alle Mitarbeiter, die die HTML-Seite aufrufen, von Google Analytics ausgeschlossen. Der Cookie, der dieses Verhalten möglich macht, bleibt im Browser bestehen, bis du alle Cookies löscht. Du musst die Seite also nicht vor jedem Besuch aufrufen. Achtung: Filter wirken nicht rückwirkend.
[starbox]
Schön, „mein“ Problem hier auch mal als Blogbeitrag zu sehen – bislang gab es keine mir bekannte Quelle, die auf den Konflikt zwischen dem Ausschluss eigener Mitarbeiter und dem Datenschutz hinwies.
Wäre schön, wenn es nach dem letzten Absatz, wo es spannend wird, noch ein paar Ansätze zur Lösung folgen …
Ja, eine Plug-and-Play-Lösung wäre toll. Aber es ist halt nicht so einfach 😐 Eventuell zeige ich bald ein paar Möglichkeiten auf, aber ich will nichts versprechen.
Eine Lösung braucht ein Merkmal als Ersatz für die IP. Oft reicht es da, auf der für alle Mitarbeiter verpflichtenden Browserstartseite im „Intranet“ eine benutzerdefinierte Dimension zu besetzen und den Filter dann daran auszurichten.
Ich schließe Serverseitig eine Ausspielung des Analytics Codes für die eigenen IP Netze aus. Alles andere ist nicht präzise genug.
PS: Du brauchst ein Kommentarabo in Blog!
Ein Ausschluss des Google Analytics-Code empfehle ich nicht. Denn dann kannst du nicht mehr testen und nicht prüfen.
Hallo,
hat vielleicht einer nen Tipp wie man das für dynamische Ip Adressen hinbekommt?
Vielen Dank im Voraus
Ja, die Lösung ist jetzt oben im Text ergänzt.
Hallo Michael,
Erst einmal vielen Dank für deinen Blogbeitrag!
Würde eigentlich folgendes funktionieren?
IPs ausschließen, die mit 87.135.76. beginnen?
Dass man dann 98 weitere IP-Adressen ausschließt sollte zu verkraften sein.
Beste Grüße und DANKE
Markus
Du müsstest nach dem Punkt noch eine „0“ setzen dann geht. Aber es wären dann 255 weitere IP-Adressen. Und das kann dann ggfls. schon einiges sein.
Oder einfach Googles Opt-Out-Browser-Plugin installieren.
Die Benutzung des Tools empfehle ich nicht. Zum einen, weil es schwer ist, das auch Mitarbeitern beizubringen und besonders, weil du damit das Tracking auf ALLEN Seiten deaktivierst. Wenn das also jeder Mensch macht, der Google Analytics benutzt, haben wir bald gar keine Daten mehr in Analytics 😉
Jetzt erstellst du eine HTML-Datei, die den Analytics-Code aufruft und die Dimension auf “internal” setzt. Die sieht dann so aus:
???
Wieder eine komplizierte Anleitung, die scheinbar nur Insider oder deine Kommibuddys verstehen. Mir hat sie leider nicht weiter geholfen.
Liebe Scharlotte,
„ganz einfach“ gibt es leider nicht 😐
Ich habe auch lange überlegt, ob ich diese Lösung überhaupt veröffentliche. Aber wo genau bist du denn bei der Beschreibung ausgestiegen. Was hast du nicht verstanden?
Lieben Gruß,
Michael
Stimmt das wirklich, dass der komplette Filter wirkungslos ist?
Wenn ich beispielsweise, die IP-Adresse 87.135.76.29 in Analytics ausschließe und anonymizeIP auf true gesetzt habe, so wird die letzte Ziffer der IP-Adresse zu einer 0
Ausgeschlossen werden ja dann immer noch alle IP Adressen von 87.135.76.0 bis 87.135.76.255 oder nicht?
Nein, nur die IP-Adresse 87.135.76.0 wird ausgeschlossen.
Hallo Michael,
herzlichen Dank für deinen sehr hilfreichen Artikel. Das Anlegen hat wie von dir beschrieben super funktioniert.
Lieben Gruß
Susanne
Hi Michael,
ich hatte deinen zuletzt beschriebenen Weg mit dem Filter über die Weiterleitungsseite schon mehrfach erfolgreich eingesetzt.
Irgendetwas muss sich aber mittlerweile verändert haben, denn der Weg ist nun wirkungslos: In der Echtzeit-Ansicht konnte ich nachvollziehen, dass meine eigenen Zugriffe nun NICHT MEHR ausgeschlossen werden. Auch bei Properties, in denen das früher korrekt funktioniert hat, klappt es nun nicht mehr.
Weißt du einen Rat?
Viele Grüße
Kerstin
Hallo Kerstin, es hat sich da nichts geändert. Überprüfe doch nochmal deine Einstellungen.
Hallo Michael,
auf welchen Server soll denn die HTML Datei?
Auf den Server der Webseite? Und wenn ja, wohin dort?
Danke für die tolle Anleitung 🙂
Bin fast durch…
Die Datei muss zwingend auf die gleiche Domain. Wo du die ablegst, ist dir überlassen.
Wenn unterstützt, packe ich die statischen IPs in einen PHP-Array (ggfs. auch Pflege und Erweiterungen woanders) und mache dann einen Abgleich der anfragenden IP mit der PHP-IP-Liste. Ob es dann ein interner Zugriff ist, gebe ich als Wert true/false in einer dataLayer-Variable mit, die ich dann über eine ben. Dimension herausfiltere.
Ja, es gibt viel mehr Möglichkeiten, als die eine von mir angesprochen. Deine Möglichkeit setzt aber schon einiges an Ressourcen oder Wissen voraus.
Bei mir funktioniert es nicht, obwohl ich alle Einstellungen 2 x überprüft habe. Die internen Besuche werden trotzdem gezählt.
Dann wirst du leider irgendwo einen kleinen Fehler gemacht haben. Ohne weitere Informationen kann ich aber nicht sagen wo.
Sehr interessanter Beitrag. Bisher haben wir uns blind auf den IP-Filter verlassen. Leider bringt das ganze Konstrukt wohl auch nichts, wenn die externen Mitarbeiter nicht im Firmennetzwerk, sondern z.B. im Home Office auf Rechnern arbeiten „dürfen“, auf denen das dauerhafte Speichern von Cookies unterbunden wurde (IT-Sicherheit sei Dank). Dann muss man vor jedem Login zum Bearbeiten erst wieder diese HTML-Seite aufrufen um das Cookie wenigstens temporär im Browser zu haben?
Ja. Das Speichern von Cookies kann ggfls. ein Problem sein. Aber der beschriebene Weg der Mitarbeiterkennung ist nur einer von vielen. Es gibt noch viel mehr Wege.