Funding Coices – DSGVO Cookie Consent mit Google Analytics

Tricks und Tipp sowie Code-Beispiele für die Integration eines Cookie-Consent-Tools mittels Google Funding Choices und Anbindung an Google Analytics

Hintergründe – Cookie Consent

novulux cookie consent popup banner funding choicesCookie Consent Manager (CCM) oder ein Cookie Consent Tool oder Plugin ist in der Regel notwendig, um eine Webseite heutzutage rechtskonform nach EU-Recht und europäischer Richtlinie (siehe ePrivacy Directive und EuGH-Urteil) und DSGVO betreiben zu können. Zumindest dann, wenn Cookies gesetzt werden. Zum Beispiel von Google Analytics / Universal Analytics und auch von Drittanbieter der Werbebranche über die platzierten Werbebanner.

Hierbei muß per Gesetz vom Seitenbesucher aktiv die Einwilligung eingeholt werden, bevor irgend welche technisch nicht unbedingt notwendigen Cookies gesetzt werden. Dies betrifft daher auch die Tracking-Cookies von Google Analytics (_ga-UAxxxxxx)

Diese Tools übernehmen zum einen die Kommunikation mit dem Seitenbesucher (in der Regel über einen Consent-Banner oder ein Consent-Popup oder Overlay) und stellen die abgefragten Informationen dann den Backend-Systemen (Werbeplattformen / Werbesystemen / Google Analytics) zur Verfügung oder lösen selbst Aktionen aus.

Ale einheitliche Schnittstelle und Plattform zur Kommunikation zwischen den Werbetreibenden Plattformen und Anbietern und dem Cookie Consent Tools hat sich das TCF 2.0 Framework von der IAB-Europe Vereinigung durchgesetzt (Details TCF 2.0)

Google Funding Choices

Mittlerweile gibt es viele Lösungen auf dem Markt für die Integration der Cookie-Abfrage Fenster. Dabei gibt es einige wenige kostenfreie Lösungen und sehr viele Anbieter mit entsprechenden BezahlModellen für das CookieConsent Management. Diese werden nicht selten per PageViews / PageImpressions oder nach der Anzahl der Unterseiten einer Domain abgerechnet – monatliche Kosten von mehreren hundert Euro sind bei größeren Plattformen und Projekten keine Seltenheit.

Auch für WordPress gibt es zahlreiche Plugins – kostenlose und auch mit bezahl-Option. Tipp: die kostenfreie Grundversion CookieYes von WebToffee als Cookie Consent Tool

Aber auch Google selbst bietet eine plattformunabhängig Lösung an: Google Funding Choices

Diese nutzt zwar hervorragend und einfach das TCF 2.0 Framework und integriert somit die Werbeanbieter und die Werbebranche, doch scheint keine eigene Option für die Integration von Google Analytics in das Consent Management zu bieten. Doch hier gibt es einige Tricks:

Funding Choices und Google Analytics

Im Folgenden beschäftigen wir uns ausschließlich mit der Google Analytics / Universal Analytics Integration über den gtag (gtag.js) – nicht mit der älteren Integrationsvariante über analytics.js

Schritt 1 – Deaktivierung der Analytics Cookies

Zuerst einmal muß bei der Integration des Google Analytic Tags das TCF 2.0 Framework aktiviert werden. Dies geschieht mit dem Parameter
window['gtag_enable_tcf_support'] = true;

Gleichzeitig muß Google Analytics mitgeteilt werden, daß Cookies bei der Skript-Ausführung noch nicht gesetzt werden dürfen. Dies darf erst nach Zustimmung im Popup geschehen.

Daher werden die Default-Werte für die folgenden beiden Einstellungen erst einmal auf „ablehnen“ gestellt:

  • analytics_storage: Steuert Statistik-Cookies, also Google Analytics.
  • ad_storage: Steuert Marketing-Cookies, also Google Ads und Floodlight.

Dies erfolgt über den Code:

gtag('consent', 'default', {'ad_storage': 'denied','analytics_storage': 'denied'});

Im HEAD Bereich der Seite sieht die Integration des Google Analytic Tags somit wie folgt aus:

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-xxxxxxxx-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
window['gtag_enable_tcf_support'] = true;
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('consent', 'default', {'ad_storage': 'denied','analytics_storage': 'denied'});
gtag('config', 'UA-xxxxxxxx-1', { 'anonymize_ip': true });
</script>

Mit diesen Einstellungen wird Google Analytics zwar noch gestartet und auch ausgeführt – aber es werden standardmäßig keine Cookies mehr gesetzt.

