Höhere Datenqualität für bessere Analysen: Internen Traffic in Google Analytics filtern und ausschließen
Um aussagekräftige Analysen über das Nutzerverhalten auf Deiner Website durchzuführen, solltest Du den Fokus auf die relevanten Daten legen. Bei der Masse an Informationen, die Google Analytics bereitstellt, ist das gar nicht immer so einfach. Denn die Zugriffs- und Nutzungszahlen können durch die eigenen Unternehmensmitarbeiter ungemein verfälscht werden. Wie sich interner Traffic auf zwei verschiedene Arten super einfach herausfiltern lässt, erfährst Du in diesem Artikel.
Oft dient die eigene Unternehmens-Website den Mitarbeitern als Nachschlagewerk, als Zugang zum Intranet oder ist einfach standardmäßig als Startseite im Browser hinterlegt. Das Ergebnis: Hunderte täglicher Zugriffe mit enorm hohen Absprungraten, geringer Sitzungsdauer, eine Unmenge an wiederkehrenden Besuchern ohne Conversion. Im Endeffekt also sehr unverlässliche Werte im gesamten Analytics-Account.
Warum sollte interner Traffic ausgeschlossen werden?
Als interner Traffic werden somit Zugriffe auf die Webseite durch die eigenen Mitarbeiter bezeichnet. Dazu können auch Entwickler oder technische Dienstleister zählen, die sich oft auf der Website befinden aber nicht zum relevanten Kundenstamm gehören.
Im Gegensatz zu Spam- oder Bot-Traffic wird interner Traffic eben von echten Besuchern generiert, meist jedoch ohne direkten wirtschaftlichen Mehrwert. Je nach Anteil am Gesamt-Traffic können interne Zugriffe die Auswertungen extrem verfälschen, da „externe“ Besucher sich eventuell ganz anders auf der Seite bewegen und verhalten als die internen Mitarbeiter. Daher hat es Sinn den internen Traffic auszuschließen.
Warum können nicht einfach IPs ausgeschlossen werden?
Google Analytics bietet von Haus aus die Möglichkeit an Traffic nach IP-Adresse auszuschließen. In Deutschland und vielen weiteren Ländern ist die IP-Anonymisierung jedoch Pflicht, was zur Folge hat, dass das letzte Oktett einer IP-Adresse nicht erfasst wird. Somit ist es nicht mehr möglich, eine einzelne IP-Adresse gezielt auszuschließen.
BBesitzt ein Unternehmen jedoch eine statische IP, so kann es eine Option sein den internen Traffic anhand des dritten Oktetts auszuschließen. Allerdings werden somit auch alle Endungen im Bereich von 0 bis 255 im vierten Oktett ausgeschlossen. Gehören nicht alle diese IPs zum Unternehmen, werden eventuell auch echte Nutzer ausgeschlossen. Kannst Du so machen, musst Du aber nicht. Wie Du das Problem eleganter lösen kannst, zeige ich Dir jetzt.
Methode 1: Internen Traffic über URL-Fragmente ausschließen
Wie schon beim Erfassen von Traffic-Quellen oder dem Ausschließen von Ghost-Spam, nutzen Wir URL-Fragmente und benutzerdefinierte Dimensionen, um den internen Traffic auszuschließen.
Schritt 1: Variable für URL-Fragmente
Im ersten Schritt erstellst Du im Tag Manager eine Variable für URL-Fragmente. Dafür auf „Variablen“ und „Neu“ klicken, den Typ “URL” auswählen und den Kompontentypen “Fragment”.
Dann speicherst Du die Variable. Wenn Du diese Variable bereits im GTM-Container hast, musst Du sie nicht neu erstellen.
Die Variable teilt dem Google Tag Manager mit, dass Informationen aus der URL gesammelt werden sollen, sobald ein Hashtag erkannt wird.
Schritt 2: Suchtabellen-Variable
Als nächstes erstellst Du eine weitere, benutzerdefinierte Variable vom Typen “Suchtabelle”. Die Variable benennst Du entsprechend (z.B. ST – URL-Fragment, wobei das ST eine Abküzung für Suchtabelle ist). Als Eingabevariable wählst Du unsere zuvor erstellte Variable {{URL-Fragment}} aus. Jetzt fügst Du eine Zeile hinzu und gibst für die Eingabe „intern“ sowie für die Ausgabe „Interner Traffic“ an. Dann speicherst Du die Variable.
Hier gilt wie im ersten Schritt – wenn Du bereits eine Suchtabelle hast, reicht es dort die Zeile (s. Screenshot) hinzuzufügen.
Die Suchtabelle gibt dem Tag Manager an, welche Informationen aus der URL gesammelt werden sollen, wenn ein Hashtag vorhanden ist und wie diese auszulesen sind.
Schritt 3: Benutzerdefinierte Dimension
Danach legst Du in der Google Analytics Property eine neue “benutzerdefinierte Dimension” an, diese findest Du unter “Verwaltung“ im Bereich „Property“ unter „Benutzerdefinierte Definitionen“.
Dort erstellst Du eine „neue benutzerdefinierte Dimension“ mit dem Namen „Interner Traffic“ und dem Umfang „Sitzung“. Das Häkchen setzt Du direkt auf „Aktiv“. Die Code-Erweiterungen kannst Du in diesem Fall übergehen und einfach auf „Fertig“ klicken. Danach merkst Du Dir die Indexnummer.
Nun richtest Du die benutzerdefinierte Dimension im Tag Manager in den Einstellungen Deines Google Analytics Seitenaufruf-Tags oder in der Google-Analytics-Settings-Variable ein. Unter „Tag konfigurieren“ > „Weitere Einstellungen“ > „Benutzerdefinierte Dimensionen“ fügst Du also eine benutzerdefinierte Dimension hinzu. Die Indexzahl der Dimension übernimmst Du aus der zuvor in Analytics erstellten Dimension, und trägst als Dimensionswert die Variable {{ST – URL-Fragment}} ein.
Jetzt kannst Du Deine Änderungen testen und veröffentlichen.
Mit der benutzerdefinierten Dimension hast Du dem Tag Manager einen „Ort“ geschaffen, an den er die Informationen senden kann, die aus der URL gesammelt werden.
Schritt 4: Interner Traffic Filter
Im letzten Schritt muss noch ein Filter in der Google-Analytics-Datenansicht erstellt werden. Dafür gehst Du im Analytics-Konto unter „Verwaltung“ auf Datenansichtsebene in den Bereich „Filter“ und erstellst einen neuen benutzerdefinierten Filter. Den Filter benennst Du entsprechend (z.B. „Exclude Internal Traffic“), als Filtertyp wählst Du „Benutzerdefiniert“ aus und beim Punkt „Ausschließen“ wählst Du das Filterfeld „Interner Traffic“. Zu guter letzt trägst Du als Filtermuster „Interner Traffic“ ein und speicherst den Filter.
Wie immer empfiehlt es sich, neue Filter erst in einer Test-Datenansicht anzuwenden und zu überprüfen. Erst wenn sichergestellt ist, dass der „Exclude Internal Traffic“-Filter wie gewünscht funktioniert, übernimmst Du ihn in Deine Master-Datenansicht. So wird sichergestellt, dass Du bei einem fehlerhaften Filter Deine Daten nicht zerschießt.
Wie funktioniert jetzt aber der interne Traffic Filter in der Praxis?
Für alle Mitarbeiter sollte die Unternehmens-Website mit dem URL-Fragment #intern (also zum Beispiel www.beispieldomain.de#intern) als Browser-Startseite und Lesezeichen eingerichtet werden. Wird die eigene Seite über diese URL aufgerufen, können die Mitarbeiter der Gruppe „Interner Traffic“ zugeordnet und damit ausgefiltert werden. Wird die Domain mit dem URL-Fragment „intern“ betreten, werden alle weiteren Seitenaufrufe dieser Sitzung dem Mitarbeiter zugeordnet. Endet die Sitzung, sollte die Domain beim nächsten Zugriff auf die Webseite wieder mit dem Fragment aufgerufen werden, daher das Bookmark. Natürlich können die Mitarbeiter auch einfach selbst #intern anhängen, wenn sie die Webseite aufrufen. Das gilt übrigens auch für externe Nutzer, deren Zugriffe nicht erfasst werden sollen, wie beispielsweise Mitarbeiter der Technik- oder Marketing-Agentur.
Diese Art der Filterung funktioniert nur solange die internen Zugriffe auch eben über das URL-Fragment getätigt werden. Eine alternative Methode zeige Ich Dir jetzt.
Methode 2: Internen Traffic mittels IP und PHP-Abfrage ausschließen
Bei dieser Methode kommen wir wieder auf die IP-Adressen zurück. Mittels einer serverseitigen PHP-Abfrage definierst Du zuerst Deine eigenen internen IPs und prüfst, ob der jeweilige Zugriff von einer Deiner eigenen IP-Adressen stammt. Diese Information, also den internen oder externen Zugriff, lässt Du Dir im dataLayer ausgeben. Mithilfe des Google Tag Managers gibst Du diese Information an Google Analytics weiter und schließt so die internen Zugriffe zuverlässig aus Deinen Daten aus.
Schritt 1: PHP und JavaScript
Im ersten Schritt hinterlegst Du also den folgenden Code in Deiner PHP-Datei. Der Code sollte oberhalb des Google Tag Manager Skriptes platziert werden. Im PHP-Array definierst Du die auszuschließenden IP-Adressen Deines Unternehmens und ggf. der mitwirkenden Entwickler oder Agenturen. Durch die direkte Verarbeitung der IP-Adresse auf Seiten der Webseite umgehst Du somit das Senden der IP und die Anonymisierung durch Google Analytics. Die IP-Adressen werden lediglich abgeglichen und nirgendwo gespeichert. Im Anschluss lässt Du Dir durch ein Event mit entsprechendem Key-Value-Pair im dataLayer ausgeben, ob die IP-Adresse des aktuellen Webseiten-Nutzers im Array aufzufinden ist und er entsprechend “external” oder “internal” ist.
<?php $ips_intern=array( '192.168.1.1', // auszuschließende IP 1 '192.168.1.2', // auszuschließende IP 2 '192.168.1.3' // auszuschließende IP 3 ); ?> <script> window.dataLayer = window.dataLayer || []; dataLayer.push({ 'userType' : '<?php if(in_array($_SERVER['REMOTE_ADDR'],$ips_intern)) echo('internal'); else echo('external'); ?>', 'event' : 'userInfo' }); </script>
Schritt 2: Google Tag Manager Variable definieren
Im Google Tag Manager erstellst Du nun im Bereich “Variablen” eine benutzerdefinierte Variable vom Typ “Datenschichtvariable” und nennst sie {{DL – userType}}. Als Namen (Key) gibst Du ebenfalls “userType” an. Diese Variable liest aus dem dataLayer heraus um welchen Nutzertyp es sich handelt.
Schritt 3: Google Analytics Settings bearbeiten
Nun musst Du die Information über den Nutzertyp noch an Google Analytics senden. Dazu bearbeitest Du Deinen Google-Analytics-Seitenaufruf-Tag bzw. Deine Google-Analytics-Settings-Variable. Die Information über den Nutzertyp versendest Du mithilfe einer benutzerdefinierten Dimension an Google Analytics. Hierzu nimmst Du einfach eine beliebige freie Indexnummer (in diesem Beispiel die Nummer 2.). Im Bereich “Dimensionswert” fügst Du nun die in Schritt 2 definierte Variable {{DL – userType}} ein.
PS: Wenn Du Dich fragst, was es mit dem auf Dimension 1 liegenden Spam-Filter auf sich hat, dann empfehle ich Dir diesen Artikel von Lisa-Marie.
Nun sollte getestet werden, ob alles korrekt eingerichtet wurde. Dazu öffnest Du den Vorschaumodus des Google Tag Manager und öffnest Deine Webseite. Beim Klick auf Deinen ausgelösten Seitenaufruf-Tag kannst Du erkennen, dass als Dimension 2 der Wert “internal” übergeben wird. Sollte der Aufruf von einer nicht als intern definierten IP erfolgen, so wird hier entsprechend der Wert “external” übergeben.
Schritt 4: Dimension in Google Analytics definieren
Damit Google Analytics die Informationen über den Nutzertyp auch erfasst, muss im Bereich “Property-Einstellungen” noch die “benutzerdefinierte Dimension” mit der in Schritt 3 definierten Indexnummer und dem Umfang “Nutzer” definiert werden. Das Häkchen setzt Du auf “Aktiv” und speicherst dann die Dimension. Die folgenden Code-Schnipsel kannst Du wieder übergehen.
Schritt 5: Filter in Google Analytics erstellen
Im letzten Schritt erstellst Du Deinen Filter, um die internen Zugriffe auszuschließen. Hierzu gehst Du im Bereich “Verwaltung” zu der gewünschten Datenansicht und erstellst unter dem Punkt “Filter” einen neuen benutzerdefinierten Filter mit entsprechendem Namen, wählst unter “Ausschließen” das Filterfeld “userType” aus und gibst im Filtermuster den Wert “internal” an.
Nun solltest Du nochmals prüfen, ob Du alles korrekt eingerichtet hast und weiterhin externe Zugriffsdaten einlaufen. Auch hier gilt es wieder den Filter am Besten zuerst in einer Testansicht zu testen.
Tipp: Datenansicht für internen Traffic
Der gefilterte Traffic lässt sich natürlich nicht nur ausschließen sondern auch einschließen. Wenn Du eine Datenansicht erstellst, die den intern gefilterten Traffic exklusiv einschließt, so kannst Du das interne Trafficvolumen recht schnell erkennen und auch diese Art des Traffics gezielt auswerten.
Fazit
Um eine höhere Datenqualität zu erlangen, solltest Du in Deiner Haupt-Datenansicht den internen Traffic ausschließen.
Die erste Ausschlussmethode mittels des URL-Fragments bringt den Vorteil mit sich, dass Du hier keinen Entwickler hinzuziehen musst, sondern alle Einstellungen selber im Tag Manager und in Analytics vornehmen kannst. Einen Nachteil birgt die Zugriffsmethode, da dieser Ausschluss nur funktioniert wenn eben alle Mitarbeiter über das Fragment zugreifen.
Die zweite Methode per PHP-Abfrage fordert zwar die Mithilfe von Entwicklern, funktioniert dann aber valide und die Mitarbeiter müssen beim Zugriff auf die Website nichts weiter beachten.
Hast Du noch weitere Ideen und Ansätze zum Ausschluss des internen Traffics? Teile sie gerne in den Kommentaren mit uns! 🙂
5 Kommentare
Alex schrieb am 17. Mai, 2021 @ 17:07
Hallo Veronique,
ich finde deinen Artikel klasse und wollte den internen Traffic wie von dir beschrieben über das URL-Fragment „intern“ ausschließen – leider funktioniert es bei mir nicht, obwohl ich alles wie beschrieben umgesetzt habe. Woran kann das liegen? Ich würde mich wirklich sehr über eine Antwort freuen.
Veronique Hahn schrieb am 18. Mai, 2021 @ 17:00
Hallo Alex,
freut mich, dass du die Anleitung ausprobierst.
Ein Remote-Debugging ist immer schwierig. Hast Du sichergestellt, dass der GTM Container veröffentlicht ist? Klingt doof, wird aber gerne mal vergessen.
Warte gerne auch bis die Daten vollständig verarbeitet sind und schau dann nochmal in die Berichte rein.
Viele Grüße
Svenja Lehmann schrieb am 18. Mai, 2021 @ 12:45
Hallo Zusammen,
Vielen Dank für die ausführliche Anleitung.
Ich habe die Methode des URL-Fragments versucht.
Leider muss ich feststellen, dass es bei mir nicht funktioniert.
Alle Einstellungen konnte ich entlang dieser Anleitung machen. Alles ist live geschaltet.
Wie empfohlen arbeite ich mit einem Arbeitsbereich und einem Testprofil.
Wenn ich im Echtzeit Bericht meine Änderung überprüfen möchte und das Arbeitsprofil mit dem Testprofil vergleich muss ich feststellen, dass das Testprofil weiterhin meinen Traffic trackt.
Woran kann das liegen, wenn ich alles so eingestellt habe, wie oben beschrieben?
Viele Grüße 🙂
Veronique Hahn schrieb am 18. Mai, 2021 @ 15:15
Hallo Svenja,
schön, dass du unsere Anleitung gefunden hast.
Aus der Ferne ist das schwierig zu beurteilen. Aus Erfahrung kann ich dir aber sagen, dass der Echtzeitbericht leider nicht immer zuverlässig ist.
Man muss eben doch noch in die Reports schauen, nachdem die Daten verarbeitet wurden. Hast du dort schon mal nachgeschaut, ob du deinen Zugriff finden bzw. nicht finden kannst?
Viele Grüße
Alex schrieb am 19. Mai, 2021 @ 16:27
Hallo Veronique,
ich habe jetzt nochmal alles auf Herz und Nieren überprüft. Das Komische: ich habe es bei 2 Domains installiert, bei einer funktioniert es. Der einzige Unterschied: bei der Domain, bei der es nicht funktioniert, habe ich bei der UA Variable gleichzeitig „Funktionen für Displaywerbung aktivieren“ getickt und entsprechend bei allowAdFeatures den Google Ads Consent hinzugefügt. Kann es dran liegen? Funktioniert das nicht gemeinsam?
Viele Grüße