Envoi de données de la couche de données client Adobe avec le SDK Web

La couche de données client (ACDL) Adobe collecte des données et des événements sur la page, mais elle ne les envoie nulle part. Pour les envoyer à Adobe Experience Platform Edge Network, connectez les événements ACDL au SDK Web de l’une des manières suivantes :

  • Bibliothèque JavaScript : votre propre code écoute les événements ACDL et appelle la commande Web SDK sendEvent.
  • Extensions de balise : les règles de balise utilisent l’extension ACDL pour se déclencher sur les événements ACDL et l’extension Web SDK pour envoyer les données.

Chaque section de cette page présente les deux approches.

Conditions préalables prerequisites

Le code de votre site envoie les données et les événements que vous souhaitez envoyer. Les exemples de cette page utilisent la notification push suivante pour chaque page vue :

window.adobeDataLayer = window.adobeDataLayer || [];
window.adobeDataLayer.push({
  event: "page view",
  page: { title: "Home", language: "en" }
});

En fonction de votre approche, vous avez également besoin des éléments suivants :

Bibliothèque JavaScript

Le code de base de Web SDK met les commandes en file d’attente jusqu’au chargement de sa bibliothèque et ACDL met les éléments en file d’attente jusqu’au chargement de sa bibliothèque. En raison de ces files d’attente, vous pouvez ajouter le code sur cette page n’importe où après le code de base de Web SDK, quelle que soit la bibliothèque chargée en premier.

Extensions de balises

Choisir comment mapper vos données mapping

Le SDK Web envoie les données dans deux objets. Choisissez l’une des options ou les deux :

Objet
Fonctionnement du mappage
Utilisez-le lorsque
xdm
Vous créez un objet qui correspond à votre schéma XDM à partir des valeurs de la couche de données, dans votre code ou dans une règle de balise.
Vous souhaitez un contrôle total sur la payload, ou votre couche de données ressemble déjà à votre schéma.
data
Vous envoyez des valeurs de couche de données telles quelles. Vous les mappez à XDM dans le flux de données avec Préparation des données pour la collecte de données.
Vous souhaitez que la logique de mappage reste en dehors de votre code de page et de vos règles de balises, ou plusieurs sites partagent une couche de données bien gérée.

Choisir l’origine des valeurs value-sources

Lorsqu’un événement ACDL déclenche votre code ou votre règle, vous pouvez lire les valeurs de couche de données à deux endroits :

Source
Bibliothèque JavaScript
Extensions des balises
Contient
L’objet poussé
event.page.title, où event est l’argument de l’écouteur
%event.message.page.title%
Uniquement l’objet qui a déclenché l’événement.
État calculé
adobeDataLayer.getState("page.title")
Un élément de données État calculé de la couche de données avec le chemin page.title
Toutes les données ont été fusionnées à partir de chaque notification push jusqu’à présent.

Utilisez l’objet push pour les valeurs qui décrivent l’événement lui-même, comme le produit dans un ajout au panier. Utilisez l’état calculé pour les valeurs qui ont été transmises précédemment, telles que les détails de l’utilisateur. Lorsque le code ou la règle s’exécute, l’état calculé inclut déjà les données de la notification push qui l’a déclenchée. Voir Ce que les écouteurs reçoivent et Utiliser les données transmises dans les règles.

Envoyer des données XDM xdm

Les exemples suivants envoient une page vue avec le titre de la page de l’objet poussé.

Bibliothèque JavaScript

Écoutez l’événement et appelez sendEvent :

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);
});

Pour toutes les options du listener, voir addEventListener().

Extensions de balises
  1. Créez un élément de données Variable avec l’extension Web SDK. Sélectionnez XDM, puis sélectionnez votre sandbox et votre schéma. Cet exemple nomme l’élément de données XDM variable.

  2. Créez une règle et ajoutez un événement :

    • Extension : Couche De Données Client Adobe
    • Type d’événement : Notification push de la couche de données
    • Déclencheurs sur : Événements nommés spécifiques, avec le nom d’événement page view
    • Portée temporelle : Tous
  3. Ajoutez une action qui renseigne l’objet XDM :

    • Extension : SDK web Adobe Experience Platform
    • Type d’action : Mettre à jour la variable
    • Élément de données : XDM variable
    • Définir web.webPageDetails.name sur %event.message.page.title% et définir web.webPageDetails.pageViews.value sur 1.
  4. Ajoutez une action qui envoie l’événement :

    • Extension : SDK web Adobe Experience Platform
    • Type d’action : Envoyer l’événement
    • Type: web.webpagedetails.pageViews
    • XDM : %XDM variable%
  5. Enregistrez la règle, ajoutez-la à une bibliothèque et créez la bibliothèque.

