Skip to content

Instantly share code, notes, and snippets.

Markus Baersch mbaersch

View GitHub Profile
@mbaersch
mbaersch / functions.php
Created Mar 25, 2020
send serverside conversions from a Wordpress shop (e. g. wooCommerce) to Google Analytics
View functions.php
<?php
// add one of the two following options to the functions.php of your child theme in order to send server side
// conversion data to Google Analytics
// NOTE: function store_gclid() is used by both variants
/***************************************************************************************************/
// send conversion to Analytics - Option 1: track success page as only pageview in the session and
// create a goal for path "/conversion/"
// adjust goal path (fragment) in $goalurl in order to fit your url structure
// comment out line below to deactivate
@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 Dec 6, 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 Feb 13, 2020
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 / honeypot.js
Created Jul 25, 2019
Honeypot-URL in Menü hinzufügen
View honeypot.js
function addHpLi(callback){
if (document.readyState!='loading') callback();
else if (document.addEventListener) document.addEventListener('DOMContentLoaded', callback);
else document.attachEvent('onreadystatechange', function(){
if (document.readyState=='complete') callback();
});
}
addHpLi(function(){
//Hier den Selektor für das eigene Hauptmenu oder ein Untermenu angeben, damit dort ein Eintrag hinzugefügt werden kann.
@mbaersch
mbaersch / bot-detection-variable-gtm.js
Last active Jun 14, 2020
JavaScript Variable für Google Tag Manager zur Ermittlung eines Bot Markers (zur Verwendung als Benutzerdefinierte Dimension)
View bot-detection-variable-gtm.js
function(){
//----------------------------------------------------------------
// Erkennung von Crawlern anhand User-Agent oder Feature-Detection
//----------------------------------------------------------------
//Soll ein einmal bestandender Test innerhalb der Session reichen? Dann hier einschalten
var cache2Session = true;
// --- Ende Setup ---
@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 / microconversion-impact.R
Last active Nov 19, 2019
Gewichtung von Mikrozielen für Engagement-Scoring in Analytics mit Random Forest in RStudio bestimmen
View microconversion-impact.R
#-------------------------------------------------------------------------------------------------------
# Abhängigkeit zwischen Transaktionen / Makrozielen und Mikro-Zielerreichungen untersuchen
#-------------------------------------------------------------------------------------------------------
#VORBEREITUNG (einmalig): Installation der Pakete, wenn nicht bereits installiert
#Im Bedarfsfall hier das Kommentarzeichen "#" vor den beiden folgenden Zeilen entfernen und
#diese ebenfallsausführen
#install.packages("googleAnalyticsR")
#install.packages("h2o")
@mbaersch
mbaersch / callback-example.js
Last active May 19, 2020
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
*/
You can’t perform that action at this time.