Show Menu
THEMEN×

Adobe Experience Manager ContextHub tool

Mit dem AEM ContextHub-Tool können Sie das dynamische Tag-Management mit dem Adobe Experience Manager (AEM) ContextHub (AEM-Version der Datenschicht) integrieren. Außerdem kann mithilfe des Tools DTM mit beliebigen Datenschichten integriert werden, selbst auf Websites, bei denen AEM nicht zum Einsatz kommt.
DTM-Kunden verwenden für die Zuordnung der Datenschichten ihrer Websites häufig Datenelemente. Eine Datenschicht kann beispielsweise die Information enthalten, dass sich ein Benutzer ein bestimmtes Produkt ansieht oder ein bestimmtes Produkt in den Warenkorb gelegt hat. Mit DTM können diese Daten auf verschiedene Weise für Regelbedingungen und Aktionen eingesetzt werden. Dazu gehört das Versenden von Daten an Analytics für die Berichterstellung oder an Target für die Bereitstellung auf den Benutzer abgestimmter Inhalte.
Das AEM ContextHub-Tool trägt zur Lösung zahlreicher Probleme bei, die mit Datenschichten zusammenhängen. Einige Datenschichten werden nicht am Seitenanfang geladen. Andere Datenschichten agieren dynamisch oder ansynchron und ändern sich bei Änderungen der Seite häufig. In der Vergangenheit führten diese beiden Eigenschaften dazu, dass es für DTM oft schwierig war, Daten oder Auslöseaktionen effektiv zu versenden.
Mit dem AEM ContextHub-Tool benötigen Sie keinen benutzerdefinierten Code mehr, mit dem in kurzen Abständen geprüft wird, ob sich die Datenschicht ändert, an anderen Stellen als am Seitenanfang geladen wird oder sich bei Änderung der Seite ebenfalls ändert.
Nehmen wir einfach einmal an, dass ein Kunde einen Artikel in den Warenkorb legt und den Artikel wieder löscht. Wenn die Seite sich nicht ändert, während sich die Datenschicht ändert, erkennt DTM die Änderung nicht ohne Zusatz eines benutzerspezifischen Codes. Das AEM ContexHub-Tool enthält eine Abfrage-Engine, mit der jede Senkunde geprüft wird, ob Änderungen stattgefunden haben.
Da mit DTM Datenelemente nun proaktiv über die Datenschicht ausgefüllt werden können, können Benutzer die AEM ContextHub-Datenelemente zudem gemeinsam mit in der Vergangenheit veröffentlichten Bedingungen wie dem Datenelementwert verwenden. Somit können Datenschichtwerte beim Laden der Seite verwaltet oder die Datenelementwert-Bedingung mit dem Ereignis dataelementchanged verknüpft werden, wenn sich die Datenschicht aufgrund einer Benutzerinteraktion verändert hat.
Bei der Konfigurierung des Tools können Sie mithilfe der Standardeinstellung die Integration mit dem AEM ContextHub durchführen oder die Struktur so anpassen, dass diese für beliebige Websites eingesetzt werden kann.
  1. Click <Web Property Name> > Overview > Add a Tool > AEM ContextHub .
  2. Geben Sie einen beschreibenden Namen für das Werkzeug an.
    This name displays on the Overview tab under Installed Tools.
  3. Click Create Tool to display the AEM ContextHub Settings page.
  4. Füllen Sie die Felder aus:
    Element
    Beschreibung
    Standardmäßige ContextHub-Datenschicht verwenden
    So verwenden Sie das AEM ContextHub-Format. Ist diese Option ausgewählt, bezieht DTM bei dieser Integration Daten über das ContextHub-Standardschema. Sollten Sie am ContextHub-Schema Änderungen vorgenommen haben oder eine andere Datenschicht verwenden wollen, arbeiten Sie mit der personalisierten Version.
    ContextHub-Datenschicht personalisieren
    Verwenden Sie ein benutzerdefiniertes Format, mit dem die Datenschichtstruktur beliebiger Webseiten zugeordnet wird, selbst wenn auf diesen Seiten AEM nicht verwendet wird. Mit dieser Option kann Ihr Datenschichtschema bearbeitet werden. Standardmäßig finden sich im Bearbeitungsdialog die Daten der ContextHub-Standarddatenschicht, die Sie dann anpassen oder durch eigenen Code ersetzen können.
    Editor öffnen
    Sollten Sie die Option ContextHub-Datenschicht personalisieren auswählen, können Sie im Editor eigenen Code einfügen.
    Notiz hinzufügen
    Fügen Sie Notizen zu dieser Implementierung hinzu.
  5. Klicken Sie auf Save Changes .

