Skip to content

Instantly share code, notes, and snippets.

Markus Baersch mbaersch

Block or report user

Report or block mbaersch

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@mbaersch
mbaersch / getclient.php
Last active Oct 14, 2019
Codebeispiele zu "cookielosem" Tracking mit Google Analytics
View getclient.php
<?php
//Einfachster Fall: Es existiert schon eine Session, weil das System sie braucht. Dann reicht statt der folgenden Zeile ein einfaches
//session_start();
//Im anderen Fall steuern wir diue Optionen des Session Cookies selbst und können wahlweise
//"All In" gehen, wenn es um Schutz des Cookies vor ITP oder Lesen des Werts im Browser geht:
session_start(['cookie_secure' => true, 'cookie_httponly' => true, 'cookie_samesite' => true]);
//Rückgabe der Session Id. Das war tatsächlich schon alles
echo session_id();
@mbaersch
mbaersch / logger-client-example.js
Last active Oct 14, 2019
PHP Helper für serverseitiges und / oder cookieloses Tracking mit Google Analytics
View logger-client-example.js
//Einfaches Beispiel der Nutzung des serverseitigen Loggers im Client - also der entsprechende "Trackingcode":
function doLog(tp, pr) {
tp = tp.toLowerCase();
if (!pr) pr = "";
var params = "?ht=" + tp + "&amp;rf=" + encodeURI(document.referrer);
params += "&amp;in=" + encodeURI(pr);
var img = new Image();
img.src = '/logger.php'+params;
document.querySelector('body').appendChild(img);
}
@mbaersch
mbaersch / secure_ga_cookie.php
Last active Oct 14, 2019
raw code for handling Google Analytics clientId in a separate secure https cookie and writing it to the dataLayer to be used by ga tracking tags
View secure_ga_cookie.php
View setSourceCookie.js
/* Ermittelt die Quelle eines Besuchers und speichert diese in einem Session-Cookie "gmsSource" für die laufende Sitzung.
Wenn es die erste Sitzung ist (erkannt anhand des eigenen Cookies), wird der Wert als ursprüngliche Trafficquelle
zusätzlich dauerhaft (inkl. aller Probleme mit ITP & Co. für maximal 6 Monate) in einem weiteren
Cookie "gmsOrgSource" gespeichert.
Wird eine ursprüngliche Quelle im Fall einer ersten Sitzung gespeichert, liefert die Funktion die Quelle
als Rückgabewert zurück.
Nutzung: z. B. als verstecktes Feld in Kontaktformularen zur Dokumentation der Besucherquelle. Auch die
Speicherung in einer Benutzerdefinierten Dimension auf User-Ebene in Google Analytics ist damit möglich.
@mbaersch
mbaersch / readingtime.js
Last active Mar 30, 2019
Lesezeit eines Blogbeitrags für GTM
View readingtime.js
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
mbaersch / callback-example.js
Last active Jul 19, 2019
Upgrade Your Analytics Cookies to fight ITP2.1:
View callback-example.js
/* GTM : use the following code inside a customTask, hitCallback oder a cleanup tag
GA.JS : modify your existing tracking code with a customTask or hitCallback and execute the following code
GTAG.JS : modify your existing tracking code with a manual page_view event
including an event_callback (gtag.js) and execute the following code
customTask ga.js - see: https://developers.google.com/analytics/devguides/collection/analyticsjs/tasks#adding_to_a_task
hitCallback ga.js - see: https://developers.google.com/analytics/devguides/collection/analyticsjs/sending-hits#hitcallback
event_callback gtag.js - see: https://developers.google.com/analytics/devguides/collection/gtagjs/sending-data#implement_event_callback_functions
*/
@mbaersch
mbaersch / gacode-example-gtag-js.html
Last active Sep 24, 2019
Write Google Analytics Client ID to localStorage
View gacode-example-gtag-js.html
<!--
Replace existing standard gtag.js tracking-code with this
snippet in order to store the Client ID in localStorage and use this ID when present
converted for direct code implementation from Simo Ahava´s solution for GTM; see
https://www.simoahava.com/analytics/use-localstorage-client-id-persistence-google-analytics/
for details
Client IDs will survive deletion of cookies by user or ITP 2.1
@mbaersch
mbaersch / getTextLength.js
Created Aug 13, 2018
Textlänge in GTM als Benutzerdefinierte JavaScript Variable erfassen
View getTextLength.js
function() {
//statt #content für einen Hauptcontainer mit der Id "content" einen CSS Selektor des Hauptinhaltselements
//als Id oder (eindeutige) Klasse eintragen. Sonst zur Not einfach 'body' angeben...
var txt = document.querySelector('#content').textContent;
//Worte zählen
var lng = txt.split(" ").length;
//Auf je 500 Worte in Klassen bis maximal 5000 aufteilen, alles unter 251 kommt in die Klasse 250
lng = Math.max(250, Math.min(Math.round(lng/500)*500, 5000));
return lng + " Worte";
}
@mbaersch
mbaersch / exitIntent.js
Last active Nov 30, 2018
Exit Intent mit Google Analytics messen
View exitIntent.js
<script>
function addEvent(obj, evt, fn) {
if (obj.addEventListener) {
obj.addEventListener(evt, fn, false);
} else if (obj.attachEvent) {
obj.attachEvent("on" + evt, fn);
}
}
// Exit intent trigger
@mbaersch
mbaersch / SerpBounceTracking.js
Last active Aug 2, 2018
SERP Bounce Tracker: Custom HTML Tag
View SerpBounceTracking.js
<script>
(function() {
if (window.history) {
var s = document.location.search;
var h = document.location.hash;
var e = {{Event}};
var n = {{New History Fragment}};
var o = {{Old History Fragment}};
if (e === 'gtm.js' &&
document.referrer.indexOf('www.google.') > -1 &&
You can’t perform that action at this time.