Geschrieben von

Google Tag Manager: Strg+C tracken

Analytics

Können wir den Text, den sich ein Nutzer per Strg+C in die Zwischenablage kopiert, holen und dann per Event über den Google Tag Manager an Google Analytics schicken? Ja. Wie? Dazu brauchen wir folgendes:

  • Eine JavaScript-Funktion, die uns den markierten Text des Nutzers zurückgibt
  • Eine JavaScript-Funktion, die beim kopieren des Textes (Strg+C) die notwendigen Daten in den dataLayer pusht
  • Ein benutzerdefiniertes HTML-Tag in GTM mit den eben zwei genannten JS-Funktionen
  • Variablen und Trigger im Google Tag Manager
  • Google Analytics Tag für das Senden des Events

Erste JavaScript-Funktion

Die erste JavaScript-Funktion muss in der Lage sein, den markierten Text des Nutzers zurückzugeben. Dazu kann man folgenden Code eines Entwicklers von Stack Overflow nutzen:

function getSelectionText() {
var text = "";
if (window.getSelection) {
text = window.getSelection().toString();
} else if (document.selection && document.selection.type != "Control") {
text = document.selection.createRange().text;
}
return text;
}

Zweite JavaScript-Funktion

Als nächstes müssen wir einen Eventhandler registrieren, der beim Kopieren des Textes in die Zwischenablage Daten in den dataLayer schreibt. Dazu kommt das Copy-Event zum Einsatz, wo Daniel Carlbom schon eine fertige Funktion zur Verfügung stellt:

document.addEventListener('copy', function(e){
dataLayer.push({
'event': 'textCopied',
'clipboardText': getSelectionText(),
'clipboardLength': getSelectionText().length
});
});

Neben dem Event werden hier noch der markierte Text sowie die Länge des kopierten Textes in den dataLayer gepusht.

Benutzerdefiniertes HTML-Tag

Nun geht es in den Google Tag Manager. Die zwei JavaScript-Funktionen von oben packen wir in ein benutzerdefiniertes HTML-Tag:

Listener für Strg+C Tracking

Variablen und Trigger im Google Tag Manager

Nun brauchen wir 2 Variablen und ein Custom Event (siehe dataLayer.push):

  • Eine Datenschichtvariable mit dem Namen „clipboardText“
  • Eine Datenschichtvariable mit dem Namen „clipboardLength“ (falls diese Information genutzt werden soll)
  • Ein Custom Event mit dem Namen „textCopied“

Google Analytics Tag

Zum Schluss folgt noch das Google Analytics Tag vom Typ „Event“. Ich habe folgende Namen bei Kategorie, Aktion und Label vergeben. Diese können natürlich selbst frei bestimmt werden:

Strg+C Tag

Als Trigger weisen wir unser vorhin erstelltes Custom Event mit dem Namen „textCopied“ zu.

Fertig! Nicht vergessen, das Ganze auch intensiv zu testen.

Hinweise

  • Das Copy-Event wird nicht von allen Browsern unterstützt. Schau dir die Browser-Kompatibilität an.
  • Das Event reagiert auf die Tastatureingabe „Strg“ zusammen mit „C“. Heißt: Wenn Strg+C gedrückt wird ohne das ein Text markiert wurde, feuert das Event ebenfalls. Um zu verhindern, dass leere Eingaben an Google Analytics gesendet werden, sollte man eine Trigger-Ausnahme hinzufügen, die ein leeres getSelectionText() nicht feuert.

Last modified: 3. Mai 2019