Wie die Cookies dann über das Consent Management Tool Funding Choices wieder aktiviert werden, dazu kommen wir gleich. Vorab aber noch einige Details zur Erklärung:

Diese Möglichkeit der Einstellung hat den großen Vorteil, daß Analytics prinzipiell noch korrekt läuft und zum Beispiel auch Pageviews – also Seitenaufrufe – sauber und korrekt zählt.
Was ohne Cookies natürlich nicht mehr funktioniert, ist die Analyse der Session und Benutzer. Google Analytics kann Benutzer nicht wieder erkennen und zuordnen. Jeder Klick und jeder Seitenaufruf wird somit als neuer Besuch und neuer Besucher gewertet.

Die Anzahl der Seiteaufrufe ist also wie beschrieben weiterhin korrekt – die Anzahl der Unique Users / Besucher schnellt aber in die Höhe und ist falsch.

Viele Plugins (speziell WordPress Plugins) und andere CookieConsent Tools fahren einen anderen Ansatz. Diese blenden das Google Analytics Skript anfangs komplett aus oder deaktivieren dieses. Hierzu gibt es auch eine eigene Funktion / einen Parameter:

window['ga-disable-GA_MEASUREMENT_ID'] = true; wobei GA_MEASUREMENT_ID die eigene  Google Universal ID ist – also:

window['ga-disable-UA-xxxxxxxx-1'] = true;

Der große Nachteil dieser Lösung: dies ist gleichzusetzen mit der Deaktivierung des kompletten Google Analytic Codes. Analytics bleibt somit erst einmal komplett inaktiv. Es werden keine Messungen durchgeführt und somit auch nicht einmal PageViews / Seitenaufrufe gezählt. Gibt der User / Besucher keine Einwilligung im Consent-Tool, ist dieser in den Statistiken quasi verloren und wird nicht gezählt.

Daher ist die obere Lösung meines Erachtens in jedem Falle vorzuziehen.

Schritt 2: Integration des Funding Choices Codes

Als Nächstes wird die Funding Choices Lösung konfiguriert und der Code dann ebenfalls im Header integriert.

Dies ist recht einfach und wird im FundingChoices Tool selbst gut erklärt. Es gibt nur wenige Konfigurationsmöglichkeiten.

  • Anfangs wird die Webseite angelegt.
  • Dann ausgewählt, daß man „EU Nutzereinwilligung“ (DSGVO) erstellen möchte.
  • Es kann konfiguriert werden, ob das Fenster nur die Optionen „Annehmen“ und „Konfigurieren“ oder auch die Option „Ablehnen“ enthalten soll.
  • Anschließend können die TCF-Anbieter / Vendors ausgewählt werden und weitere eigene Kategorien für die Verwendung, sollten zusätzlich noch eigene Cookies / Cookies von Drittanbieter gesetzt und kontrolliert werden.
  • die Konfiguration muß anschließend noch veröffentlicht werden.

Der Funding-Choices Code wird anschließen kopiert und im Header am Ende integriert.

Das Cookie-Consent Fenster läuft nun bereits auf der Webseite und steuert über TCF auch die Werbeintegration auf Basis der User-Auswahl.

Schritt 3: Aktivierung der Google Analytics Cookies

Normalerweise sollte man nun davon ausgehen, daß ähnlich wie die Kommunikation mit den Advertisern Werbe-Anbietern auch das Google eigene Google-Analytics im Google Funding Choices integriert sei.

Dem scheint aber leider nicht so. Egal, welche Auswahl im Cookie Fenster gewählt wird und ob die Einwilligung / Zustimmung für alle Cookies gegeben wir, oder nicht: die Analytics Cookies bleiben deaktiviert.

Die Google Dokumentation ist dazu auch extrem mangelhaft und gar irreführend. Denn es gibt zum einen die Google Funding Choices API und zum anderen die TCF 2.0 API

Leider ist in der Dokumentation nicht oder nur ungenügend erwähnt, daß das Consent-Pupup dieser Version gar nicht die Google Funding Choices API reagiert, sondern nur mit der TCF 2.0 API arbeitet.
Daher müssen beide kombiniert werden, um basierend auf der Rückmeldung und Auswahl des Webseiten-Besuchers zu reagieren.

Aktiviert werden könnten die Google Analytics Cookies über den Befehl:

gtag('consent', 'update', {'ad_storage': 'granted','analytics_storage': 'granted'});

Nun gilt es noch herauszufinden, ob und wann der Besucher eine Auswahl getroffen hat. Und welche.

