Borlabs Cookie: Google Tag Manager Events richtig tracken

16. 12. 2019
|
Analytics
|

Um Google Analytics datenschutzkonform auf der eigenen Website zu nutzen, ist nach aktuellem Stand wohl eine Einwilligung des Nutzers (Opt-In) erforderlich. Erst wenn dieser sein Opt-In gegeben hat, dürfen Daten gesendet und Cookies gesetzt werden. Ein gängiges Plug-In, um das auf WordPress basierten Websites umzusetzen ist das „Borlabs Cookie“ Plugin.*

 

Eine Möglichkeit, um Google Analytics auf der eigenen Seite einzubinden, ist der Google Tag Manager. Besonders wer mehr tracken will als den reinen Seitenaufruf, wird früher oder später auf diese Lösung stoßen, weil sich auch kompliziertere Tracking Setups deutlich einfach umsetzen lassen.

Das Google Analytics Setup via Tag Manager wird auch vom Borlabs Cookie Plugin unterstützt. In der offiziellen Borlabs Dokumentation gibt es dazu eine Anleitung, wie man das Borlabs Cookie Plugin für den Google Tag Manager aufsetzt.

Im Grunde wird dabei der „leere“ Google Tag Manager immer geladen. Die Einbindung über Borlabs als essentiell bzw. technisch notwendiges Cookie sorgt dann dafür, dass er auch in den Datenschutzeinstellungen unter dieser Cookie Gruppe auftaucht.

Um über den Tag Manager Google Analytics zu laden, wird dann einfach eine benutzerdefinierte Variable in den Data Layer gepusht, die schließlich im Google Tag Manager anstatt dem herkömmlichen Page View als Trigger genutzt wird, um den Seitenaufruf an Google Analytics zu schicken.

Events auch nur nach Opt-In senden

Wer aber eben nicht nur den Seitenaufruf trackt, sondern über den Tag Manager etwa auch Events, wie Klicks auf Telefonnummern und Email-Adressen, abgeschickte Kontaktformulare oder Newsletteranmeldungen schickt, wird schnell merken, dass dieses Basic Setup für eine DSGVO datenschutzkonformes Tracking nicht ausreicht.

Denn wer lediglich der Borlabs Doku folgt, aber Events weiterhin „ganz normal“ triggert, wird sehen, dass diese auch in Analytics auftauchen, wenn der User das Tracking abgelehnt hat.

Normaler Event Trigger

Denn auch bevor man Events per Tag an Google Analytics schickt muss eben abgefragt werden, ob ins Tracking eingewilligt wurde. Zum Glück ist diese Information ja schon im Data Layer hinterlegt. Daher muss in den Borlabs Settings gar nichts geändert werden. Alle nötigen Änderungen kann man im Tag Manager durchführen.

 

Trigger-Gruppen nutzen

Am einfachsten funktioniert das, indem man die „normalen“ Trigger ganz einfach mit dem Benutzerdefinierten Ereignis Trigger, das wir für den normalen Page View nutzen, in eine Trigger-Gruppe packt.

Dazu einfach im Tag Manager im Reiter „Trigger“ einen neuen Trigger erstellen und als Trigger Typ ganz unten unter “Sonstiges“ die „Trigger-Gruppe“ auswählen.

Dann kombiniert man einfach immer das Benutzerdefinierte Ereignis, das zuvor für den Page View erstellt wurde mit dem jeweiligen Event Trigger:

Trigger Group: Borlabs Custom Event Trigger + „normaler“ Trigger

Anschließend wird dem jeweiligen Event Tag statt dem einzelnen Trigger die Trigger-Gruppe zugewiesen. Natürlich für jedes Tag, das Daten an Google Analytics überträgt:

Bevor Tags an Google Analytics geschickt werden, wird geprüft, ob der User eingewilligt hat.

Durch dieses Setup wird das Tag nur abgefeuert, wenn SOWOHL die Einwilligung des Users – hinterlegt durch das Datenschicht Event – vorliegt, ALS AUCH der „normale“ Trigger greift.

Update: checkCookieConsent statt Trigger Groups

Das Nutzen von Trigger Groups bringt aber einige Probleme mit sich. Das Hauptproblem: Eine Trigger Group kann nur 1x pro Seitenaufruf gefeuert werden. Für mache Event-Typen ist das unproblematisch, für andere funktioniert die Lösung aber schlichtweg nicht. Etwa ein Scroll-Depth-Trigger, der ja mehrfach pro Seite feuern muss.

Die elegantere Lösung ist daher statt einer Trigger Group, eine zusätzliche Bedingung für den konkreten Trigger zu nutzen.

