Domainübergreifende Web-SDK-Nutzer:innen über die Geräte-ID verknüpfen
Übergeben Sie die Geräte-ID des Braze Web SDK über die Ziel-URL, wenn zwei Domains keine Cookies teilen können, damit anonyme Sitzungen auf beiden Websites demselben Braze-Kundenprofil zugeordnet werden.
Über dieses Beispiel
Kitchenerie, ein fiktiver Einzelhändler für Küchenartikel, betreibt eine Marketing-Website (kitchenerie.com) und einen Shop (kitchenerie.shop). Jede Domain hat eine eigene Braze Web SDK-Integration. Browser-Cookies werden nicht domainübergreifend geteilt, sodass Braze separate Geräte-IDs – und separate anonyme Profile – zuweist, wenn dieselbe Person von der Marketing-Website zum Shop wechselt.
Dieses Muster:
- Liest die Geräte-ID auf der Quell-Domain mit
getDeviceIdnach der SDK-Initialisierung aus - Hängt sie als Query-Parameter an ausgehende Links an (zum Beispiel
brazeDeviceId) - Liest auf der Ziel-Domain diesen Parameter aus und übergibt ihn über die Option
deviceIdanbraze.initialize
Die Übergabe ist vor allem für anonyme Nutzer:innen relevant. Nachdem sich die Person im Shop anmeldet, wird changeUser mit einer external_id zum dauerhaften Bezeichner über Geräte hinweg. Siehe Nutzer-IDs festlegen.
Beide Domains sollten denselben Braze-Workspace-API-Schlüssel und SDK-Endpunkt verwenden, damit Ereignisse in einem Profil landen.
Überlegungen
- Die Geräte-ID ist browserspezifisch. Dieses Muster verknüpft keine Aktivitäten über verschiedene Browser, Geräte oder Profile hinweg. Verwenden Sie
external_idüberchangeUserfür authentifizierte, geräteübergreifende Identität. - Rufen Sie die Geräte-ID erst ab, nachdem das Web SDK auf der Quell-Domain initialisiert wurde. Ein Aufruf von
getDeviceIdvorinitializegibt keinen Wert zurück. - Das Web SDK liest
deviceIdeinmalig beiinitialize. Es gibt kein nachträglichessetDeviceId, das die aktive Geräte-ID ändert. Lesen Sie den URL-Parameter auf der Ziel-Domain aus, bevor Sieinitializeaufrufen. - Direktbesuche, Lesezeichen oder Verweise von Drittanbietern auf den Shop ohne
brazeDeviceIdsollten auf die standardmäßige Geräte-ID-Zuweisung zurückfallen – das ist zu erwarten, wenn keine Quell-Domain-ID vorhanden ist. - Query-Parameter erscheinen im Browserverlauf und in Server-Logs.
- Query-Parameter können über Referrer-Header weitergegeben werden. Die Geräte-ID ist für sich genommen keine PII, aber entfernen Sie den Parameter nach der Verarbeitung, wenn Ihr Datenschutzteam dies verlangt (siehe Schritt 2).
- Testen Sie End-to-End. Bestätigen Sie mit der Netzwerkinspektion, dass Ereignisse von Domain 2 die erwartete Geräte-ID verwenden.
- Passen Sie Hostnamen, Link-Selektoren und Fehlerbehandlung an Ihre Website an. Testen Sie in Ihrer Entwicklungsumgebung, bevor Sie in die Produktion gehen.
Einrichtung
Schritt 1: Geräte-ID an domainübergreifende Links auf der Quell-Domain anhängen
Initialisieren Sie auf kitchenerie.com (Domain 1) das Web SDK wie gewohnt und hängen Sie dann die aktuelle Geräte-ID an Links an, die auf kitchenerie.shop (Domain 2) verweisen.
Wählen Sie einen Query-Parameter-Namen, der nicht mit Ihrer Website kollidiert (dieses Beispiel verwendet brazeDeviceId). Dieselbe Idee gilt für serverseitig gerenderte Links, clientseitige Navigation oder src-Werte von iframes, die Sie kontrollieren.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import * as braze from "@braze/web-sdk";
braze.initialize("YOUR-API-KEY-HERE", {
baseUrl: "YOUR-SDK-ENDPOINT-HERE",
});
braze.openSession();
const destinationHost = "kitchenerie.shop";
braze.getDeviceId(function (deviceId) {
if (!deviceId) {
return;
}
const links = document.querySelectorAll('a[href*="' + destinationHost + '"]');
links.forEach(function (link) {
try {
const url = new URL(link.href);
url.searchParams.set("brazeDeviceId", deviceId);
link.href = url.toString();
} catch (e) {
// Skip malformed hrefs (for example, javascript:, mailto:, or unparsable relative paths).
}
});
});
Wenn Ihre SDK-Version getDeviceId synchron bereitstellt (ohne Callback), rufen Sie es stattdessen nach der Initialisierung auf:
1
const deviceId = braze.getDeviceId();
Siehe Web SDK Repository-Leitfaden – Geräte-ID abrufen und Initialisierungsoptionen – deviceId.
Schritt 2: Geräte-ID auslesen und Web SDK auf der Ziel-Domain initialisieren
Lesen Sie auf kitchenerie.shop (Domain 2) brazeDeviceId aus dem Query-String aus, bevor Sie initialize aufrufen, und übergeben Sie den Wert in den Initialisierungsoptionen, wenn er vorhanden ist.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import * as braze from "@braze/web-sdk";
const urlParams = new URLSearchParams(window.location.search);
const passedDeviceId = urlParams.get("brazeDeviceId");
const initOptions = {
baseUrl: "YOUR-SDK-ENDPOINT-HERE",
};
if (passedDeviceId) {
initOptions.deviceId = passedDeviceId;
}
braze.initialize("YOUR-API-KEY-HERE", initOptions);
braze.openSession();
// Optional: remove the parameter from the visible URL after consumption.
if (passedDeviceId) {
const cleanUrl = new URL(window.location.href);
cleanUrl.searchParams.delete("brazeDeviceId");
window.history.replaceState({}, document.title, cleanUrl.toString());
}
Wenn sich die Person anmeldet, rufen Sie changeUser mit ihrer external_id auf, damit zukünftige Aktivitäten dem identifizierten Profil zugeordnet werden.
Schritt 3: Übergabe überprüfen
- Öffnen Sie Domain 1 in einem Browser, in dem Sie nicht angemeldet sind.
- Folgen Sie einem domainübergreifenden Link zu Domain 2.
- Bestätigen Sie im Netzwerk-Tab des Browsers, dass Domain 2 Ereignisse mit derselben Geräte-ID sendet, die Domain 1 verwendet hat.
- Wiederholen Sie den Vorgang mit einem Direktbesuch auf Domain 2 (ohne Query-Parameter) und bestätigen Sie, dass eine neue Geräte-ID zugewiesen wird.