Installare Adobe Client Data Layer

L’installazione di Adobe Client Data Layer (ACDL) prevede due parti:

  1. Crea l’array di livello dati in ogni script che esegue il push, in modo che il codice funzioni indipendentemente dal fatto che ACDL sia stato ancora caricato.
  2. Caricare la libreria ACDL una volta per pagina, utilizzando uno dei metodi di installazione.

Creare l’array di livello dati initialize

Aggiungi la seguente riga prima di qualsiasi codice che viene inviato al livello dati:

window.adobeDataLayer = window.adobeDataLayer || [];

Questa riga crea l’array se non esiste e lo mantiene se esiste. Includilo in ogni script che viene inviato al livello dati, non solo nel primo. Gli script possono essere caricati in qualsiasi ordine e la riga assicura che ogni script esegua il push sullo stesso array senza sovrascriverlo.

Dopo questa riga, invia dati, eventi e funzioni con push():

window.adobeDataLayer = window.adobeDataLayer || [];
window.adobeDataLayer.push({ page: { title: "Home" } });

Fino al caricamento di ACDL, push() è il metodo di array standard di JavaScript e l’array funziona come una coda. Quando viene caricato, ACDL elabora gli elementi in coda in ordine. Vedi Coda e cronologia.

IMPORTANT
ACDL utilizza sempre il nome globale adobeDataLayer. La libreria non supporta altri nomi. L'estensione tag può fare riferimento allo stesso livello dati con un secondo nome.

Scegliere un metodo di installazione methods

Carica ACDL su ogni pagina con uno dei seguenti metodi:

Metodo
Utilizzala quando
Estensione tag
Puoi utilizzare i tag in Adobe Experience Platform. L’estensione può caricare ACDL automaticamente.
Tag script
Desideri ospitare autonomamente il file libreria e aggiungerlo ai modelli di pagina.
npm
Puoi creare la JavaScript del tuo sito con un bundler.
Adobe Experience Manager
Il sito utilizza AEM Core Components 2.9.0 o versione successiva.

Estensione tag tags

L’estensione tag Adobe Client Data Layer carica ACDL al caricamento della libreria di tag, a meno che la pagina non sia già stata caricata. Non è necessario aggiungere la libreria ai modelli di pagina. Il codice del sito deve ancora creare l’array di livello dati e inviare i dati. Consulta Configurare l’estensione Adobe Client Data Layer.

Tag script script

Scarica la libreria da npm (vedi npm) e ospita adobe-client-data-layer.min.js sul tuo sito. Quindi caricarlo in <head> di ogni pagina con entrambi gli attributi async e defer:

<script src="/js/adobe-client-data-layer.min.js" async defer></script>

I browser che supportano async eseguono lo script non appena viene scaricato, senza bloccare la pagina. Poiché ACDL elabora tutto ciò che era in coda prima del caricamento, i dati sono sicuri anche se altri script vengono inviati prima al livello dati.

L’esempio seguente mostra una pagina in cui uno script in linea e uno script esterno eseguono entrambi il push al livello dati prima del caricamento di ACDL:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>My page</title>
    <script src="/js/myscripts.js" defer></script>
    <script>
      window.adobeDataLayer = window.adobeDataLayer || [];
      window.adobeDataLayer.push({ page: { title: "My page" } });
    </script>
    <script src="/js/adobe-client-data-layer.min.js" async defer></script>
  </head>
  <body>
    <h1>My page</h1>
  </body>
</html>

Anche lo script esterno /js/myscripts.js crea l’array prima che venga eseguito il push:

window.adobeDataLayer = window.adobeDataLayer || [];
window.adobeDataLayer.push({ user: { loggedIn: false } });

Anche le reti CDN npm pubbliche, come unpkg e jsDelivr, distribuiscono il file di libreria. Se lo carichi da una rete CDN di terze parti, aggiungi una versione esatta nell’URL in modo che il file non cambi a tua insaputa.