Statt die „generelle“ Einwilligung im DataLayer abzufragen, nutzen wir dazu die Borlabs JavaScript API, um zu prüfen, ob der Besucher für das übergebene Cookie seine Einwilligung erteilt hat.


function(){
return window.BorlabsCookie.checkCookieConsent('google-analytics');
}

Als erstes erstellen wir eine neue Custom JavaScript Variable. In dieser packen wir ein kleines Snippet, um die Einwilligung für Google Analytics abzufragen.

JavaScript Variable nutzt checkCookieConsent um Einwilligung abzufragen

Genau diese Variable nutzen wir nun im Trigger als Bedingung, die erfüllt sein muss, damit der Trigger feuert. Per Borlabs JavaScript API können wir dabei die Einwilligung sowohl für einzelne Cookies via checkCookieConsent abfragen, als auch für ganze Cookie Gruppen via checkCookieGroupConsent.

Der Trigger für Klicks auf Email Links löst nur dann aus, wenn auch unsere Variable „true“ ist.

Disclaimer: Achtung! Für detaillierte und rechtsichere Informationen zum Thema DSGVO, ePrivacy oder zu allgemeinen datenschutzrechtlichen Fragen sollten Sie einen fachkundigen Rechtsanwalt für Datenschutz aufsuchen. Wir übernehmen keinerlei Haftung für eventuell resultierende Schäden aus der Nutzung bzw. Nichtnutzung der Informationen dieses Blogs. Die mit * gekennzeichneten Links sind Affiliate Links.

