Installieren der Adobe Client-Datenschicht

Die Installation der Adobe Client-Datenschicht (ACDL) umfasst zwei Teile:

  1. Erstellen Sie das Datenschicht-Array in jedem Skript, das an es gepusht wird, sodass Ihr Code funktioniert, unabhängig davon, ob ACDL noch geladen wurde oder nicht.
  2. Laden Sie die ACDL Bibliothek einmal pro Seite mit einer der Installationsmethoden.

Erstellen des Datenschicht-Arrays initialize

Fügen Sie vor jedem Code, der an die Datenschicht gesendet wird, die folgende Zeile hinzu:

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

Diese Zeile erstellt das Array, wenn es nicht existiert, und behält es, wenn es existiert. Fügen Sie sie in jedes Skript ein, das an die Datenschicht weiterleitet, nicht nur an die erste. Skripte können in beliebiger Reihenfolge geladen werden. Die Zeile stellt sicher, dass jedes Skript an dasselbe Array gesendet wird, ohne es zu überschreiben.

Nach dieser Zeile übertragen Sie Daten, Ereignisse und Funktionen mit push():

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

Bis zum Laden der ACDL ist push() die standardmäßige JavaScript-Array-Methode, und das Array funktioniert als Warteschlange. Beim Laden von ACDL werden die Elemente in der Warteschlange der Reihe nach verarbeitet. Siehe Warteschlange und ​.

IMPORTANT
ACDL verwendet immer den globalen Namen adobeDataLayer. Die Bibliothek unterstützt keine anderen Namen. Die Tag-Erweiterung kann einen zweiten Namen auf dieselbe Datenschicht verweisen lassen.

Installationsmethode auswählen methods

Laden Sie ACDL auf jeder Seite mit einer der folgenden Methoden:

Methode
Verwenden Sie sie, wenn
Tag-Erweiterung
Sie verwenden Tags in Adobe Experience Platform. Die Erweiterung kann ACDL für Sie laden.
Skript-Tag
Sie möchten die Bibliotheksdatei selbst hosten und zu Ihren Seitenvorlagen hinzufügen.
npm
Sie erstellen die JavaScript Ihrer Site mit einem Bundler.
Adobe Experience Manager
Ihre Site verwendet AEM-Kernkomponenten der Version 2.9.0 oder höher.

Tag-Erweiterung tags

Die Adobe Client-Datenschicht-Tag-Erweiterung lädt ACDL, wenn Ihre Tag-Bibliothek geladen wird, es sei denn, die Seite lädt sie bereits. Sie müssen die Bibliothek nicht zu Ihren Seitenvorlagen hinzufügen. Ihr Site-Code muss weiterhin das Datenschicht-Array erstellen und Daten per Push übertragen. Siehe Konfigurieren der Adobe Client-Datenschicht-Erweiterung.

Skript-Tag script

Laden Sie die Bibliothek von npm (siehe npm) herunter und hosten Sie adobe-client-data-layer.min.js auf Ihrer Site. Laden Sie sie dann in die <head> jeder Seite mit den Attributen async und defer :

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

In Browsern mit -Unterstützung async das Skript direkt beim Herunterladen ausgeführt, ohne die Seite zu blockieren. Da ACDL alles verarbeitet, was vor dem Laden in die Warteschlange gestellt wurde, sind Ihre Daten sicher, auch wenn andere Skripte zuerst auf die Datenschicht übertragen.

Das folgende Beispiel zeigt eine Seite, auf der sowohl ein Inline-Skript als auch ein externes Skript in die Datenschicht übertragen werden, bevor ACDL geladen wird:

<!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>

Das externe Skript erstellt /js/myscripts.js auch das -Array, bevor es gepusht wird:

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

Öffentliche npm-CDNs wie unpkg und jsDelivr dienen ebenfalls zur Bereitstellung der Bibliotheksdatei. Wenn Sie sie von einem CDN eines Drittanbieters laden, heften Sie eine exakte Version an die URL, damit sich die Datei nicht ohne Ihr Wissen ändert.

npm npm

Installieren Sie das Paket:

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

