Inviare dati Adobe Client Data Layer con il Web SDK

Adobe Client Data Layer (ACDL) raccoglie dati ed eventi sulla pagina, ma non li invia da nessuna parte. Per inviarli a Adobe Experience Platform Edge Network, connettere gli eventi ACDL a Web SDK in uno dei modi seguenti:

  • Libreria JavaScript: il tuo codice ascolta gli eventi ACDL e chiama il comando Web SDK sendEvent.
  • Estensioni tag: le regole tag utilizzano l’estensione ACDL per attivare eventi ACDL e l’estensione Web SDK per inviare i dati.

Ogni sezione di questa pagina mostra entrambi gli approcci.

Prerequisiti prerequisites

Il codice del sito invia i dati e gli eventi che desideri inviare. Gli esempi in questa pagina utilizzano il push seguente per ogni visualizzazione di pagina:

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

A seconda dell’approccio utilizzato, è inoltre necessario disporre dei seguenti elementi:

Libreria JavaScript

Il codice di base di Web SDK mette in coda i comandi fino al caricamento della relativa libreria e ACDL mette in coda gli elementi fino al caricamento della relativa libreria. A causa di queste code, è possibile aggiungere il codice in questa pagina in qualsiasi punto dopo il codice di base di Web SDK, indipendentemente dalla libreria che viene caricata per prima.

Estensioni tag

Scegli come mappare i dati mapping

Il Web SDK invia i dati in due oggetti. Scegli uno o entrambi:

Oggetto
Funzionamento della mappatura
Utilizzala quando
xdm
Puoi creare un oggetto che corrisponda allo schema XDM dai valori del livello dati, nel codice o in una regola di tag.
Desideri un controllo completo sul payload, oppure il livello dati è già simile allo schema.
data
Invia i valori del livello dati così come sono. Li mappi a XDM nello stream di dati con Preparazione per la raccolta dati.
Desideri mantenere la logica di mappatura fuori dal codice della pagina e dalle regole dei tag, oppure diversi siti condividono un livello di dati ben gestito.

Scegli da dove provengono i valori value-sources

Quando un evento ACDL attiva il codice o la regola, puoi leggere i valori del livello dati da due posizioni:

Origine
Libreria JavaScript
Estensioni tag
Contiene
L’oggetto inviato
event.page.title, dove event è l’argomento del listener
%event.message.page.title%
Solo l’oggetto che ha attivato l’evento.
Stato calcolato
adobeDataLayer.getState("page.title")
Un elemento dati Stato calcolato dal livello dati con percorso page.title
Tutti i dati sono stati uniti da ogni push finora.

Utilizza l’oggetto push per valori che descrivono l’evento stesso, ad esempio il prodotto in un’aggiunta al carrello. Utilizza lo stato calcolato per i valori inviati in precedenza, ad esempio i dettagli utente. Quando il codice o la regola viene eseguito, lo stato calcolato include già i dati del push che l’ha attivata. Vedere Cosa ricevono i listener e Utilizzare i dati inviati nelle regole.

Inviare dati XDM xdm

Gli esempi seguenti inviano una visualizzazione di pagina con il titolo della pagina dall’oggetto inviato.

Libreria JavaScript

Ascolta l’evento e chiama 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);
});

Per tutte le opzioni del listener, vedere addEventListener().

Estensioni tag
  1. Creare un elemento dati Variable con estensione Web SDK. Seleziona XDM, quindi seleziona la sandbox e lo schema. In questo esempio viene denominato l’elemento dati XDM variable.

  2. Crea una regola e aggiungi un evento:

    • Estensione: Adobe Client Data Layer
    • Tipo evento: Push livello dati
    • Triggers su: Eventi denominati specifici, con nome evento page view
    • Ambito temporale: Tutti
  3. Aggiungi un’azione che riempie l’oggetto XDM:

    • Estensione: Adobe Experience Platform Web SDK
    • Tipo azione: Aggiorna variabile
    • Elemento dati: XDM variable
    • Impostare web.webPageDetails.name su %event.message.page.title% e web.webPageDetails.pageViews.value su 1.
  4. Aggiungi un’azione che invia l’evento:

    • Estensione: Adobe Experience Platform Web SDK
    • Tipo azione: Invia evento
    • Tipo: web.webpagedetails.pageViews
    • XDM: %XDM variable%
  5. Salva la regola, aggiungila a una libreria e genera la libreria.