19 Kommentare
  • Jason
    17. Dezember 2019

    Hallo,

    erstmal vielen Dank für das Tutorial.

    Ich versuche es gerade direkt uzusetzen, aber mir ist aufgefallen, dass ich keinen „borlabs Opt-In Trigger für GA“ habe.

    Wie genau sieht der Ereignisname aus?

    Antworten
    • Daniel Marx
      17. Dezember 2019

      Dieser Trigger ist der benutzerdefiniertes Ereignis Trigger, den man für den Seitenaufruf anlegt. Die Benennung des Triggers im GTM ist komplett willkürlich. In der Borlabs Doku (https://de.borlabs.io/kb/google-tag-manager-nutzen/) wird dieser Trigger z.B. „Google Analytics Trigger“ genannt.

      Antworten
  • Gabriel
    06. Januar 2020

    danke dir für diesen Artikel! Habe gerade das selbe Problem gehabt

    Antworten
  • Holger
    15. Januar 2020

    Hi, super Anleitung. Borlabs beschreibt auf der von Euch genannten Seite wie man den Google Tag Manager als essenziellen Cookie einbindet (ihr macht das auch so habe ich gesehen) und erklärt gleichzeitig, dass dies bzgl. der DSGVO nicht empfehlenswert wäre. Wie seht ihr das? Wird das durch Eure Anleitung hier rechtsicher?

    Mir gefallen auch Eure Namenskonventionen gut. Könntest du dazu noch einige Beispiele nennen?

    Antworten
    • Daniel Marx
      16. Januar 2020

      Hallo Holger,

      wir nutzen den Tag Manager in der Weise, wie es auf Borlabs beschrieben wird. Durch diese Anleitung wird die Einbindung des GTM nicht mehr oder weniger rechtssicher, sondern sie erklärt, wie nicht nur der generelle PageView sondern eben auch Events basierend auf der Einwilligung der User übertragen werden.

      Der GTM übernimmt lediglich die Integration & Aktivierung von JavaScript-Code auf der Website, sammelt aber selbst aktiv keine Daten. Dennoch wird im Zuge des Ladens des (leeren) Containers natürlich zwangsläufig die IP-Adresse des Clients übertragen, die eben als personenbezogenes Datum gilt. Daher sollte man in der GTM Verwaltung in den Kontoeinstellung zumindest die Anonymisierung der Daten aktivieren.

      Dazu ob ein leerer GTM Container nun technisch notwendig ist, oder bereits als Tracking gilt, ist eine Frage zu deren Klärung es schlussendlich Gerichtsentscheidungen geben muss.

      Bei den Namekonvertions für Tags & Triggers im GTM versuchen wir so logisch und selbsterklärend zu machen wie möglich. Wichtig ist vor allem, dass sie im Konto durchgehend stringend gehalten werden.

      Antworten
  • Fabian
    20. Februar 2020

    Hallo, vielen Dank für dieses super Tutorial!! Ich frage mich, warum ich nicht einfach 2 Trigger auswählen kann für den Tag. Also den Borlabs GA + Event Trigger… Ohne eine Gruppe zu erstellen.
    Danke für eine kurze Klärung.
    Viele liebe Grüße!!
    Fabian

    Antworten
    • Jonatan Ivo
      23. Februar 2020

      Hallo Fabian,
      das Problem dabei beide Trigger mit einem Tag zu verknüpfen ist, dass diese in einem OR/oder Verhältnis zueinander stehen und somit die Trigger unabhängig voneinander den Tag auslösen können. Verknüpfst du diese in einer Gruppe müssen beide Trigger auslösen damit der Tag überhaupt erst abgeschickt wird.
      Jonatan

      Antworten
  • Constantin
    25. März 2020

    Hallo Jonatan,
    gibt es bei Borlab die Möglichkeit, den Google Tag Manager – sofern als nicht essenziell eingestuft – vor der Zustimmung des Users zu unterbinden?Borlab selbst zeigt ja nur die Methode auf, bei welcher der GTM als essenzieller Cookie hinterlegt wird. Wäre cool, wenn du mir da weiterhelfen könntest.

    Gruß,

    Constantin

    Antworten
    • Daniel Marx
      26. März 2020

      Hallo Constantin,

      hm, ich denke es kommt auch darauf an für was du den Tag Manager noch nutzt. Wenn du ihn lediglich für Google Analytics nutzt, könntet du direkt den „normalen“ Tag Manager Container laden und müsstest gar kein Custom Event für den Pageview nutzen. In dem Fall würde ich Tag Manager und Analytics in einem „Cookie“ zusammenfassen. Wenn der User zustimmt, wird der Tag geladen und feuert direkt den PageView, wenn nicht eben nicht.

      Wenn du den Tag Manager noch für andere Tags nutzt, könntest du versuchen für den GTM eine eigene Cookie Gruppe zu erstellen, statt ihn bei den essentiellen Cookies zu laden. Sofern diese Cookie Gruppe an Position 2 geladen wird und Events die auf dem GTM aufbauen in späteren Cookie Gruppen könnte es funktionieren (habe es selbst nicht gestestet – müsste man ausprobieren). Ein Problem das entsteht ist, dass wenn jemand die Cookie Gruppe nicht akzeptiert auch alle abhängigen Tags nicht funktionieren. Ich denke aber auch, dass ein solches selektives Einverständnis (GTM – nein, GA – ja) eher die Ausnahme sein dürfte…

      lg
      Daniel

      Antworten
  • Christian
    26. März 2020

    Danke für die Anleitung. Leider feuert der Tag bei einer Trigger-Gruppe nur einmal.

    Antworten
    • Daniel Marx
      27. März 2020

      Hallo Christian,

      ja, Trigger-Gruppen feuern leider nur einmal pro Pageview. Möchte man ein Event mehrfach tracken, muss man sich Gedanken machen, wie man ein solches Szenario erfassen könnte. Eventuell durch weitere Pushs in den DataLayer…?

      Antworten
      • Henry
        31. März 2020

        Moin Daniel,
        somit ist es nicht möglich ein Event auf ein Button ‚Kontaktmöglichkeiten‘ der ein- Modal ( intermer PopUp) öffnet UND dann ein in diesem PopUp befindenden Link ( E-Mail, Telefon-Nummer, oder Webseiten-Link) mit einem weiteren ‚click‘ beide zu erfassen ?

        Was wäre auch wenn ein Link die Seite in einem neuen Tab öffnet und auf der alten Seite ein weiterer Link geklickt wird. Wird der getriggert?

        Vielen Dank für eine Antwort auf meine hoffentlich verständlichen Fragen ;o)

        Antworten
        • Daniel Marx
          01. April 2020

          Hm, wenn du die Events genau definierst (Event 1 = Klick Kontaktmöglichkeiten, Event 2 = Klick Kontakt) kannst du beide weiterhin auch als Triggergroup getrennt feuern. Du kannst nur ein Event nicht mehrfach hintereinander feuern. So wird z.B. das Event „Kontakt“ nur einmal abgeschickt, auch wenn der User zwei mal auf den Link klickt.

          Antworten
  • Constantin
    02. April 2020

    Hi Daniel,
    funktioniert über diesen Weg leider nicht, da der GTM über ein Plugin installiert ist und so oder so immer feuert, egal wie ich es drehe. Setze ich dann für den Tag Manager noch ein extra Cookie, so ist er doppelt eingebettet. Im Prinzip müsste Borlab also das komplette Plugin blockieren, damit es läuft wie ich es mir vorstelle. Ich werde das Plugin deaktivieren und stattdessen den GTM manuell einbauen; dann müsste es ja über die Cookie-Funktion funktionieren – hoffe ich zumindest.

    Antworten
  • Julia
    15. April 2020

    Hallo!

    Vielen herzlichen Dank für den Artikel – ich fand diesen sehr hilfreich. Bei vielen Events stelle ich es mir jedoch etwas mühsam vor, vorerst alle Trigger zu erstellen und aus diesen dann die Triggergruppen.

    Ist es irgendwie möglich, sobald das Datalayer event gesendet wurde eine Variable bspw. borlabsCookieOptInGoogleAnalytics=’true‘ zu setzen sodass ich es nicht als Triggergruppe ABER als Bedingung im einzelnen Trigger setzen kann?

    Leider bin ich noch nicht draufgekommen wie,…

    Großen Dank schon einmal für die Hilfe!
    LG

    Antworten
  • Julia
    15. April 2020

    Hey,

    Ich habe nun ein bisschen rumgespielt und bin auf einen weiteren Lösungsweg gekommen:

    Anwendungsfall: hat man mehrere Statistik (Analytics, Hubspot) sowie Ad Systeme (Facebook, Google Ads, etc) im Einsatz müssten nach dem obigen Lösungsweg für diese Cookiegruppen immer zwei triggergruppen erstellt werden. Dh:
    1. Trigger: Custom Event Statistic mit bspw: „borlabsCookieOptInAnalytics“
    2. Trigger: Custom Event Marketing mit bspw: „“borlabsCookieOptInMarketing“
    3. Event: Form Submit
    4. Triggergruppe: 1&&3
    5. Triggergruppe: 2&&3

    Bei mehreren Events kann das ganz schön aufwendig sowie unübersichtlich innerhalb den Trigger werden.

    Meine Idee war folgende:
    – man erstellt für jede Cookiegruppe eine Variable (Custom Script) und ruft folgende Funktion mit den Rückgabewerten true/false auf:

    function(){
    return window.BorlabsCookie.checkCookieGroupConsent(‚cookieGroup‘);
    }

    man müsste mit dieser nur noch mehr 2 Trigger zu Form Submit erstellen (1x Statistic, 1x Marketing) und beim Filter eben die jeweilige Variable mit dem Wert ‚true‘ als Bedingung setzen.

    Macht das aus eurer Sicht sinn? Ich habe es auf jedenfall getestet und es funktioniert wunderbar.
    Anbei noch zu den Funktionen von borlab: https://de.borlabs.io/kb/javascript-api/#ch_4

    LG Julia

    Antworten
  • Lea
    21. Oktober 2020

    Hey Daniel,

    ich habe den Google Tag Manager auf meiner Webseite auch über Borlabs eingebunden und bei mir werden gleich beim aufrufen der Seite die Cookies getrackt.

    Leider kann ich aus deinem Artikel nicht ganz herauslesen, wie die bereits bestehenden Trigger konfiguriert wurden.

    Ich bin für das Einbinden des Google Tag Manager und Google Analytics der Anleitung von Borlabs gefolgt.

    Gibt es eine Möglichkeit, dass die Cookies erst dann gefeuert werden, wenn ich auf alle akzeptieren gehe?

    Antworten
  • Simone
    23. Oktober 2020

    Hallo!
    erst Mal vielen Dank für diese Hinweise. Ich bin deiner Anleitung gefolgt und dies exemplarisch für eins meiner Events getestet und habe jetzt das Problem, dass gar nichts mehr getrackt wird. Keine Seitenaufrufe nichts. Woran kann das liegen? Hoffe du weißt woran es liegen könnte!
    Liebe Grüße
    Simone

    Antworten
    • Daniel
      27. Oktober 2020

      Hallo Simone, wenn du lediglich den Trigger eines Events in eine Trigger-Group packst sollte das keinerlei Auswirkungen auf den normalen PageView haben. Denn feuerst du weiterhin über das Borlabs Opt In Event, wie auf https://de.borlabs.io/kb/google-tag-manager-nutzen/ beschrieben.

      Bist du sicher, dass ansonsten nichts im Container geändert wurde?

      PS: Da die Trigger Groups irgendwann an ihre Grenzen kommen – z.B. nur einmal pro Seitenaufrug feuern, nutzen wir mittlerweile den Ansatz statt einer Trigger Group, mithilfe eines Custom JS den Cookie Status abzufragen und diese true/false Antwort als Bedingung zu nutzen:

      function(){
      return window.BorlabsCookie.checkCookieGroupConsent(‘cookieGroup’);
      }

      Antworten

Kommentar verfassen

Kommentar verfassen