Google Analytics ohne Cookies verwenden

Web & Technik
von Gerhard Petermeir
Veröffentlicht am: 27.04.2021 20:17, zuletzt aktualisiert am: 27.04.2021 20:24

Google Analytics ohne Cookies verwenden

Google Analytics bereitet jedem Webmaster mit der Datenschutzgrundverordnung (DSGVO) wohl etwas Kopfschmerzen. Auch grundsätzlich datenschutzfreundliche Websites müssen sich eine Zustimmung holen, wenn Sie Google Analytics zu statistischen Zwecken einbauen, samt nervigem Cookie-Banner. Doch Google Analytics geht auch ohne Cookies, ein wohlgehütetes Geheimnis. 

Man kann Google Analytics durchaus ohne Cookies einsetzen. Das nachfolgende Script fügt den Google Analytics Tracking Code auf eurer Seite ein, ohne dabei Cookies zu setzen. Durch die zusätzlichen Optionen anonymize_ip: true, storage: 'none', storage_gac: false und client_storage: 'none' werden alle Daten anonymisiert und Google wird angewiesen, nichts personenbezogenes zu speichern. 

Um eine Sitzung aber nicht fälschlicherweise als multiple Sitzungen zu erkennen, muss eine (zufällige) client_id erzeugt werden. Diese wird nicht als Cookie, sondern nur im localStorage gespeichert. Das bedeutet, dass nur die tatsächliche Website Zugriff auf diesen Speicher hat. Im Gegensatz zu Drittanbieter-Cookies, wo Google z.B. von der google-analytics.com Domain ein Cookie für eure Webseite speichern konnte. 

Google Analytics auch ohne Cookie Banner?

Warnung: Das Nachfolgende ist keine Rechtsberatung sondern eine persönliche Meinung. Bitte informiert euch stets selbst über die Rechtmäßigkeit und bildet euch eine eigene Meinung bevor ihr dieses Skript verwendet. Solltet ihr anderer Meinung sein, lasst es mich gerne wissen! Skript ohne Gewähr, ohne Haftung!

Da Google Analytics mit diesem Code nun keine personenbezogenen Daten mehr erhält, sollte dies meiner Meinung nach auch nicht im Konflikt mit der Datenschutzgrundverordnung stehen. Eine Zustimmung für komplett anonymisierte Daten scheint mir übertrieben. Es lässt sich meiner Meinung nach kein Nutzerverhalten daraus schließen und auch keine Person zuordnen. Im Gegensatz verliert man natürlich einige wertvolle Optionen von Google Analytics. Z.B. geht das geräteübergreifende Tracking komplett verloren. 

Google vergräbt diese Information übrigens wie ein Geheimnis. Während es in der alten Version von analytics.js noch in der Dokumentation zu finden war, ist in der gtag.js nichts wenig davon zu finden. Was übrig blieb, war stundenlange Recherche im Internet und Reverse-Engineering der JavaScript-Dateien von Google. 

Das Ergebnis kann, und soll, jeder selbst in den Entwicklertools (F12 im Browser) kontrollieren. Aktuell funktioniert es gut, es werden keine Cookies gespeichert und die anonymisierte Übertragung der IP Adresse findet auch statt.

Vergesst nicht, 2x eure eigene Tracking ID anstatt {{ google_analytics_ua }} einzutragen.

var GA_LOCAL_STORAGE_KEY = 'ga:clientId'

function gtag() {
    dataLayer.push(arguments);
}

var script = document.createElement('script');
script.src = 'https://www.googletagmanager.com/gtag/js?id={{ google_analytics_ua }}';
script.addEventListener('load', function () {
    window.dataLayer = window.dataLayer || [];

    gtag('js', new Date())

    var clientId = localStorage.getItem(GA_LOCAL_STORAGE_KEY) || null;
    if (!clientId) {
        clientId = Math.random().toString(36);
        localStorage.setItem(GA_LOCAL_STORAGE_KEY, clientId);
    }
    gtag('js', new Date())
    gtag('config', '{{ google_analytics_ua }}', {
        storage: 'none',
        anonymize_ip: true,
        send_page_view: true,
        storage_gac: false,
        client_storage: 'none',
        client_id: clientId,
    })
});

document.head.append(script);


Permalink: https://to.ptmr.io/GACookies