Server-to-Server Tracking

Es ist möglich, neben einem clientseitigen Tracking auch ein serverseitiges Tracking zu implementieren und dieses über den Google Tag Manager steuern zu lassen. 
 Um ein First-Party-Tracking Server-to-Server zu ermöglichen, sollte eine Subdomain eingerichtet werden. Diese dient als Server Endpoint und ist notwendig, damit das HttpOnly -Cookie auf der Domain des Werbetreibenden gespeichert werden kann. 
 Um den Traffic nicht über die Google Cloud zu leiten, wird ein eigener Tracking-Server empfohlen. 
 Weitere Informationen zur manuellen Einrichtung findest du hier: 
 
 Leitfaden für die manuelle Einrichtung 
 Google Tag Manager – Server-side 
 Google for Developers 
 
 
 Funktionsweise 
 Für das serverseitige Tracking werden Informationen von der Website an den serverseitigen Container übergeben. Dieser kommuniziert anschließend mit einem sogenannten Client . 
 
 Übergabe der Daten an den serverseitigen Container durch gtag.js 
 1 <!-- Global site tag (gtag.js) - Google Analytics -->
 2
 3 <script async src="https://www.googletagmanager.com/gtag/js?id=MEASUREMENT_ID"></script>
 4
 5 <script>
 6 window.dataLayer = window.dataLayer || [];
 7
 8 function gtag() {
 9 dataLayer.push(arguments);
10 }
11
12 gtag('js', new Date());
13
14 gtag('config', 'MEASUREMENT_ID', {
15 transport_url: 'https://Ihresubdomain.de'
16 });
17
18 gtag('event', 'checkout', {
19 token: 'ordertoken',
20 campaign_id: 'campaign_id',
21 trigger_id: 'trigger_id',
22 basket: JSON.stringify([
23 {
24 article_number: 'article_number_1',
25 amount: 'article_amount_1',
26 price: '100.00',
27 productname: 'article_name_1',
28 category: 'article_category',
29 additional: {
30 "VARIABLE": "VALUE",
31 "VARIABLE2": "VALUE2"
32 }
33 },
34 {
35 article_number: 'article_number_2',
36 amount: 'article_amount_2',
37 price: '15.00',
38 productname: 'article_name_2',
39 category: 'article_category',
40 additional: {
41 "VARIABLE": "VALUE",
42 "VARIABLE2": "VALUE2"
43 }
44 },
45 {
46 article_number: 'article_number_N',
47 amount: 'article_amount_N',
48 price: '110.00',
49 productname: 'article_name_N',
50 category: 'article_category',
51 additional: {
52 "VARIABLE": "VALUE",
53 "VARIABLE2": "VALUE2"
54 }
55 }
56 ])
57 });
58 </script>
 
 Parameter 
 
 
 
 Parameter 
 Beschreibung 
 
 
 
 
 MEASUREMENT_ID 
 Muss durch die Google Analytics 4 oder Universal Analytics ID ersetzt werden. 
 
 
 transport_url 
 URL des Tagging-Servers (First-Party-Subdomain). 
 
 
 
 
 Hinweis: Alle Parameter im Beispiel müssen dynamisch befüllt werden. 
 
 
 Client im serverseitigen Container einrichten 
 Im nächsten Schritt wird ein Client im serverseitigen Container eingerichtet. Dieser verarbeitet die übergebenen Daten und erstellt das Event createPurchase , welches schließlich den serverseitigen Trackingcode aufruft. 
 Dies erfolgt über einen Basket-Tracking-Aufruf , der in einem Custom Tag hinterlegt wird. 
 
 Client einrichten 
 Im Server Container Account wird im Reiter Clients zusätzlich zum bereits vorhandenen GA4 Client ein Google Tag Manager: Web Container Client eingerichtet. 
 Innerhalb dieses Clients werden mehrere Tags und Trigger definiert. 
 Diese übernehmen folgende Aufgaben: 
 
 Setzen des notwendigen First-Party-Cookies 
 Verarbeitung der Trackinginformationen ( emid ) 
 Auslösen des eigentlichen Trackingaufrufs 
 
 
 Setzen des First-Party-Cookies 
 Sobald Daten an den Client des Server-Containers gesendet werden, kann anhand bestimmter Kriterien eine Aktion ausgelöst werden. 
 Relevant ist in diesem Fall die emid als Tracking-Parameter, der in der Regel via "&emid" übergeben wird. 
 Der übermittelte Wert muss im Rahmen der HTTP-Response als Cookie gespeichert werden. 
 Variable anlegen 
 Es wird zunächst eine Variable vom Typ URL angelegt. 
 Beispielsweise: 
 
 Name: emid Parameter 
 Komponententyp: Suchanfrage 
 Suchanfrageschlüssel: emid 
 
 
 Cookie setzen 
 Der Wert wird anschließend als HttpOnly -Cookie im First-Party-Kontext gespeichert. 
 Dies erfolgt über die setCookie -API. 
 const setCookie = require('setCookie');

setCookie('emid', '{{emid Parameter}}', {
 'max-age': 2592000,
 httpOnly: true,
 secure: true,
 samesite: 'none'
});
 
 Bedeutung der Einstellungen 
 
 
 
 Einstellung 
 Beschreibung 
 
 
 
 
 max-age 
 30 Tage in Sekunden 
 
 
 httpOnly 
 Verhindert das Auslesen des Cookies durch JavaScript 
 
 
 secure 
 Cookie wird ausschließlich über HTTPS übertragen 
 
 
 samesite: none 
 Erlaubt die Verwendung im Cross-Site-Kontext 
 
 
 
 Damit das Tag ausgeführt wird, wird ein entsprechender Page View Trigger verwendet. 
 
 Der eigentliche Trackingaufruf 
 Nachdem der Benutzer die Bestellung erfolgreich abgeschlossen hat, muss im Client ein weiteres Tag ausgeführt werden. 
 Dieses liest 
 
 die per gtag() in den dataLayer geschriebenen Daten, 
 sowie die emid aus dem zuvor gesetzten First-Party-Cookie 
 
 aus und übergibt diese an den serverseitigen Conversion-Aufruf. 
 
 Dokumentationshilfen zum serverseitigen Tagging 
 Weitere Informationen stellt Google in der offiziellen Dokumentation bereit:
 Google Tag Manager – Server-side