push()
La méthode push() ajoute des éléments à la couche de données client Adobe (ACDL). Il s’agit de la seule méthode que vous pouvez appeler avant le chargement de la bibliothèque. Il s’agit donc de la principale manière dont le code du site interagit avec la couche de données.
adobeDataLayer.push(...items: (object | Function)[]): number | undefined
Avant le chargement de l’ACDL, push() est la méthode Array.prototype.push() standard et les éléments attendent dans le tableau jusqu’au chargement de la bibliothèque. Une fois l’ACDL chargée, sa version de push() traite immédiatement chaque élément. Voir File d’attente et historique.
Créez toujours le tableau avant d’effectuer l’insertion :
window.adobeDataLayer = window.adobeDataLayer || [];
window.adobeDataLayer.push({ page: { title: "Home" } });
Types d’éléments item-types
Vous pouvez pousser trois types d’éléments :
adobeDataLayer:change.adobeDataLayer:event. Fusionne toutes les données de l’objet dans l’état calculé.Objet de données data
Un objet simple sans clé event. L’ACDL le fusionne dans l’état calculé :
window.adobeDataLayer.push({
page: { title: "Products", language: "en" },
user: { loggedIn: true }
});
Pour supprimer une clé, appuyez sur null comme valeur. Voir Supprimer les données.
Objet d’événement event
Un objet simple avec une clé event contenant une chaîne non vide. L’objet peut également inclure une clé eventInfo et des données à fusionner dans l’état calculé :
window.adobeDataLayer.push({
event: "cart add",
eventInfo: { sku: "a-100" },
cart: { itemCount: 3 }
});
L’ACDL fusionne les données, cart dans cet exemple, dans l’état calculé, puis appelle les écouteurs de l’événement. Voir Événements.
Fonction function
Une fonction que l’ACDL appelle lorsque la bibliothèque est prête. Utilisez-le pour appeler d’autres méthodes ACDL en toute sécurité, même si la bibliothèque n’a pas encore été chargée :
window.adobeDataLayer.push(function(dl) {
dl.addEventListener("cart add", function(event) {
console.log("Added to cart:", event.eventInfo.sku);
});
});
ACDL appelle la fonction avec la couche de données comme argument et comme this. Elle ne conserve pas la fonction dans le tableau . Si la fonction renvoie une erreur, celle-ci se propage au code qui a appelé push(). Avant le chargement de la bibliothèque, une erreur empêche également l’ACDL de traiter le reste de la file d’attente. Voir Exécuter le code lorsque l’ACDL est prêt.
Valeur renvoyée return
Après le chargement de l’ACDL, push() renvoie la nouvelle longueur du tableau lorsqu’il ajoute un élément à l’historique. Elle renvoie undefined lorsqu’elle n’ajoute pas d’élément, par exemple lorsque vous poussez uniquement une fonction ou un élément non valide.
Intégrer un élément par appel one-item
Vous pouvez transmettre plusieurs éléments à un seul appel push() et l’ACDL les traite dans l’ordre. Cependant, lorsqu’un appel combine différents types d’éléments, l’historique peut devenir incohérent. Par exemple, si le premier élément est une fonction, ACDL traite les objets de données qui le suivent, mais ne les ajoute pas à l’historique. Intégrez chaque élément dans un appel distinct.
Éléments non valides invalid
ACDL accepte uniquement les objets et fonctions simples. Si vous poussez une autre valeur, telle qu’une chaîne, un nombre, une valeur booléenne ou un tableau, ACDL ne la traite pas et consigne l’erreur suivante dans la console du navigateur :
The following item cannot be handled by the data layer because it does not have a valid format: "example"
L’envoi de null ou undefined renvoie un élément TypeError.
on et handler clés, ou avec une clé off, ne sont pas des données. ACDL les ignore et ne les ajoute pas à l'historique. Pour ajouter ou supprimer des écouteurs, utilisez addEventListener() et removeEventListener().