Skip to content

Instantly share code, notes, and snippets.

View mbaersch's full-sized avatar

Markus Baersch mbaersch

View GitHub Profile
@mbaersch
mbaersch / demo-iframe-messages.md
Last active May 8, 2024 13:42
Cross Domain Messages Demo Pages

DEMO: Messages für iFrame Vermessung

Einfache Demo zur Nutzung von Messages für die Kommunikation zwischen einem iFrame ("Frame Seite") und der beinhaltenden Seite ("Hauptseite") zum Zweck des zustimmungskonformen Trackings aus dem Kontext der Hauptseite heraus.

Mit dieser Methode ist es...

  • unnötig, einen Consent Dialog oder direktes Tracking innerhalb der Frame Seite zu betreiben
  • möglich, die Nachrichten der Frame Seite in der Hauptseite zu verarbeiten oder zu ignorieren, je nach Consent-Lage
  • technisch irrelevant, ob der iFrame eine Frame Seite der eigenen oder einer fremden Domain ausspielt. Solange CSP und Zustimmung das Laden der Inhalte im iFrame nicht verhindern, kann so ein Tracking ohne weitere technische Mittel nur über die Hauptseite implementiert werden
@mbaersch
mbaersch / fakecentrics.html
Last active April 24, 2024 19:22
Fakecentrics - Custom HTML Tag Code for Google Tag Manager: Dummy Consent Dialog for Testing Purposes
<script>
/**
* Fakecentrics - Shakespeare Edition
* ===================================
* creates a simple fake consent dialog to accept or decline
* all services defined in a "consentKeys" array.
* pushes consent to dataLayer in a Usercentrics-like format.
*
* @version 1.0.4
* @author Markus Baersch <mail@markus-baersch.de>
@mbaersch
mbaersch / logger-client-example.js
Last active August 28, 2023 23:28
PHP Helper für serverseitiges und / oder cookieloses Tracking mit Google Analytics
//Einfaches Beispiel der Nutzung des serverseitigen Loggers im Client - also der entsprechende "Trackingcode":
function doLog(tp, pr) {
tp = tp.toLowerCase();
if (!pr) pr = "";
var rf = document.referrer;
var params = "?ht=" + tp;
if (rf) params += "&rf=" + encodeURI(rf);
if (pr!="") params += "&in=" + encodeURI(pr);
var img = new Image();
img.style.left = "-5000px";
@mbaersch
mbaersch / bot-detection-variable-gtm.js
Last active August 21, 2023 10:33
JavaScript Variable für Google Tag Manager zur Ermittlung eines Bot Markers (zur Verwendung als Benutzerdefinierte Dimension)
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 / gacode-example-gtag-js.html
Last active January 17, 2023 07:03
Write Google Analytics Client ID to localStorage
<!--
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 / walker2bigquery_tag_template.tpl
Last active December 15, 2022 18:07
preview of ssGTM tag template for walker.js events
/* Template moved to final repo.
* @see https://github.com/elbwalker/sgtm-tag-bigquery
*/
@mbaersch
mbaersch / getclient.php
Last active November 21, 2022 22:49
Codebeispiele zu "cookielosem" Tracking mit Google Analytics
<?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 / full_size_gtm.user.js
Created September 22, 2022 10:01
Tampermonkey Script for adjusting GTM user interface to full size use
// ==UserScript==
// @name Full Size GTM
// @namespace http://tampermonkey.net/
// @version 0.1
// @description adjust GTM user interface to full size use
// @author MBSL
// @match https://tagmanager.google.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=google.com
// @grant none
// ==/UserScript==
@mbaersch
mbaersch / enhance_ga4_event_builder.js
Last active September 6, 2022 00:21
Tampermonkey script to add a new section to the GA4 Event Builder for sending payloads to a custom endpoint
// ==UserScript==
// @name Enhance GA4 Event Builder
// @namespace http://tampermonkey.net/
// @version 0.2
// @description add option to send payload to a custom endpoint instead of google-analytics.com
// @author Markus Baersch
// @match https://ga-dev-tools.web.app/ga4/event-builder/
// @grant none
// ==/UserScript==
@mbaersch
mbaersch / kill_ga4_announcement.user.js
Last active August 27, 2022 09:49
Tampermonkey Script: hide annoying announcement for GA4 in Universal Analytics UI
// ==UserScript==
// @name Kill GA4 Announcement
// @namespace http://tampermonkey.net/
// @version 0.4
// @description hide annoying announcement for GA4 in Universal Analytics UI (or any other)
// @author MBSL
// @match https://analytics.google.com/analytics/web/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=google.com
// @grant none
// ==/UserScript==