Data layer management using the ContextHub tool

Das ContextHub-Tool von AEM für Dynamic Tag Management (DTM) kann sowohl mit ContextHub-Implementierungen als auch mit Implementierungen des allgemeinen Daten-Layers verwendet werden. Das Daten-Layer-Schema von ContextHub wird im Tool standardmäßig geladen und bietet eine einfache Integration mit Adobe Experience Manager (AEM)-ContextHub-Speichern. Beispiele sowohl für die ContextHub-Standard-Implementierung als auch eine allgemeine benutzerdefinierte Daten-Layer-Implementierung sind enthalten.

Voraussetzungen

Möchten Sie das ContextHub-Tool nutzen, müssen zunächst folgende Anforderungen erfüllt sein:
  • eine bestehende ContextHub- oder Javascript-Objektdatenschicht auf einer Website
  • ein JSON-Schema, mit dem die auf der Website verwendete Datenschicht ordnungsgemäß definiert wird
  • Verwendung einer aktiven DTM-Webeigenschaft auf der Website

AEM ContextHub tool components

Mit dem AEM ContextHub-Tool wird DTM um zwei Funktionen erweitert:
  • Datenschichtdefinition
  • AEM ContextHub-Datenschichttyp
Zudem wurde ein neuer Ereignistyp namens dataelementchanged hinzugefügt, der die Datenschichtüberwachung vereinfachen soll. Dieser Ereignistyp kann vom AEM ContextHub-Tool unabhängig verwendet werden.
Jeder Funktionsbereich entspricht einem der Konfigurationsschritte, die in den beiden unten stehenden Beispielen beschrieben werden.

Data element monitoring

The new dataelementchanged event type monitors any changes that occur to a specific data element value during a page view. Folgende Faktoren sollten bei der Verwendung dieses Ereignistyps jedoch beachtet werden.
  1. Das Datenelement muss ein einfach zuzuweisender JavaScript-Wert sein. Komplexe Werte wie Arrays und Objekte, die in einem objektspezifischen Skript zurückgegeben werden, funktionieren nicht ordnungsgemäß. Cookies, CSSl-Selektoren und URL-Parameter führen ebenfalls zu unerwarteten Ergebnissen oder funktionieren gar nicht. Einfache Werte wie Zeichenfolgen und Ganzzahlen funktionieren jedoch problemlos.
  2. Legen Sie keine zu große Anzahl von dataelementchanged -Ereignissen fest, die auf einer einzigen Seite referenziert werden. Zwar ist die Überwachung sehr effizient, doch kann sich eine große Anzahl von Bewertungen negativ auf die Leistung der Seite auswirken.
  3. Der Elementtyp dataelementchanged funktioniert nur auf der aktuellen Seitenansicht, da es sich um ein DOM-basiertes Überwachungssystem handelt.
  4. Die Datenelementüberwachung fragt die Werte ab.

ContextHub data layer default example

Example using the AEM ContextHub tool that references and uses the default ContextHub data layer within the Dynamic Tag Management configuration.
Der ContextHub-Daten-Layer wird auf einer Adobe Experience Manager (AEM)-Test-Website geladen. ContextHub kann jedoch unabhängig von AEM verwendet werden. Wenden Sie sich an Ihren Adobe-Support-Mitarbeiter, wenn Sie ContextHub unabhängig von AEM verwenden möchten.
Auf sämtliche ContextHub-Stores kann über die Browser-Konsole zugegriffen werden.
Die DTM-Datenschichtanzeige wird vor allen anderen DTM-Funktionen geladen. Die Beispiele stellen die Datenschicht somit nicht über DTM bereit, auch wenn dies möglich wäre. Stattdessen hängen diese von der servergenerierten Datenschicht ab. Falls nicht, können Javascript-Warnmeldungen auftreten, da bestimmte Datenschichtwerte möglicherweise nicht verfügbar sind.