Per tutte le opzioni evento, vedi Push livello dati.

Ogni volta che il sito invia un evento page view, il codice o la regola invia una visualizzazione di pagina ad Edge Network.

Inviare le interazioni nello stesso modo. Ad esempio, per un messaggio push come { event: "cart add", eventInfo: { sku: "HT105" } }, ascolta o attiva cart add e leggi il prodotto da eventInfo. Per i campi XDM che descrivono le interazioni di e-commerce, consulta Raccogliere informazioni su commerce, prodotti e ordini.

Inviare il livello dati per la mappatura nello stream di dati data

Per eseguire la mappatura nello stream di dati anziché nel codice o nelle regole, invia i valori del livello dati nell’oggetto data e includi un XDM eventType in modo che l’evento venga classificato correttamente.

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

All’interno di un listener ACDL, this fa riferimento al livello dati, quindi this.getState() restituisce lo stato calcolato. Per inviarne solo una parte, passare un percorso, ad esempio this.getState("page").

Estensioni tag
  1. Crea un elemento dati Stato calcolato del livello dati con estensione ACDL. Selezionare Tutto lo stato calcolato oppure selezionare Percorso specifico e immettere il percorso dei dati da inviare. In questo esempio viene denominato l’elemento dati ACDL state.

  2. Crea una regola con lo stesso evento Data Layer push di Send XDM data.

  3. Aggiungi un’azione Invia evento dall’estensione Web SDK:

    • Tipo: web.webpagedetails.pageViews
    • Dati: %ACDL state%
  4. Salva la regola, aggiungila a una libreria e genera la libreria.

Quindi, nel flusso di dati, mappa i campi inviati allo schema XDM. Consulta Preparazione dati per raccolta dati. I dati che non vengono mappati e che nessun servizio configurato legge non vengono memorizzati. L’invio dell’intero stato calcolato aumenta anche le dimensioni di ogni richiesta, pertanto nelle pagine con un livello dati di grandi dimensioni invia solo le parti mappate.

Applicazioni a pagina singola spa

In un’applicazione a pagina singola, la pagina rimane aperta mentre il visitatore visualizza molte pagine virtuali e il livello dati cronologia continua a crescere. Effettua il push di un evento page view per ogni visualizzazione di pagina virtuale e cancella la cronologia dopo l’invio. La cancellazione della cronologia non modifica lo stato calcolato né rimuove listener e regole.

Libreria JavaScript

Cancella la cronologia alla fine del listener di visualizzazione della pagina:

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

Vedere Cancella cronologia.

Estensioni tag
Aggiungi un’azione Cancella cronologia livello dati dall’estensione ACDL come ultima azione della regola di visualizzazione della pagina.

Tempistica e duplicati timing

Segui queste procedure in modo che ogni evento venga inviato esattamente una volta:

  • Utilizza l’ambito all. È l’impostazione predefinita in entrambi gli approcci: l’opzione scope in JavaScript e l’impostazione Ambito temporale nei tag. Invia eventi inviati prima che il listener o la regola iniziasse l’ascolto, ad esempio una visualizzazione di pagina inviata prima che lo script o la libreria di tag fossero caricati. Usa future solo se un’altra parte dell’implementazione ha già inviato gli eventi precedenti. Vedi Ambito.
  • Invia ogni evento da un’unica posizione. Se sia il codice che una regola di tag inviano lo stesso evento del livello dati, Adobe lo riceve due volte.
  • Libreria JavaScript: utilizzare funzioni denominate e aggiungere ogni listener una volta. ACDL ignora una seconda registrazione della stessa funzione per lo stesso evento. Tuttavia, se il codice che viene eseguito ripetutamente passa una nuova funzione anonima ogni volta, ACDL aggiunge un nuovo listener ogni volta e ogni evento viene inviato più di una volta.
  • Estensioni tag: attivazione su nomi evento specifici. Una regola che attiva Tutte le modifiche ai dati viene eseguita per ogni push di dati, che può inviare molti più eventi di quanto previsto.
recommendation-more-help
experience-platform-help-collection