Dies ist relativ eindeutig, wenn er auf „Einwilligen“ oder „Alle annehmen“ klickt. Wählt er jedoch „Optionen verwalten“ so bleibt zu entscheiden, bei welcher Verwendungs-Kategorie (Purposes) man Google Analytics einordnen will.

Passend wären sicherlich:

  • Informationen auf einem Gerät speichern und/oder abrufen
  • Inhalte-Leistung messen
  • Produkte entwickeln und verbessern

Wir haben uns für ersteres entschieden. Diese Purpose hat die Purpose-ID 1

Nun wird via Google Funding Choices API auf die Rückmeldung des Users gewartet und dann via TCF API geschaut, welche Option ausgewählt wurde / welche Einwilligung gegeben wurde.
Bei der Einwilligung „Alles“ oder bei der selektiven Auswahl und Freigabe von „Informationen auf einem Gerät speichern und/oder abrufen“ aktivieren wir dann die Analytics Cookies wieder.

Hier unser Code-Beispiel dazu – einzufügen am besten am Anfang im Head-Bereich – also über der Analytics und Funding-Choices Integration:

<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.ccpa = window.googlefc.ccpa || {}
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];


// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'CONSENT_DATA_READY':
() => __tcfapi('addEventListener', 2, function(tcData, success) {
if (success && tcData.gdprApplies && (tcData.eventStatus === 'tcloaded' || tcData.eventStatus === 'useractioncomplete') ) {
if (tcData.purpose.consents[1]) {
gtag('consent', 'update', {'ad_storage': 'granted','analytics_storage': 'granted'});
}
}
})
});
</script>

 

Sobald der Seitenbesucher nun im Cookie Consent Banner oder Overlay Popup Fenster zustimmt, werden die Google Analytics Cookies  gesetzt und Google Analytics arbeitet normal im vollen Umfang.

Schritt 4: manueller Aufruf Cookie Consent

Um DSGVO-konform zu sein und allen Vorgaben zu entsprechen, muß dieses Cookie-Consent-Fenster auch jederzeit nachträglich vom Seitenbesucher aufrufbar zu sein, um seine Einstellungen zu ändern (Update) oder diesen zu widersprechen. Die Integration dazu kann zum Beispiel im Footer geschehen oder in den Datenschutzbestimmungen.

Der erneute Aufruf des Cookie-Fensters erfolgt über den Befehl:

googlefc.callbackQueue.push(googlefc.showRevocationMessage)

Der Beispiel-Code für einen Link oder Button zum Anpassen des Cookie Zustimmung zum Beispiel in den Datenschutzbestimmungen könnte also wie folgt aussehen:

<a href="javascript:googlefc.callbackQueue.push(googlefc.showRevocationMessage)">Cookie-Einstellungen anpassen</a>.

 

Offene Punkte

Aktuell offen ist, wie Google Analytigs bei Funding-Choices in die Liste der Anbieter (Vendors) integriert werden kann. In der vorgegebenen Liste von Anbietern, aus denen man wählen kann, ist aktuell als einziger Google-Dienst lediglich „Google Advertising Products“ verfügbar. Dies umfasst aber nur Google-Werbe-Produkte wie Google AdManager oder Adsense / AdXchange.

Es müsste aber noch Google Analytics als Vendor angelegt und eingebunden werden.

Und anschließend wieder via Script (analog zu oben) dann auch beim entsprechenden Vendor aktiviert werden.
Man könnte dies auch einfach an den existierenden Vendor „Google Advertising Products“ knüpfen. Dieser hat die Vendor-ID 755.

Der Code würde dann also lauten, um den Vendor Consent abzufragen:

if (tcData.vendor.consents[755]) {

Beides kombiniert und mit ODER verknüpft sähe dann wie folgt aus:

<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.ccpa = window.googlefc.ccpa || {}
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];


// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'CONSENT_DATA_READY':
() => __tcfapi('addEventListener', 2, function(tcData, success) {
if (success && tcData.gdprApplies && (tcData.eventStatus === 'tcloaded' || tcData.eventStatus === 'useractioncomplete') ) {
if (tcData.purpose.consents[1] || (tcData.vendor.consents[755]) {
gtag('consent', 'update', {'ad_storage': 'granted','analytics_storage': 'granted'});
}
}
})
});
</script>

Wer hier Informationen hat, bitte gern und unbedingt bei unserer Redaktion melden!

Speziell bzgl. des Anlegens eines eigenen Custom-Vendors

Alle Angaben und Ideen natürlich ohne Gewähr!