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-sendEvent auf.
  • 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:

JavaScript-Bibliothek

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.

Tag-Erweiterungen

Zuordnen Ihrer Daten auswählen mapping

Web SDK sendet Daten in zwei Objekten. Eine oder beide Optionen auswählen:

Objekt
Funktionsweise der Zuordnung
Verwenden Sie sie, wenn
xdm
Sie erstellen ein -Objekt, das Ihrem XDM-Schema entspricht, aus Datenschichtwerten in Ihrem Code oder in einer Tag-Regel.
Sie möchten die vollständige Kontrolle über die Payload, oder Ihre Datenschicht ähnelt bereits Ihrem Schema.
data
Sie senden Datenschichtwerte so, wie sie sind. Sie ordnen sie XDM im Datenstrom mit "​ für die Datenerfassung“ ​.
Sie möchten die Zuordnungslogik aus Ihrem Seiten-Code und Ihren Tag-Regeln fernhalten, oder mehrere Sites nutzen gemeinsam eine gut verwaltete Datenschicht.

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:

Quelle
JavaScript-Bibliothek
Tag-Erweiterungen
Enthält
Das gepushte Objekt
event.page.title, wobei event das Argument des Listeners ist
%event.message.page.title%
Nur das Objekt, das das Ereignis ausgelöst hat.
Der berechnete Status
adobeDataLayer.getState("page.title")
Datenelement Datenschicht - berechneter Status mit dem Pfad page.title
Alle Daten wurden bisher bei jedem Push zusammengeführt.

Verwenden 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.

JavaScript-Bibliothek

Überwachen Sie das Ereignis und rufen Sie sendEvent auf:

code language-js
window.adobeDataLayer = window.adobeDataLayer || [];

function sendPageView(event) {
  alloy("sendEvent", {
    xdm: {
      eventType: "web.webpagedetails.pageViews",
      web: {
        webPageDetails: {
          name: event.page.title,
          pageViews: { value: 1 }
        }
      }
    }
  });
}

window.adobeDataLayer.push(function(dl) {
  dl.addEventListener("page view", sendPageView);
});

Informationen zu allen Listenoptionen finden Sie unter addEventListener().

Tag-Erweiterungen
  1. 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 variable benannt.

  2. 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
  3. 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.name auf %event.message.page.title% und web.webPageDetails.pageViews.value auf 1 fest.
  4. 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%
  5. 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.

JavaScript-Bibliothek
code language-js
function sendWithDataPrep(event) {
  alloy("sendEvent", {
    xdm: { eventType: "web.webpagedetails.pageViews" },
    data: this.getState()
  });
}

window.adobeDataLayer.push(function(dl) {
  dl.addEventListener("page view", sendWithDataPrep);
});

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").

Tag-Erweiterungen
  1. 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 state benannt.

  2. Erstellen Sie eine Regel mit demselben Datenschicht-Push-Ereignis wie in XDM-Daten senden.

  3. Fügen Sie eine Ereignis senden Aktion aus der Web-SDK-Erweiterung hinzu:

    • Typ: web.webpagedetails.pageViews
    • data: %ACDL state%
  4. 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.

JavaScript-Bibliothek

Löschen Sie den Verlauf am Ende des Seitenansichts-Listeners:

code language-js
function sendPageView(event) {
  alloy("sendEvent", { /* ... */ });
  this.length = 0;
}

Siehe Verlauf löschen.

Tag-Erweiterungen
Fügen Sie ​ letzte Aktion Ihrer Seitenansichtsregel eine Aktion ​Datenschichtverlauf löschen“ aus der ACDL-Erweiterung hinzu.

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: die scope-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 Sie future nur, 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.
recommendation-more-help
experience-platform-help-collection