Definieren der Datenschicht

Der erste Schritt für die Konfigurierung des AEM ContextHub-Tools ist dessen Hinzufügen zu einer Webeigenschaft.
Derzeit ist pro DTM-Webeigenschaft nur ein AEM contexthub-Tool zulässig.
  1. Click <Web Property Name> > Overview > Add a Tool > AEM ContextHub .
  2. Geben Sie einen beschreibenden Namen für das Werkzeug an.
  3. Click Create Tool to display the AEM ContextHub Settings page.
  4. Select Use Default ContextHub Data Layer to leverage the standard ContextHub stores.
    Oder
    Select Customize ContextHub Data Layer to modify the schema. Die personalisierte Option muss verwendet werden, wenn eine Nicht-Standarddatenschicht von ContextHub für die Implementierung genutzt wird.
    Mit dem Standard-Datenschichtstamm wird der Zugriff auf alle ContextHub-Stores ermöglicht. Aufgrund der dynamischen Eigenschaften der ContextHub-Stores sind in dieser Datenschicht weitere Funktionen verfügbar, die in der einfachen Javascript-Objektreferenz im allgemeinen Datenschichtansatz nicht verfügbar sind.
  5. (Conditional) To use a custom data layer, click Open Editor to view the data layer schema definition. If the custom data layer is a modification of the ContextHub schema be sure to add “ContextHub” in the Data Layer Root field.
    Im Editor finden sich die Daten des ContextHub-Schemas.
    1. Bearbeiten Sie das Schema nach Wunsch so, dass es dem Datenschichtschema der Site entspricht.
    2. Click Save and Close to save the schema and close the editor.
  6. Klicken Sie auf Save Changes .

Datenelement Datenschicht erstellen

  1. In the web property, click the Rules tab, then click Data Elements in the left menu.
  2. Klicken Sie auf Create New Data Element .
  3. Geben Sie einen Namen für das Datenelement ein. In diesem Beispiel wurde das Datenelement mit „total_price“ betitelt.
  4. From the Type drop-down list, select AEM ContextHub .
    Den Namen des AEM ContextHub-Tools finden Sie unter „Quelle“, in der aktuellen Version kann jedoch nur jeweils ein ContextHub-Tool festgelegt werden.
  5. Weisen Sie das Datenelement einer Datenschicht zu, indem Sie in der Objektauswahl einen Pfad angeben.
    Wählen Sie in diesem Beispiel das Objekt cart.totalPriceFloat aus.
  6. Klicken Sie auf Save Data Element .

ereignisbasierte Regel erstellen, die den Datenelementänderungsereignistyp verwendet

  1. In the web property, click the Rules tab, then click Event Based Rules in the left menu.
  2. Klicken Sie auf Create New Rule .
  3. Geben Sie einen Namen für die Regel ein. In diesem Beispiel wurde die Regel mit „cart_total_update“ betitelt.
  4. Klappen Sie den Bedingungsbereich aus.
  5. From the Event Type drop-down list, select dataelementchanged .
  6. Wählen Sie das Datenelement aus, das im vorangegangenen Schritt erstellt wurde (total_price).
  7. Under Rule Conditions , select Data Element Value from the drop-down list, then click Add Criteria .
  8. Wählen Sie das Datenelement aus, das im vorangegangenen Schritt erstellt wurde (total_price), und weisen Sie einen Wert zu, der die Regel auslösen soll.
    In this example, a regular expression is used to evaluate anything greater than or equal to 50: ^([5-9]\d|[1-9]\d{2,})$
    Wenn Datenelementwerte auf diese Weise als Bedingungen verwendet werden, ist es wichtig, dass die Datenelementeinstellungen in der Übereinstimmung berücksichtigt werden. For example, selecting the Force Lowercase Value option in the data element settings would convert the value to all lowercase before evaluation. Da von Javascript Groß- und Kleinschreibung berücksichtigt werden, ist der Wert „test“ nicht gleich dem Wert „Test“ und die Bedingung wird nicht wie erwartet ausgelöst.
  9. Expand the Javascript / Third Party Tags section.
  10. Klicken Sie auf Add New Script .
  11. Fügen Sie nicht sequenzielles Javascript hinzu, das eine Benachrichtigung ausgibt, wenn die Regel ausgelöst wird. Nennen Sie die Regel „big_money_alert“ und fügen Sie anschließend ein Warnskript hinzu, das dem hier gezeigten Beispiel entspricht:
    alert('$' + _satellite.getVar(‘total_price’) + ‘ is big money!’);
  12. Click Save Code , then click Save Rule .