npm npm

Installare il pacchetto:

npm install @adobe/adobe-client-data-layer

Il pacchetto contiene uno script del browser in dist/adobe-client-data-layer.min.js. Copiare il file nel sito e caricarlo con un tag script oppure importare il file nel JavaScript in bundle:

import "@adobe/adobe-client-data-layer/dist/adobe-client-data-layer.min.js";

Lo script non esporta nulla. Durante l’esecuzione, imposta window.adobeDataLayer.

NOTE
In ACDL 3.x, importate il percorso file indicato sopra. Il pacchetto 3.x non definisce un punto di ingresso, pertanto import "@adobe/adobe-client-data-layer" non riesce.

Adobe Experience Manager aem

AEM Core Components 2.9.0 e versioni successive includono ACDL come libreria client e i dati push e gli eventi dei Componenti core per ciascun componente. Consulta Utilizzo di Adobe Client Data Layer con i Componenti core.

Se il tuo sito AEM utilizza anche l’estensione tag ACDL, disattiva l’opzione Carica la libreria di Adobe Client Data Layer se assente in modo che solo AEM carichi la libreria. Consulta Configurare l’estensione Adobe Client Data Layer.

Carica la libreria una sola volta load-once

Carica ACDL una volta per pagina. Se viene caricata una seconda copia, il seguente avviso viene registrato nella console del browser e non modifica il livello dati:

Adobe Client Data Layer v3.0.1 has already been imported/initialized on this page. You may be erroneously loading it a second time.

La prima copia continua a funzionare, in modo che i dati e i listener continuino a funzionare. Rimuovi il duplicato per evitare il download aggiuntivo. I duplicati sono comuni quando sia un modello di pagina che l’estensione tag caricano la libreria.

Verificare l’installazione verify

Apri la console per sviluppatori del browser in una pagina che carica ACDL ed esegue i seguenti comandi:

adobeDataLayer.version     // For example, "3.0.1"
adobeDataLayer.getState()  // The computed state of everything pushed so far

Se adobeDataLayer.version è undefined, ACDL non è stato caricato sulla pagina. Consulta Risoluzione dei problemi.

Aggiornamento da 2.x a 3.x upgrade

I componenti core Adobe Experience Manager caricano ACDL 2.x per impostazione predefinita, pertanto molti siti vengono ancora eseguiti in versione 2.x. Rivedi le seguenti modifiche prima di eseguire l’aggiornamento a 3.x. Per tutte le versioni, consulta le note sulla versione su GitHub.

ACDL 3.0 ha sostituito la propria libreria di utilità interna con funzioni browser integrate. Il file è molto più piccolo, ma i requisiti e alcuni comportamenti di unione sono cambiati:

Area
2.x
3.x
Requisiti del browser
Browser meno recenti supportati
Richiede structuredClone() e JavaScript moderno. Consulta Requisiti del browser.
Dimensioni file (ridotte)
Circa 33 KB
Circa 6 KB
Invio di un array a una chiave che contiene già un array
Unisce gli array in base alla posizione. Il push di ["c"] su ["a", "b"] genera ["c", "b"].
Sostituisce l’array. Il push di ["c"] su ["a", "b"] genera ["c"]. Vedi Array.
Invio di un oggetto a una chiave contenente una stringa, un numero o un valore booleano
Sostituisce il valore con l’oggetto.
Non sostituisce il valore. Vedere Modificare il tipo di un valore.
Notazione tra parentesi in getState() percorsi, ad esempio items[0].sku
Supportato
Non supportato. Utilizzare la notazione del punto, ad esempio items.0.sku. Vedere getState().
punto di ingresso pacchetto npm
import "@adobe/adobe-client-data-layer" carica la libreria.
Importa il percorso del file. Vedi npm.

Verifica l’implementazione dopo l’aggiornamento, in particolare il codice che invia gli array o modifica il tipo di un valore.

recommendation-more-help
experience-platform-help-collection