Zugriffe auf die eigene Website aus Google Analytics filtern

Heute möchte ich einmal weniger über das Thema SEO als über das Thema Google- Analytics berichten.
Viele werden das Problem kennen. Man möchte die eignen Zugriffe aus der Webseitenstatistik entfernen, jedoch haben viele von uns einen normalen Internetanschluss mit dynamischer Zuteilung einer IP- Adresse. Google Analytics bietet von Haus aus nur Filter für IP- Adressen oder Provider- Domains. Wie kann man nun die eigenen Zugriffe sauber filtern ohne Browser- Plugins zu verwenden oder JavaScript komplett zu deaktivieren?

Ich habe mir die schon im Netz bekannten Verfahren angesehen:

  • Anpassungen der hosts- Datei

Hierbei wird folgender Eintrag in der Host- Datei hinzugefügt:

127.0.0.1        google-analytics.com

Mit diesem Eintrag findet der Browser den Server von Google Analytics nicht mehr und kann daher die Besuche „aller“ Webseiten nicht mehr melden. Und genau hier haben wir dann schon das eigentliche Übel. Mit diesem Eintrag haben wir Google- Analytics komplett auf dem lokalen Computer deaktiviert. Hinzu kommt, dass wir diese Änderung an jedem Computer vornehmen müssen und dazu noch über Administratoren- Rechte verfügen müssen.

 

  • Verwendung von DynDNS um Google- Analytics zu deaktivieren

Eine bessere und flexiblere Lösung habe ich mir nun ausgedacht. Ich erstelle für jeden Standort den ich filtern möchte einen DynDNS- Host. Ich habe dazu den Dienst xxw.at gewählt, da dieser noch eine spezielle Funktion bietet, die ich ganz zum Schluss der Konfiguration noch benötige.

In den Routern der Standorte habe ich die Aktualisierung der DynDNS- Hosts eingerichtet. Dank der einfachen Update- URL lässt sich dazu fast jeder Router dazu bringen ein Update durchzuführen.

Im nächsten Schritt habe ich ein PHP- Script geschrieben um die DynDNS- Host- Einträge in aktuelle IP- Adressen aufzulösen und daraus ein JavaScript- Array zu erzeugen und dies in eine separate JavaScript- Datei zu schreiben:

<?php

$dns = array('dns1','dns2','dns3','dns4');
$domain = 'proxyland.de';

 $txt .= 'var ips = [';
 $r = 0;
foreach ($dns as $host) {
     $res = gethostbyname($host . '.' . $domain);
if (filter_var($res, FILTER_VALIDATE_IP)) {
         $txt .= '"' . $res . '",';
         $r++;
     }
 }
if ($r > 0 ) $txt = substr($txt, 0, -1);
 $txt .= '];';
 $myfile = fopen("iplist.js", "w");
fwrite($myfile, $txt);
fclose($myfile);

?>
Listing: create_iplist.php

In meinem Beispiel werden hier die Hosts dns1.proxyland.de, dns2.proxyland.de, dns3.proxyland.de und dns4.proxyland.de aufgelöst und damit das JavaScript- Array aufgebaut.

Damit erstellen wir die benötigte Includedatei für unsere eigentliche Website.

Als nächstes müssen wir aus unserem CMS oder Shopsystem die aktuelle Remote- Adresse (IP- Adresse des jeweiligen Webseitenbesuchers) in eine JavaScript- Variablen übertragen:

<script>
var myip = ‚{$smarty.server.REMOTE_ADDR}’;
</script>
<script type="text/javascript" src="iplist.js"></script>

Diesen Code setzen wir vor unseren eigentlichen Aufruf von Google- Analytics.

Normalerweise sieht ein Aufruf von Google- Analytics wie folgt aus:

<script type="text/javascript">
        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
                m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
        ga('create', 'UA-xxxxxxxx-x', 'auto');                   
        ga('set','anonymizeIp',true);
        ga('send', 'pageview');
</script>