Validieren Sie die Implementierung

Validieren Sie die Implementierung auf einer Website, auf der DTM aktiviert ist und die oben genannte Webeigenschaft ausgeführt wird.
  • Prüfen Sie in der Entwicklerkonsole, ob die Datenschicht ( ContextHub ) vorhanden ist.
  • Ändern Sie das überwachte Datenschichtobjekt in einen Wert, der NICHT der oben genannten Bedingung entspricht: ContextHub.setItem('/store/cart/totalPriceFloat','5'); .
  • Ändern Sie das überwachte Datenschichtobjekt in einen Wert, der der oben genannten Bedingung ENTSPRICHT: ContextHub.setItem('/store/cart/totalPriceFloat','52'); .
  • In der Beispielimplementierung sollte ein Warndialog geöffnet werden:
Ist das DTM-Debugging aktiviert, sollte die fehlgeschlagene Bewertung in der Konsole auftauchen.

Custom data layer example

Example using the AEM ContextHub tool that references and uses a custom, non-ContextHub data layer within the Dynamic Tag Management configuration.
The example data layer ( _dl ) will be loaded on the test web page as a Javascript object definition in the <head/> section of the page before the DTM embed code is referenced.
<head> 
    <script> 
        window._dl = { 
            page: { 
                name: 'homepage', 
                quantity: 1, 
                friend: 'No one' } 
        } 
    </script> 
    <script src="//assets.adobedtm.com/satelliteLib-*.js"></script> 
</head> 

Die DTM-Datenschichtüberwachung (siehe unten) wird vor allen anderen DTM-Funktionen gestartet. Somit werden die Datenschichten in den Beispielen nicht über DTM bereitgestellt. Falls nicht, können Javascript-Warnmeldungen auftreten, da bestimmte Datenschichtwerte möglicherweise nicht verfügbar sind.

Definieren der Datenschicht

Der erste Schritt für die Konfigurierung des AEM ContextHub-Tools ist dessen Hinzufügen zu einer Webeigenschaft.
Derzeit ist pro DTM-Webeigenschaft nur ein AEM contexthub-Tool zulässig.
  1. Click <Web Property Name> > Overview > Add a Tool > AEM ContextHub .
  2. Geben Sie einen beschreibenden Namen für das Werkzeug an.
  3. Click Create Tool to display the AEM ContextHub Settings page.
  4. Select Customize ContextHub Data Layer to modify the schema.
    A root Javascript object name must be added to the Data Layer Root field for non-ContextHub data layers. The _dl definition is used in the generic examples in this section.
  5. Click Open Editor to view the data layer schema definition.
    Im Editor finden sich standardmäßig die Daten des ContextHub-Schemas.
  6. Löschen Sie das Standardschema und fügen Sie das Datenschichtschema der Site ein.
    Das folgende Beispiel eines nicht aus ContextHub stammenden Schemas wird in den allgemeinen Beispielen verwendet:
    { 
      "$schema": "https://json-schema.org/draft-04/schema#", 
      "type": "object", 
      "properties": { 
        "page": { 
          "type": "object", 
          "properties": { 
            "name": { 
              "type": "string" 
            }, 
            "quantity": { 
              "type": "number" 
            }, 
            "friend": { 
              "type": "string" 
            } 
          }, 
          "required": [ 
            "name", 
            "quantity", 
            "friend" 
          ] 
        } 
       }, 
      "required": [ 
        "page" 
      ] 
    } 
    
    
  7. Click Save and Close to save the schema and close the editor, then click Save Changes .

