Skip to content

Instantly share code, notes, and snippets.

@mbaersch
Last active June 9, 2022 10:13
Show Gist options
  • Save mbaersch/b3ee3288babc41d7c207473fb4397233 to your computer and use it in GitHub Desktop.
Save mbaersch/b3ee3288babc41d7c207473fb4397233 to your computer and use it in GitHub Desktop.
Lesezeit eines Blogbeitrags für GTM
function() {
//Hauptelement eines Blog-Contents selektieren
var txt = document.querySelector('#cmain').innerText;
var lng = txt.split(" ").length;
var l = lng / 300;
//300 Worte / Minute Lesezeit oder mindestens 30 Sekunden zurückgeben
lng = (lng == 0) ? 30 : l * 60;
return Math.round(lng * 1000);
}
@mbaersch
Copy link
Author

mbaersch commented Mar 30, 2019

Verwendung

Kann in Form einer benutzerdefinierten JavaScript-Variable im Google Tag Manager als dynamische Auslösezeit ("Timer; Variable als Intervall, Limit 1") eines Timer-Triggers verwendet werden, der per URL-Bedingung nur bei Blogbeiträgen feuert. Siehe hierzu auch die Hinweise im Blog.

Dieser kann genutzt werden, um z. B. allein oder in Zusammenhang mit anderen Triggern wie der Elementsichtbarkeit des Blog-Footers in einer Triggergruppe zusammengefasst ein Engagement-Event an Analytics zu senden.

Tipp
Wenn die ermittelte Lesezeit im Blog ausgegeben werden soll, dann kann dies vor der letzten Zeile mit dem "return" nachgepflegt werden.
Hier wird z. B. ein Absatz der Klasse "date" zur Ausgabe des Datums oberhalb der Überschrift verwendet. Da diese Variable mehrfach berechnet wird, sollte die Ergänzung bedingt nur einmalig dann passieren, wenn noch keine Lesezeit hinzugefügt wurde.

var dt = document.querySelector('p.date');
if (dt && dt.innerHTML.indexOf('Lesezeit') <0) {
var lr = Math.round(l);
if (lr < 1)
dt.innerHTML += " (Lesezeit: < 1 Minute)";
else if (lr == 1)
dt.innerHTML += " (Lesezeit: ca. 1 Minute)";
else
dt.innerHTML += " (Lesezeit: ca. "+lr+" Minuten)";
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment