push()

Die push()-Methode fügt der Adobe Client-Datenschicht (ACDL) Elemente hinzu. Es ist die einzige Methode, die Sie aufrufen können, bevor die Bibliothek geladen wird, sodass es die Hauptmethode ist, mit der Site-Code mit der Datenschicht interagiert.

adobeDataLayer.push(...items: (object | Function)[]): number | undefined

Bevor ACDL geladen wird, ist push() die standardmäßige Array.prototype.push()-Methode, und die Elemente warten im Array, bis die Bibliothek geladen wird. Nach dem Laden von ACDL wird jedes Element sofort von der zugehörigen Version von push() verarbeitet. Siehe Warteschlange und ​.

Erstellen Sie immer das Array, bevor Sie einen Push ausführen:

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

Elementtypen item-types

Sie können drei Arten von Elementen per Push übertragen:

Element
Was ACDL tut
Datenobjekt
Führt das -Objekt in den adobeDataLayer:change Berechneter Status und Trigger zusammen.
Ereignisobjekt
Trigger für das benannte Ereignis und die adobeDataLayer:event. Führt alle Daten im -Objekt in den berechneten Status zusammen.
Funktion
Ruft die Funktion auf und übergibt ihr die Datenschicht.

Datenobjekt data

Ein einfaches Objekt ohne event. ACDL führt sie in den berechneten Status:

window.adobeDataLayer.push({
  page: { title: "Products", language: "en" },
  user: { loggedIn: true }
});

Um einen Schlüssel zu löschen, drücken Sie null als Wert. Siehe Daten löschen.

Ereignisobjekt event

Ein einfaches Objekt mit einem event, das eine nicht leere Zeichenfolge enthält. Das Objekt kann auch einen eventInfo und Daten enthalten, die in den berechneten Status zusammengeführt werden sollen:

window.adobeDataLayer.push({
  event: "cart add",
  eventInfo: { sku: "a-100" },
  cart: { itemCount: 3 }
});

ACDL führt die Daten, cart in diesem Beispiel, in den berechneten Status zusammen und ruft dann die Listener für das Ereignis auf. Siehe Ereignisse.

Funktion function

Eine Funktion, die von ACDL aufgerufen wird, wenn die Bibliothek bereit ist. Verwenden Sie sie, um andere ACDL-Methoden sicher aufzurufen, auch wenn die Bibliothek noch nicht geladen wurde:

window.adobeDataLayer.push(function(dl) {
  dl.addEventListener("cart add", function(event) {
    console.log("Added to cart:", event.eventInfo.sku);
  });
});

ACDL ruft die Funktion mit der Datenschicht als Argument und als this auf. Die Funktion bleibt nicht im Array. Wenn die Funktion einen Fehler ausgibt, wird der Fehler an den Code weitergegeben, der push() aufgerufen hat. Bevor die Bibliothek geladen wird, verhindert ein Fehler auch, dass ACDL den Rest der Warteschlange verarbeitet. Siehe Code ausführen, wenn ACDL bereit ist.

Rückgabewert return

Nach dem Laden der ACDL gibt push() die neue Länge des Arrays zurück, wenn ein Element zum Verlauf hinzugefügt wird. Wenn kein Element hinzugefügt wird, wird undefined zurückgegeben, z. B. wenn nur eine Funktion oder ein ungültiges Element gepusht wird.

Ein Element pro Aufruf per Push übertragen one-item

Sie können mehrere Elemente an einen push()-Aufruf übergeben, und ACDL verarbeitet sie der Reihe nach. Wenn ein Aufruf jedoch verschiedene Arten von Elementen kombiniert, kann der Verlauf inkonsistent werden. Wenn das erste Element beispielsweise eine Funktion ist, verarbeitet ACDL die folgenden Datenobjekte, fügt sie jedoch nicht zum Verlauf hinzu. Pushen Sie jedes Element in einem separaten Aufruf.

Ungültige Elemente invalid

ACDL akzeptiert nur einfache Objekte und Funktionen. Wenn Sie einen anderen Wert pushen, z. B. eine Zeichenfolge, eine Zahl, einen booleschen Wert oder ein Array, verarbeitet ACDL ihn nicht und protokolliert den folgenden Fehler in der Browser-Konsole:

The following item cannot be handled by the data layer because it does not have a valid format: "example"

Durch Drücken von null oder undefined wird eine TypeError ausgelöst.

NOTE
Objekte mit on und handler oder mit einem off sind keine Daten. ACDL ignoriert sie und fügt sie nicht zum Verlauf hinzu. Um Listener hinzuzufügen oder zu entfernen, verwenden Sie addEventListener() und removeEventListener().
recommendation-more-help
experience-platform-help-collection