Datenelement Datenschicht erstellen

  1. In the web property, click the Rules tab, then click Data Elements in the left menu.
  2. Klicken Sie auf Create New Data Element .
  3. Geben Sie einen Namen für das Datenelement ein. In diesem Beispiel wurde das Datenelement mit „my_friend“ betitelt.
  4. From the Type drop-down list, select AEM ContextHub .
    Den Namen des AEM ContextHub-Tools finden Sie unter „Quelle“, in der aktuellen Version kann jedoch nur jeweils ein ContextHub-Tool festgelegt werden.
  5. Weisen Sie das Datenelement einer Datenschicht zu, indem Sie in der Objektauswahl einen Pfad angeben.
    Wählen Sie in diesem Beispiel das Objekt page.friend aus.
  6. Klicken Sie auf Save Data Element .

ereignisbasierte Regel erstellen, die den Datenelementänderungsereignistyp verwendet

  1. In the web property, click the Rules tab, then click Event Based Rules in the left menu.
  2. Klicken Sie auf Create New Rule .
  3. Geben Sie einen Namen für die Regel ein. In diesem Beispiel wurde die Regel mit „find_a_friend“ betitelt.
  4. Klappen Sie den Bedingungsbereich aus.
  5. From the Event Type drop-down list, select dataelementchanged .
  6. Wählen Sie das Datenelement aus, das im vorangegangenen Schritt erstellt wurde (my_friend).
  7. Under Rule Conditions , select Data Element Value from the drop-down list, then click Add Criteria .
  8. Wählen Sie das Datenelement aus, das im vorangegangenen Schritt erstellt wurde (my_friend), und weisen Sie einen Wert zu, der die Regel auslösen soll.
    Legen Sie für dieses Beispiel den Namen „Carl“ als Wert fest.
    Wenn Datenelementwerte auf diese Weise als Bedingungen verwendet werden, ist es wichtig, dass die Datenelementeinstellungen in der Übereinstimmung berücksichtigt werden. For example, selecting the Force Lowercase Value option in the data element settings would convert the value to all lowercase before evaluation. Da von Javascript Groß- und Kleinschreibung berücksichtigt werden, ist der Wert „test“ nicht gleich dem Wert „Test“ und die Bedingung wird nicht wie erwartet ausgelöst.
  9. Expand the Javascript / Third Party Tags section.
  10. Klicken Sie auf Add New Script .
  11. Fügen Sie nicht sequenzielles Javascript hinzu, das eine Benachrichtigung ausgibt, wenn die Regel ausgelöst wird. Nennen Sie die Regel „found_my_friend“ und fügen Sie anschließend ein Warnskript hinzu, das dem hier gezeigten Beispiel entspricht:
    alert(_satellite.getVar(‘my_friend’) + ‘ is my friend.’);
  12. Click Save Code , then click Save Rule .

Validieren Sie die Implementierung

Validieren Sie die Implementierung auf einer Website, auf der DTM aktiviert ist und die oben genannte Webeigenschaft ausgeführt wird.
  • Prüfen Sie in der Entwicklerkonsole, ob die Datenschicht ( _dl ) vorhanden ist.
  • Ändern Sie das überwachte Datenschichtobjekt auf den Wert, der oben als Bedingung festgelegt wurde ( _dl.page.friend = ‘Carl’ ).
    • In der Beispielimplementierung sollte ein Warndialog geöffnet werden:
  • Change the object to a different value ( _dl.page.friend = ‘Bob’ ) and no alert should display.
    Ist das DTM-Debugging aktiviert, sollte die fehlgeschlagene Bewertung in der Konsole auftauchen.
  • Change the object to a lowercase value of the match ( _dl.page.friend = ‘carl’ ) and no alert should display.
  • Change the object to the correct case value of the match ( _dl.page.friend = ‘Carl’ ) and the alert should once again display.