Utilizzo di Adobe Client Data Layer con i componenti core AEM overview
Adobe Client Data Layer introduce un metodo standard per raccogliere e memorizzare i dati sull’esperienza di un visitatore in una pagina web e semplifica l’accesso a tali dati. Adobe Client Data Layer è indipendente dalla piattaforma, ma è completamente integrato nei Componenti core per l’utilizzo con AEM.
Esplorare Data Layer
Puoi avere un’idea della funzionalità integrata di Adobe Client Data Layer semplicemente utilizzando gli strumenti per sviluppatori del browser e la versione live Sito di riferimento WKND.
-
Accedi a https://wknd.site/us/en.html
-
Apri gli strumenti per sviluppatori e immetti il comando seguente nel Console:
code language-js window.adobeDataLayer.getState();
Per visualizzare lo stato corrente del livello dati su un sito AEM, controlla la risposta. Dovresti visualizzare informazioni sulla pagina e sui singoli componenti.
-
Invia un oggetto dati al livello dati immettendo quanto segue nella console:
code language-js window.adobeDataLayer.push({ "component": { "training-data": { "title": "Learn More", "link": "learn-more.html" } } });
-
Esegui il comando
adobeDataLayer.getState()
e trova la voce pertraining-data
. -
Quindi aggiungi un parametro percorso per restituire solo lo stato specifico di un componente:
code language-js window.adobeDataLayer.getState('component.training-data');
Utilizzo degli eventi
È consigliabile attivare qualsiasi codice personalizzato basato su un evento dal livello dati. Quindi, esplora la registrazione e l’ascolto di diversi eventi.
-
Immetti il seguente metodo helper nella console:
code language-js function getDataObjectHelper(event, filter) { if (event.hasOwnProperty("eventInfo") && event.eventInfo.hasOwnProperty("path")) { var dataObject = window.adobeDataLayer.getState(event.eventInfo.path); if (dataObject != null) { for (var property in filter) { if (!dataObject.hasOwnProperty(property) || (filter[property] !== null && filter[property] !== dataObject[property])) { return; } return dataObject; } } } return; }
Il codice di cui sopra esamina
event
e utilizzaadobeDataLayer.getState
per ottenere lo stato corrente dell'oggetto che ha attivato l'evento. Quindi il metodo helper controllafilter
e solo se l'attualedataObject
soddisfa i criteri di filtro restituiti.note caution CAUTION È importante non per aggiornare il browser durante questo esercizio, altrimenti il JavaScript della console andrà perso. -
Quindi, immetti un gestore eventi chiamato quando un Teaser componente è visualizzato all'interno di un Carosello.
code language-js function teaserShownHandler(event) { var dataObject = getDataObjectHelper(event, {"@type": "wknd/components/teaser"}); if(dataObject != null) { console.log("Teaser Shown: " + dataObject['dc:title']); console.log(dataObject); } }
Il
teaserShownHandler
la funzione chiama ilgetDataObjectHelper
e trasmette un filtro diwknd/components/teaser
come@type
per filtrare gli eventi attivati da altri componenti. -
Quindi, invia un listener di eventi sul livello dati per ascoltare
cmp:show
evento.code language-js window.adobeDataLayer.push(function (dl) { dl.addEventListener("cmp:show", teaserShownHandler); });
Il
cmp:show
viene attivato da molti componenti diversi, ad esempio quando viene visualizzata una nuova diapositiva nel Carosello o quando viene selezionata una nuova scheda in Linguetta componente. -
Sulla pagina, attiva le diapositive del carosello e osserva le istruzioni della console:
-
Per interrompere l'ascolto di
cmp:show
rimuovere il listener di eventi dal livello daticode language-js window.adobeDataLayer = window.adobeDataLayer || []; window.adobeDataLayer.push(function(dl) { dl.removeEventListener("cmp:show", teaserShownHandler); });
-
Torna alla pagina e commuta le diapositive del carosello. Tieni presente che non vengono registrate altre istruzioni e che l’evento non viene ascoltato.
-
Quindi, crea un gestore eventi chiamato quando viene attivato l'evento di visualizzazione della pagina:
code language-js function pageShownHandler(event) { var dataObject = getDataObjectHelper(event, {"@type": "wknd/components/page"}); if(dataObject != null) { console.log("Page Shown: " + dataObject['dc:title']); console.log(dataObject); } }
Tieni presente che il tipo di risorsa
wknd/components/page
viene utilizzato per filtrare l’evento. -
Quindi, invia un listener di eventi sul livello dati per ascoltare
cmp:show
evento, chiamandopageShownHandler
.code language-js window.adobeDataLayer = window.adobeDataLayer || []; window.adobeDataLayer.push(function (dl) { dl.addEventListener("cmp:show", pageShownHandler); });
-
Dovresti vedere immediatamente un’istruzione della console attivata con i dati della pagina:
Il
cmp:show
per la pagina viene attivato al caricamento di ogni pagina nella parte superiore della pagina. Potresti chiedere, perché è stato attivato il gestore eventi, quando la pagina è già stata chiaramente caricata?Una delle funzionalità esclusive di Adobe Client Data Layer è la possibilità di registrare i listener di eventi prima di o dopo Data Layer è stato inizializzato, aiuta ad evitare le race condition.
Data Layer mantiene una matrice di coda di tutti gli eventi che si sono verificati in sequenza. Per impostazione predefinita, Data Layer attiva i callback di eventi per gli eventi che si sono verificati in passato ed eventi in futuro. È possibile filtrare gli eventi dal passato o dal futuro. Per ulteriori informazioni consulta la documentazione.
Passaggi successivi
Ci sono due opzioni per continuare l’apprendimento, la prima, controlla il raccogliere i dati della pagina e inviarli ad Adobe Analytics tutorial che illustra l’utilizzo di Adobe Client Data Layer. La seconda opzione consiste nell'apprendere come Personalizzare Adobe Client Data Layer con i componenti AEM