Damit Google Analytics ermitteln kann, dass zwei verschiedene Treffer demselben Nutzer angehören, muss jedem Treffer eine eindeutige Kennung zugeordnet werden.
In der analytics.js-Bibliothek wird dies über das Feld Client-ID erreicht, ein eindeutiger, zufällig generierter String, der in den Browser-Cookies gespeichert wird. So können nachfolgende Besuche derselben Website demselben Nutzer zugeordnet werden.
Standardmäßig wird in analytics.js ein einzelnes eigenes Cookie mit dem Namen _ga
verwendet, um die Client-ID zu speichern. Sie können jedoch den Namen, die Domain und die Ablaufzeit des Cookies anpassen. Weitere von analytics.js erstellte Cookies sind _gid
, AMP_TOKEN
und _gac_<property-id>
. Diese Cookies speichern andere zufällig generierte IDs und Kampagneninformationen über den Nutzer.
Mithilfe von Cookies kann analytics.js einzelne Nutzer unabhängig von Browsersitzungen identifizieren, jedoch nicht über verschiedene Browser oder Geräte hinweg. Wenn deine Website ein eigenes Authentifizierungssystem hat, kannst du zusätzlich zur Client-ID auch die User-ID-Funktion verwenden, um Nutzer auf allen Geräten, mit denen sie auf deine Website zugreifen, genauer zu identifizieren.
In diesem Leitfaden wird erläutert, wie die Cookie-Einstellungen angepasst und das User-ID-Feld so festgelegt wird, dass die Nutzeraktivitäten sitzungsübergreifend präzise erfasst werden.
Cookie-Feldeinstellungen konfigurieren
In der folgenden Tabelle sehen Sie die Cookie-Standardfeldwerte für analytics.js:
Feldname | Werttyp | Standardwert |
---|---|---|
cookieName |
Text | _ga |
cookieDomain |
Text |
Das Ergebnis des folgenden JavaScript-Ausdrucks:document.location.hostname
|
cookieExpires |
integer | 63072000 (zwei Jahre in Sekunden) |
cookieUpdate |
boolean |
true
|
cookieFlags |
Text |
|
Wenn Sie einen dieser Werte ändern möchten, können Sie ihn in fieldObject
angeben und den Befehl create
übergeben. Beispiel:
ga('create', 'UA-XXXXX-Y', {
'cookieName': 'gaCookie',
'cookieDomain': 'blog.example.co.uk',
'cookieExpires': 60 * 60 * 24 * 28 // Time in seconds.
'cookieUpdate': 'false',
'cookieFlags': 'SameSite=None; Secure',
});
Das gängigste Cookie-Feld ist cookieDomain
, sodass der Befehl create
das Feld cookieDomain
als optionalen dritten Parameter akzeptiert:
ga('create', 'UA-XXXXX-Y', 'blog.example.co.uk');
Automatische Konfiguration der Cookie-Domain
Mit dem empfohlenen Google Analytics-Tag wird der String 'auto'
für das Feld cookieDomain
festgelegt:
ga('create', 'UA-XXXXX-Y', 'auto');
Wenn Sie 'auto'
als cookieDomain
festlegen, wird die automatische Cookie-Domain-Konfiguration aktiviert, wodurch analytics.js automatisch die beste Cookie-Domain ermittelt.
Mit der automatischen Cookie-Domain-Konfiguration wird das Cookie _ga
auf die höchste Domain gesetzt, die es zulässt. Lautet Ihre Websiteadresse beispielsweise blog.example.co.uk
, wird die Cookiedomain in analytics.js auf .example.co.uk
gesetzt. Wenn analytics.js erkennt, dass Sie einen Server lokal ausführen (z.B. localhost
), wird cookieDomain
automatisch auf 'none'
gesetzt.
Ablauf der Cookie-Gültigkeit
Jedes Mal, wenn ein Treffer an Google Analytics gesendet wird, entspricht die Ablaufzeit des Cookies der aktuellen Zeit plus dem Wert im Feld cookieExpires
. Wenn du also die Standardeinstellung cookieExpires
von zwei Jahren verwendest und ein Nutzer deine Website jeden Monat besucht, läuft sein Cookie nie ab.
Wenn du für die cookieExpires
-Zeit 0
(null) Sekunden festlegst, wird das Cookie zu einem sitzungsbasierten Cookie und läuft ab, sobald die aktuelle Browsersitzung endet:
Cookie-Update
Wenn cookieUpdate
auf true
gesetzt ist (der Standardwert), aktualisiert analytics.js Cookies bei jedem Seitenaufbau. Dadurch wird die Ablaufzeit von Cookies relativ zum letzten Besuch der Website festgelegt. Wenn die Ablaufzeit von Cookies beispielsweise auf eine Woche festgelegt ist und ein Nutzer die Website alle fünf Tage mit demselben Browser besucht, wird die Ablaufzeit von Cookies bei jedem Besuch aktualisiert. Sie läuft also praktisch nie ab.
Wenn false
festgelegt ist, werden Cookies nicht bei jedem Seitenaufbau aktualisiert. Dies hat zur Folge, dass der Ablauf des Cookies relativ zum ersten Besuch eines Nutzers auf der Website erfolgt.
Cookie-Flags
Wenn diese Option aktiviert ist, werden zusätzliche Flags an das Cookie angehängt. Flags müssen durch Semikolons getrennt sein.
Client-ID aus dem Cookie abrufen
Sie sollten nicht direkt auf die Cookie-Analysegruppen zugreifen, da sich das Cookieformat in Zukunft ändern kann. Stattdessen sollten Entwickler mit dem readyCallback
warten, bis analytics.js geladen ist, und dann den Wert clientId
im Tracker speichern.
ga(function(tracker) { var clientId = tracker.get('clientId'); });
Cookies deaktivieren
In einigen Fällen empfiehlt es sich, einen eigenen Speichermechanismus wie localStorage
oder einen Service Worker zu verwenden, um die Client-ID sitzungsübergreifend ohne Cookies beizubehalten. Sie können „analytics.js“ daran hindern, Cookies festzulegen. Setzen Sie dazu das Feld storage
auf 'none'
.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none' });
Wenn du das Feld clientId
selbst speicherst, musst du beim Erstellen des Trackers das Feld cliendId
festlegen.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none', 'clientId': '76c24efd-ec42-492a-92df-c62cfd4540a3' });
Wenn Sie die _gac_<property-id>
-Cookies deaktivieren möchten, legen Sie im create
-Befehl das Feld storeGac
auf false
fest:
ga('create', 'UA-XXXXX-Y', {
storeGac: false,
});
Client-ID mit localStorage speichern
Im folgenden Codebeispiel sehen Sie, wie Sie das JavaScript-Tag so ändern können, dass localStorage
statt der Cookies die Client-ID speichert:
var GA_LOCAL_STORAGE_KEY = 'ga:clientId';
if (window.localStorage) {
ga('create', 'UA-XXXXX-Y', {
'storage': 'none',
'clientId': localStorage.getItem(GA_LOCAL_STORAGE_KEY)
});
ga(function(tracker) {
localStorage.setItem(GA_LOCAL_STORAGE_KEY, tracker.get('clientId'));
});
}
else {
ga('create', 'UA-XXXXX-Y', 'auto');
}
ga('send', 'pageview');
oder User-ID
Mit der User-ID können Sie Sitzungsgruppen geräteübergreifend analysieren. Hierbei wird ein eindeutiger, dauerhafter und nicht personenidentifizierbarer ID-String für einen Nutzer verwendet. Warum Sie die User-ID implementieren sollten, erfahren Sie unter Vorteile der User-ID-Funktion.
So implementieren Sie die User-ID mit analytics.js:
- Geben Sie für jeden angemeldeten Nutzer Ihre eigene, dauerhafte und nicht personenidentifizierbare String-ID an. Diese ID wird meistens von einem Authentifizierungssystem bereitgestellt.
- Lege die User-ID für den Tracker fest:
ga('create', 'UA-XXXXX-Y', 'auto', { userId: USER_ID }); ga('send', 'pageview');
Authentifizierung nach dem Seitenaufbau
Wenn Sie Single-Page-Anwendungen oder andere dynamische Websites erstellen, die die Nutzeranmeldung nach dem ersten Seitenaufbau verarbeiten, kann der Wert für die User-ID beim Tracker beim Erstellen nicht festgelegt werden.
In solchen Fällen können Sie den Wert set
verwenden, um den Wert auf dem Tracker festzulegen, sobald er bekannt ist.
// Creates the tracker and sends a pageview as normal // since the `userId` value is not yet known. ga('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview'); // At a later time, once the `userId` value is known, // sets the value on the tracker. ga('set', 'userId', USER_ID); // Setting the userId doesn't send data to Google Analytics. // You must also use a pageview or event to send the data. ga('send', 'event', 'authentication', 'user-id available');
Bei diesem Ansatz enthalten Treffer, die gesendet werden, bevor das Feld userId
festgelegt ist, keine User-ID-Werte. Über einen Prozess namens Sitzungsergänzung kann Google Analytics diese Treffer jedoch bei der Verarbeitung dem richtigen Nutzer zuordnen.