Senden von Adobe Client-Datenschichtdaten mit der Web-SDK
Die Adobe Client-Datenschicht (ACDL) erfasst Daten und Ereignisse auf der Seite, sendet sie jedoch nicht an eine beliebige Stelle. Um sie an die Adobe Experience Platform Edge Network zu senden, verbinden Sie ACDL-Ereignisse mit der Web-SDK auf eine der folgenden Arten:
- JavaScript-Bibliothek: Ihr eigener Code überwacht ACDL-Ereignisse und ruft den Web SDK-
sendEventauf. - Tag-Erweiterungen: Tag-Regeln verwenden die ACDL-Erweiterung um Trigger über ACDL-Ereignisse und die Web SDK-Erweiterung zu senden.
In jedem Abschnitt dieser Seite werden beide Ansätze angezeigt.
Voraussetzungen prerequisites
Ihr Website-Code überträgt die Daten und Ereignisse, die Sie senden möchten. Die Beispiele auf dieser Seite verwenden für jede Seitenansicht den folgenden Push:
window.adobeDataLayer = window.adobeDataLayer || [];
window.adobeDataLayer.push({
event: "page view",
page: { title: "Home", language: "en" }
});
Je nach Ansatz benötigen Sie außerdem Folgendes:
- ACDL auf Seiten installiert.
- Die Web-SDK Basiscode und -) werden installiert, und die Web-SDK wird konfiguriert mit einem Datenstrom.
Der Web SDK-Basis-Code stellt Befehle in die Warteschlange, bis die Bibliothek geladen wird, und ACDL stellt Elemente in die Warteschlange, bis die Bibliothek geladen wird. Aufgrund dieser Warteschlangen können Sie den Code auf dieser Seite an einer beliebigen Stelle nach dem SDK-Basis-Code von Web hinzufügen, unabhängig davon, welche Bibliothek zuerst geladen wird.
- Die ACDL-Erweiterung ist installiert und konfiguriert in Ihrer Tag-Eigenschaft.
- Die Web SDK-Erweiterung installiert und mit einem Datenstrom) .
Zuordnen Ihrer Daten auswählen mapping
Web SDK sendet Daten in zwei Objekten. Eine oder beide Optionen auswählen:
Quelle der Werte auswählen value-sources
Wenn ein ACDL-Ereignis Ihren Trigger oder Ihre Regel beschädigt, können Sie Datenschichtwerte an zwei Stellen lesen:
event.page.title, wobei event das Argument des Listeners ist%event.message.page.title%adobeDataLayer.getState("page.title")page.titleVerwenden Sie das gepushte Objekt für Werte, die das Ereignis selbst beschreiben, z. B. das Produkt in einem Zusatz zum Warenkorb. Verwenden Sie den berechneten Status für Werte, die zuvor gepusht wurden, z. B. Benutzerdetails. Wenn der Code oder die Regel ausgeführt wird, enthält der berechnete Status bereits die Daten der Push-Benachrichtigung, die ihn ausgelöst hat. Siehe Was Listener erhalten und Verwenden der gepushten Daten in Regeln.
Senden von XDM-Daten xdm
Die folgenden Beispiele senden eine Seitenansicht mit dem Seitentitel aus dem gepushten Objekt.
Überwachen Sie das Ereignis und rufen Sie sendEvent auf:
| code language-js |
|---|
|
Informationen zu allen Listenoptionen finden Sie unter addEventListener().
-
Erstellen Sie ein Variable-Datenelement mit der Web SDK-Erweiterung. Wählen Sie XDM und dann Ihre Sandbox und Ihr Schema aus. In diesem Beispiel wird das Datenelement
XDM variablebenannt. -
Erstellen Sie eine Regel und fügen Sie ein Ereignis hinzu:
- Erweiterung: Adobe Client-Datenschicht
- Ereignistyp: Datenschicht-Push
- Trigger ein: Spezifische benannte Ereignisse mit dem Ereignisnamen
page view - Zeitraum: Alle
-
Hinzufügen einer Aktion, die das XDM-Objekt ausfüllt:
- Erweiterung: Adobe Experience Platform Web SDK
- Aktionstyp: Variable aktualisieren
- Datenelement:
XDM variable - Legen Sie
web.webPageDetails.nameauf%event.message.page.title%undweb.webPageDetails.pageViews.valueauf1fest.
-
Fügen Sie eine Aktion hinzu, die das Ereignis sendet:
- Erweiterung: Adobe Experience Platform Web SDK
- Aktionstyp: Ereignis senden
- Typ:
web.webpagedetails.pageViews - XDM:
%XDM variable%
-
Speichern Sie die Regel, fügen Sie sie zu einer Bibliothek hinzu und erstellen Sie die Bibliothek.
Alle Ereignisoptionen finden Sie unter Datenschicht-Push.
Jedes Mal, wenn Ihre Site ein page view sendet, sendet der Code oder die Regel eine Seitenansicht an die Edge Network.
Senden Sie Interaktionen auf die gleiche Weise. Zum Beispiel für eine Push-Benachrichtigung wie { event: "cart add", eventInfo: { sku: "HT105" } }, lauschen Sie auf oder Trigger auf cart add und lesen Sie das Produkt aus eventInfo. Die XDM-Felder, die Commerce-Interaktionen beschreiben, finden Sie unter Erfassen von Commerce-, Produkt- und Bestellinformationen.
Senden der Datenschicht für die Zuordnung im Datenstrom data
Um die Zuordnung im Datenstrom anstatt im Code oder in Regeln vorzunehmen, senden Sie Datenschichtwerte im data Objekt und schließen Sie ein XDM-eventType ein, damit das Ereignis korrekt klassifiziert wird.
| code language-js |
|---|
|
Innerhalb eines ACDL-Listeners bezieht sich this auf die Datenschicht, sodass this.getState() den berechneten Status zurückgibt. Um nur einen Teil davon zu senden, übergeben Sie einen Pfad wie this.getState("page").
-
Erstellen Sie Datenelement „Datenschicht - Berechneter Status mit der ACDL-Erweiterung. Wählen Sie Gesamter berechneter Status oder wählen Sie Spezifischer Pfad und geben Sie den Pfad der Daten ein, die Sie senden möchten. In diesem Beispiel wird das Datenelement
ACDL statebenannt. -
Erstellen Sie eine Regel mit demselben Datenschicht-Push-Ereignis wie in XDM-Daten senden.
-
Fügen Sie eine Ereignis senden Aktion aus der Web-SDK-Erweiterung hinzu:
- Typ:
web.webpagedetails.pageViews - data:
%ACDL state%
- Typ:
-
Speichern Sie die Regel, fügen Sie sie zu einer Bibliothek hinzu und erstellen Sie die Bibliothek.
Ordnen Sie dann in Ihrem Datenstrom die Felder zu, die Sie an Ihr XDM-Schema senden. Siehe Datenvorbereitung für die Datenerfassung. Daten, die Sie nicht zuordnen und die kein konfigurierter Service liest, werden nicht gespeichert. Durch das Senden des gesamten berechneten Status wird auch die Größe jeder Anfrage erhöht. Auf Seiten mit einer großen Datenschicht senden Sie also nur die Teile, die Sie zuordnen.
Single Page Applications spa
In einer Einzelseitenanwendung bleibt die Seite geöffnet, während der Besucher viele virtuelle Seiten aufruft, und die Datenschicht Verlauf wächst weiter. Pushen Sie für jede virtuelle Seitenansicht ein page view Ereignis und löschen Sie den Verlauf, nachdem Sie ihn gesendet haben. Durch Löschen des Verlaufs ändert sich der berechnete Status nicht und es werden auch keine Listener und Regeln entfernt.
Löschen Sie den Verlauf am Ende des Seitenansichts-Listeners:
| code language-js |
|---|
|
Siehe Verlauf löschen.
Timing und Duplikate timing
Befolgen Sie diese Best Practices, damit jedes Ereignis genau einmal gesendet wird:
- Verwenden Sie den
all. Dies ist die Standardeinstellung in beiden Ansätzen: diescope-Option in JavaScript und die Einstellung Zeitbereich in Tags. Sie sendet Ereignisse, die gepusht wurden, bevor Ihr Listener oder Ihre Regel mit dem Lauschen begonnen hat, z. B. eine Seitenansicht, die gepusht wurde, bevor Ihr Skript oder Ihre Tag-Bibliothek geladen wurde. Verwenden Siefuturenur, wenn bereits ein anderer Teil Ihrer Implementierung die früheren Ereignisse gesendet hat. Siehe Umfang. - Senden Sie jedes Ereignis von einem Ort. Wenn sowohl Ihr eigener Code als auch eine Tag-Regel dasselbe Datenschichtereignis senden, erhält Adobe es zweimal.
- JavaScript-Bibliothek: Verwenden Sie benannte Funktionen und fügen Sie jeden Listener einmal hinzu. ACDL ignoriert eine zweite Registrierung derselben Funktion für dasselbe Ereignis. Wenn jedoch Code, der wiederholt ausgeführt wird, jedes Mal eine neue anonyme Funktion übergibt, fügt ACDL jedes Mal einen neuen Listener hinzu, und jedes Ereignis wird mehr als einmal gesendet.
- Tag-Erweiterungen: Trigger bei bestimmten Ereignisnamen. Eine Regel, die Trigger bei Alle Datenänderungen für jeden Daten-Push ausführen, wodurch viel mehr Ereignisse als erwartet gesendet werden können.
Verwandte Seiten related
sendEventBefehl und Ereignis senden Aktion: Alle Web SDK-Optionen zum Senden von Ereignissen.addEventListener()und Datenschicht-Push: Alle Optionen zum Überwachen von ACDL-Ereignissen.