push()
Il metodo push() aggiunge elementi a Adobe Client Data Layer (ACDL). È l’unico metodo che puoi chiamare prima che la libreria venga caricata, quindi è il modo principale in cui il codice del sito interagisce con il livello dati.
adobeDataLayer.push(...items: (object | Function)[]): number | undefined
Prima del caricamento di ACDL, push() è il metodo standard Array.prototype.push() e gli elementi attendono nell’array fino al caricamento della libreria. Dopo il caricamento di ACDL, la relativa versione di push() elabora immediatamente ogni elemento. Vedi Coda e cronologia.
Crea sempre l’array prima di premere:
window.adobeDataLayer = window.adobeDataLayer || [];
window.adobeDataLayer.push({ page: { title: "Home" } });
Tipi di elemento item-types
Puoi inviare in push tre tipi di elementi:
adobeDataLayer:change.adobeDataLayer:event. Unisce tutti i dati nell’oggetto allo stato calcolato.Oggetto dati data
Oggetto normale senza chiave event. ACDL lo unisce allo stato calcolato:
window.adobeDataLayer.push({
page: { title: "Products", language: "en" },
user: { loggedIn: true }
});
Per eliminare una chiave, invia null come valore. Vedi Elimina dati.
Oggetto evento event
Oggetto normale con una chiave event contenente una stringa non vuota. L’oggetto può inoltre includere una chiave eventInfo e dati da unire nello stato calcolato:
window.adobeDataLayer.push({
event: "cart add",
eventInfo: { sku: "a-100" },
cart: { itemCount: 3 }
});
ACDL unisce i dati, cart in questo esempio, nello stato calcolato, quindi chiama i listener per l’evento. Vedi Eventi.
Funzione function
Funzione chiamata da ACDL quando la libreria è pronta. Utilizzalo per chiamare altri metodi ACDL in modo sicuro, anche se la libreria non è ancora stata caricata:
window.adobeDataLayer.push(function(dl) {
dl.addEventListener("cart add", function(event) {
console.log("Added to cart:", event.eventInfo.sku);
});
});
ACDL chiama la funzione con il livello dati come argomento e come this. Non mantiene la funzione nell’array. Se la funzione genera un errore, l’errore si propaga al codice che ha chiamato push(). Prima del caricamento della libreria, un errore impedisce a ACDL di elaborare il resto della coda. Vedere Eseguire il codice quando ACDL è pronto.
Valore restituito return
Dopo il caricamento di ACDL, push() restituisce la nuova lunghezza dell’array quando aggiunge un elemento alla cronologia. Restituisce undefined quando non aggiunge un elemento, ad esempio quando si invia solo una funzione o un elemento non valido.
Invia un elemento per chiamata one-item
È possibile passare più elementi a una chiamata push() e ACDL li elabora in ordine. Tuttavia, quando una chiamata combina diversi tipi di elementi, la cronologia può diventare incoerente. Ad esempio, se il primo elemento è una funzione, ACDL elabora gli oggetti dati che lo seguono ma non li aggiunge alla cronologia. Effettua il push di ogni elemento in una chiamata separata.
Elementi non validi invalid
ACDL accetta solo oggetti e funzioni semplici. Se invii un altro valore, ad esempio una stringa, un numero, un valore booleano o un array, ACDL non lo elabora e registra il seguente errore nella console del browser:
The following item cannot be handled by the data layer because it does not have a valid format: "example"
Il push di null o undefined genera un TypeError.
on e handler chiavi o con una chiave off non sono dati. ACDL li ignora e non li aggiunge alla cronologia. Per aggiungere o rimuovere listener, utilizzare addEventListener() e removeEventListener().