Das Paket enthält ein Browser-Skript unter dist/adobe-client-data-layer.min.js. Kopieren Sie diese Datei entweder auf Ihre Site und laden Sie sie mit einem Skript-Tag oder importieren Sie die Datei in Ihre gebündelte JavaScript:

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

Das Skript exportiert nichts. Wenn er ausgeführt wird, richtet er window.adobeDataLayer ein.

NOTE
Importieren Sie in ACDL 3.x den oben gezeigten Dateipfad. Das 3.x-Paket definiert keinen Einstiegspunkt, sodass import "@adobe/adobe-client-data-layer" fehlschlägt.

Adobe Experience Manager aem

AEM-Kernkomponenten 2.9.0 und höher enthalten ACDL als Client-Bibliothek und Kernkomponenten, die Daten und Ereignisse für jede Komponente per Push übertragen. Siehe Verwenden der Adobe Client-Datenschicht mit den Kernkomponenten.

Wenn Ihre AEM-Site auch die ACDL-Tag-Erweiterung verwendet, deaktivieren Sie die Option Laden der Adobe Client-Datenschichtbibliothek, falls nicht vorhanden sodass nur AEM die Bibliothek lädt. Siehe Konfigurieren der Adobe Client-Datenschicht-Erweiterung.

Bibliothek nur einmal laden load-once

Laden Sie ACDL einmal pro Seite. Wenn eine zweite Kopie geladen wird, wird die folgende Warnung in der Browser-Konsole protokolliert und die Datenschicht wird nicht geändert:

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

Die erste Kopie wird weiterhin ausgeführt, sodass Ihre Daten und Listener weiterhin funktionieren. Entfernen Sie das Duplikat, um den zusätzlichen Download zu vermeiden. Duplikate sind häufig, wenn sowohl eine Seitenvorlage als auch die Tag-Erweiterung die Bibliothek laden.

Überprüfen der Installation verify

Öffnen Sie die Entwicklerkonsole Ihres Browsers auf einer Seite, auf der ACDL geladen wird, und führen Sie die folgenden Befehle aus:

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

Wenn adobeDataLayer.version undefined ist, wurde ACDL nicht auf der Seite geladen. Siehe Fehlerbehebung.

Upgrade von 2.x auf 3.x upgrade

Adobe Experience Manager-Kernkomponenten laden standardmäßig ACDL 2.x, sodass auf vielen Sites weiterhin 2.x ausgeführt wird. Überprüfen Sie die folgenden Änderungen, bevor Sie auf 3.x aktualisieren. Informationen zu allen Versionen finden Sie in den Versionshinweisen auf GitHub.

ACDL 3.0 ersetzte die interne Dienstprogramm-Bibliothek durch integrierte Browser-Funktionen. Die Datei ist viel kleiner, aber die Anforderungen und das Verhalten bei der Zusammenführung haben sich geändert:

Bereich
2.x
3.x
Browser-Anforderungen
Unterstützte ältere Browser
Erfordert eine structuredClone() und moderne JavaScript. Siehe Browser-Anforderungen.
Dateigröße (minimiert)
Ungefähr 33 KB
Über 6 KB
Pushen eines Arrays auf einen Schlüssel, der bereits ein Array enthält
Führt die Arrays nach Position zusammen. Das Überschieben von ["c"] über ["a", "b"] führt zu ["c", "b"].
Ersetzt das Array . Das Überschieben von ["c"] über ["a", "b"] führt zu ["c"]. Siehe Arrays.
Pushen eines Objekts auf einen Schlüssel, der eine Zeichenfolge, eine Zahl oder einen booleschen Wert enthält
Ersetzt den Wert durch das -Objekt.
Ersetzt nicht den Wert . Siehe Ändern des Typs eines Werts.
Klammernotation in getState() Pfaden, z. B. items[0].sku
„Unterstützt“
Nicht unterstützt. Punktnotation verwenden, z. B. items.0.sku. Siehe getState().
Einstiegspunkt des npm-Pakets
import "@adobe/adobe-client-data-layer" lädt die Bibliothek.
Importieren Sie den Dateipfad. Siehe npm.

Testen Sie die Implementierung nach dem Upgrade, insbesondere Code, der Arrays pusht oder den Typ eines Werts ändert.

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