Pour toutes les options d’événement, consultez Notification push de la couche de données.

Chaque fois que votre site envoie un événement page view, le code ou la règle envoie une page vue à Edge Network.

Envoyez les interactions de la même manière. Par exemple, pour une notification push telle que { event: "cart add", eventInfo: { sku: "HT105" } }, écoutez ou déclenchez cart add et lisez le produit à partir de eventInfo. Pour les champs XDM qui décrivent les interactions commerciales, voir Collecter des informations sur le commerce, les produits et les commandes.

Envoyer la couche de données pour mappage dans le flux de données data

Pour mapper dans le flux de données plutôt que dans le code ou les règles, envoyez les valeurs de couche de données dans l’objet data et incluez un XDM eventType afin que l’événement soit classé correctement.

Bibliothèque JavaScript
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);
});

Dans un écouteur ACDL, this fait référence à la couche de données, de sorte que this.getState() renvoie l’état calculé. Pour n’en envoyer qu’une partie, transmettez un chemin, tel que this.getState("page").

Extensions de balises
  1. Créez un élément de données État calculé de la couche de données avec l’extension ACDL. Sélectionnez État calculé entier ou sélectionnez Chemin spécifique et saisissez le chemin des données à envoyer. Cet exemple nomme l’élément de données ACDL state.

  2. Créez une règle avec le même événement Push de couche de données que dans Envoyer des données XDM.

  3. Ajoutez une action Envoyer l’événement à partir de l’extension Web SDK :

    • Type: web.webpagedetails.pageViews
    • Données : %ACDL state%
  4. Enregistrez la règle, ajoutez-la à une bibliothèque et créez la bibliothèque.

Ensuite, dans votre flux de données, mappez les champs que vous envoyez à votre schéma XDM. Voir Préparation des données pour la collecte de données. Les données que vous ne mappez pas et qu’aucun service configuré ne lit ne sont pas stockées. L’envoi de l’ensemble de l’état calculé augmente également la taille de chaque requête. Par conséquent, sur les pages comportant une couche de données volumineuse, envoyez uniquement les parties que vous mappez.

Applications monopages spa

Dans une application d’une seule page, la page reste ouverte pendant que le visiteur consulte de nombreuses pages virtuelles, et la couche de données history ne cesse d’augmenter. Envoyez un événement page view pour chaque page vue virtuelle et effacez l’historique après l’avoir envoyée. L’effacement de l’historique ne modifie pas l’état calculé et ne supprime pas les écouteurs et les règles.

Bibliothèque JavaScript

Effacez l’historique à la fin de votre écouteur de page vue :

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

Voir Effacer l’historique.

Extensions de balises
Ajoutez une action Effacer l’historique de la couche de données de l’extension ACDL comme dernière action de votre règle de page vue.

Minutage et doublons timing

Suivez ces pratiques afin que chaque événement soit envoyé exactement une fois :

  • Utiliser la portée all. Il s’agit de la valeur par défaut dans les deux approches : l’option scope dans JavaScript et le paramètre Portée de l’heure dans les balises. Il envoie les événements qui ont été transmis avant que votre écouteur ou votre règle ne commence à écouter, par exemple une page vue qui a été transmise avant le chargement de votre script ou de votre bibliothèque de balises. Utilisez future uniquement si une autre partie de votre implémentation a déjà envoyé les événements précédents. Voir Portée.
  • Envoyez chaque événement depuis un seul endroit. Si votre propre code et une règle de balise envoient le même événement de couche de données, Adobe le reçoit deux fois.
  • Bibliothèque JavaScript : utilisez des fonctions nommées et ajoutez chaque écouteur une fois. ACDL ignore un second enregistrement de la même fonction pour le même événement. Cependant, si le code qui s’exécute à plusieurs reprises transmet une nouvelle fonction anonyme à chaque fois, ACDL ajoute un nouveau listener à chaque fois et chaque événement est envoyé plusieurs fois.
  • Extensions de balise : se déclenchent sur des noms d’événement spécifiques. Une règle qui se déclenche Toutes les modifications de données s’exécute pour chaque notification push de données, qui peut envoyer beaucoup plus d’événements que prévu.
recommendation-more-help
experience-platform-help-collection