Diesen Code dürfen wir jetzt aber nur noch aufrufen, wenn Die aktuelle Remote- Adresse (myip) nicht in unsere IP- Liste (ips) vorkommt. Daher erweitern wir unseren Google- Analyticscode wie folgt:

<script type="text/javascript">
    if (ips.indexOf(ownIP) <= -1) {
        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
                m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
        ga('create', 'UA-xxxxxxxx-x', 'auto');                   
        ga('set','anonymizeIp',true);
        ga('send', 'pageview');
}
</script>

Damit haben wir dann unsere eigenen Zugriffe komplett aus dem Google- Analytics- Account gefiltert. Natürlich könnten wir z.B. anstelle den Code komplett nicht ausführen zu lassen eine andere Property-ID angegeben umso die internen Zugriffe weiterhin gesondert tracken zu können. Hier sind der Fantasie kaum Grenzen gesetzt.

Doch halt! Sind wir schon fertig? Nein! Noch nicht ganz, den wir arbeiten ja schließlich mit dynamischen IP- Adressen und wir haben eben eine statische JavaScript- Datei erstellt. Das bedeutet wir müssen in regelmäßigen Abständen das JavaScript- Array erneut erstellen lassen. Dies können wir einfach mit dem Aufruf der Datei create_iplist.php machen. Entweder man ruft diese über einen Cronjob als CLI über PHP auf oder aber wir nutzen die (eben erwähnte) Sonderfunktion von xxw.at. Hier kann ich mein PHP- Script als externe Aktion angeben. Sobald das Nameserver- System die neuen IP- Adressen übernommen hat ruft der Dienst xxw.at mein PHP- Script auf.

Ich hoffe ich habe Euch einen weiteren kleinen Anreiz gegeben und einen Lösungsansatz gezeigt, wie man Zugriffe von Internetanschlüssen mit dynamischer IP- Adresse kontrolliert in Google- Analytics ausschließen oder umleiten kann.

 

Siehe auch:

 

Andreas Röne
Über Andreas Röne 12 Artikel
Andreas Röne ist im Bereich Internet ein alter Hase. 1989 startete er mit der Programmierung auf einem Commodore C64 und wechselte 1993 zu seinem ersten PC. Drei Jahre später gründete er mit seinem Klassenkameraden Hasim Citak seine erste Firma in der Software entwickelt wurde. 1996/1997 entstanden die ersten Webseiten auf Basis von HTML und 1998 wurde das Geschäftsmodell in den Bereich Internet Service Provider ausgebaut. Als Testsieger unter den Providern schnitt Röne Multimedia in der Ausgabe 09/1998 der Internetworld als einziger mit der Note "Sehr gut" ab. 2004 wechselte Andreas als CTO zur s.mile DIREKT AG entwickelte die interne Warenwirtschaft und die Onlineshops. Er koordinierte die Zusammenarbeit zwischen der AG und den Lieferanten und war für den gesamten technischen Ablauf der Onlineshops verantwortlich. Bevor er 2011 das Unternehmen verließ war er noch massgeblich an den Gründungen der Tochterunternehmen s.mile DIRECT Inc. in New York und Novakartografija in Belgrad beteiligt. 2011 gründete Andreas "brainlogical Software Development" um seinem eigentlich Ziel der Softwareentwicklung nachzukommen doch Kundenaufträge aus dem Bereich Websiteentwicklung und Suchmaschinenoptimierung blieben nicht aus und so wurde dies ein größer Bestandteil. brainlogical wuchs zu einem TYPO3- Spezialisten heran und setze zahlreiche kleine und große Websites erfolgreich mit TYPO3 um. 2015 wurde aus "brainlogical Software Development" die "3B Kommunikation GmbH" die heute als Onlinemarketing- Agentur ihren Hauptsitz in Schloß Holte- Stukenbrock hat und Büros in Bielefeld und Berlin betreibt. Weitere Qualifikationen und Tätigkeiten: Google AdWords Expert, Google Analytics- zertifiziert & Dozent an der VHS.

Hinterlasse jetzt einen Kommentar

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*