Skip to content

Instantly share code, notes, and snippets.

@mbaersch mbaersch/readingtime.js
Last active Mar 30, 2019

Embed
What would you like to do?
Lesezeit eines Blogbeitrags für GTM
function() {
//Hauptelement eines Blog-Contents selektieren
var txt = document.querySelector('#cmain').textContent;
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

This comment has been minimized.

Copy link
Owner Author

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
You can’t perform that action at this time.