Show Menu
主题×

Adobe Experience Manager ContextHub tool

使用 AEM ContextHub 工具将动态标签管理与 Adobe Experience Manager (AEM) ContextHub(AEM 的数据层版本)集成。您也可以使用此工具将 DTM 与任意数据层集成,即使是不使用 AEM 的网站。
DTM 客户经常使用数据元素映射至其网站的数据层。例如,数据层可能包括用户正在查看特定产品的信息或者已将物品放置到购物车中的信息。DTM 可以通过多种方式在规则条件和操作中使用此信息。包括将数据发送到 Analytics 以获取报告,或者发送到 Target 以向用户显示自定义内容。
AEM ContextHub 工具可以解决与数据层相关的众多问题。有些数据层不会在页面顶部加载。有些数据层则是动态或异步的,会随着页面更改而频繁更改。以前,这两个问题会造成 DTM 无法有效发送数据或触发操作。
AEM ContextHub 工具消除了编写自定义代码的需要,这些代码可以频繁检查以确定数据层是否更改、数据层是否在页面顶部之外的位置加载,或者数据层是否随着页面的更改而进行了修改。
举个例子,假设客户将某个物品放置在购物车中,然后移除了该物品。如果在数据层发生更改时页面没有刷新,则DTM将不会识别更改,而是没有自定义代码添加。AEM ContexHub 工具包含轮询引擎,将每秒检查一次以确定是否存在更改。
由于 DTM 现在可以通过数据层主动填充数据元素,因此用户还可以将 AEM ContextHub 数据元素与先前发布的条件(如数据元素值)结合使用。这允许用户在页面加载时管理数据层值,或者在数据层由于用户交互而存在更改的情况下,将数据元素值条件与 dataelementchanged 事件相结合。
配置此工具时,您可以使用默认设置与 AEM ContextHub 集成,也可以自定义结构以用于任意网站。
  1. Click <Web Property Name> > Overview > Add a Tool > AEM ContextHub .
  2. 为工具指定描述性名称。
    This name displays on the Overview tab under Installed Tools.
  3. Click Create Tool to display the AEM ContextHub Settings page.
  4. 填写以下字段:
    元素
    描述
    使用默认 ContextHub 数据层
    使用 AEM ContextHub 格式。选定此选项后,DTM 将为此集成引用默认 ContextHub 架构。如果您更改了 ContextHub 架构,或者希望使用不同的数据层,请使用自定义选项。
    自定义 ContextHub 数据层
    使用自定义格式映射到任意网站的数据层结构,即使该网站不使用 AEM。您可以使用此选项编辑数据层架构。默认情况下,它将使用默认 ContextHub 数据层填充编辑窗口,您可以对其进行更改或用代码完全替换它。
    打开编辑器
    如果您选择了自定义 ContextHub 数据层选项,则可以使用编辑器插入自定义代码。
    添加注释
    添加有关该实施的任何注释。
  5. 单击 Save Changes .

Data layer management using the ContextHub tool

动态标记管理 (DTM) AEM ContextHub 工具可用于实施 ContextHub 和通用数据层。默认情况下,该工具中载入了 ContextHub 数据层架构,并提供了一个与 Adobe Experience Manager (AEM) ContextHub 存储的简单集成。提供了涵盖默认 ContextHub 实施和自定义通用数据层实施的示例。

先决条件

要使用 ContextHub 工具,必须满足以下先决条件:
  • 网站上已存在 ContextHub 或 Javascript 对象数据层。
  • JSON 架构已正确定义网站中使用的数据层。
  • 网站上使用的 DTM Web 属性处于活动状态。

AEM ContextHub tool components

AEM ContextHub 工具为 DTM 增加了两项功能:
  • 数据层定义
  • AEM ContextHub 数据层类型
此外,为了实施数据层监控,还添加了一个称为 dataelementchanged 的新事件类型。此事件类型可独立于 AEM ContextHub 工具使用。
每个功能区域分别对应于以下两个示例中介绍的一个配置步骤。

Data element monitoring

The new dataelementchanged event type monitors any changes that occur to a specific data element value during a page view. 使用此事件类型时,应注意以下事项。
  1. 数据元素必须映射到简单 Javascript 值。数据元素自定义脚本中返回的复杂值(如数组和对象)将无法正确工作。Cookie、CSS 选择器和 URL 参数也会产生意外结果,可能根本无法工作。字符串和整数等简单值可正常工作。
  2. 对于在单个页面上引用的 dataelementchanged 事件类型数量,应持保守态度。尽管监控非常有效,但大量计算可能会影响页面性能。
  3. dataelementchanged 事件类型仅在当前的页面查看中有效,因为它是基于 DOM 的监控系统。
  4. 数据元素监控会轮询各个值。

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.
将在一个测试 Adobe Experience Manager (AEM) 网站上载入 ContextHub 数据层,但是,您可以脱离 AEM 而单独使用 ContextHub。如果要脱离 AEM 而单独使用 ContextHub,请与 Adobe 代表联系。
所有 ContextHub 库均可从浏览器控制台引用。
DTM 数据层监控器会在任何其他 DTM 起作用之前启动,所以即使可行,示例也不会通过 DTM 部署数据层,而是依赖服务器生成的数据层。否则可能发生 Javascript 警告,因为某些数据层值可能不可用。

定义数据层

配置 AEM ContextHub 工具的第一步是将其添加到 Web 属性。
此时,每个DTM Web属性仅允许一个AEM ContextHub工具。
  1. Click <Web Property Name> > Overview > Add a Tool > AEM ContextHub .
  2. 为工具指定描述性名称。
  3. Click Create Tool to display the AEM ContextHub Settings page.
  4. Select Use Default ContextHub Data Layer to leverage the standard ContextHub stores.
    Select Customize ContextHub Data Layer to modify the schema. 如果在实施中使用了非默认 ContextHub 数据层,则需要使用自定义选项。
    默认数据层根可启用对所有 ContextHub 库的访问。考虑到 ContextHub 库的动态特性,通用数据层方法所使用的简单 Javascript 对象引用无法使用可用于此数据层的一些额外功能。
  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.
    编辑器中将填充默认 ContextHub 架构。
    1. 请根据需要修改该架构,使其与网站数据层架构相匹配。
    2. Click Save and Close to save the schema and close the editor.
  6. 单击 Save Changes .

创建数据层数据元素

  1. In the web property, click the Rules tab, then click Data Elements in the left menu.
  2. 单击 Create New Data Element .
  3. 指定数据元素的名称。在此示例中,将数据元素命名为“total_price”。
  4. From the Type drop-down list, select AEM ContextHub .
    AEM ContextHub 工具的名称将填充在“源”中,但只能在当前版本中定义一个 AEM ContextHub 工具。
  5. 通过在“对象”选择器中选择一个路径,将数据元素映射至数据层中。
    在本示例中,请选择 cart.totalPriceFloat 对象。
  6. 单击 Save Data Element .

创建一个基于事件元素更改事件类型的基于事件的规则

  1. In the web property, click the Rules tab, then click Event Based Rules in the left menu.
  2. 单击 Create New Rule .
  3. 命名规则。在本示例中,请将规则命名为“cart_total_update”。
  4. 展开“条件”部分。
  5. From the Event Type drop-down list, select dataelementchanged .
  6. 选择在上一节中创建的数据元素 (total_price)。
  7. Under Rule Conditions , select Data Element Value from the drop-down list, then click Add Criteria .
  8. 选择在上一节中创建的数据元素 (total_price) 并分配一个可导致规则触发的值。
    In this example, a regular expression is used to evaluate anything greater than or equal to 50: ^([5-9]\d|[1-9]\d{2,})$
    如果以这种方式使用数据元素值,则务必在匹配项中考虑数据元素设置。For example, selecting the Force Lowercase Value option in the data element settings would convert the value to all lowercase before evaluation. 因为 Javascript 会区分大小写,所以“test”和“Test”是不同的,条件也不会照预期触发。
  9. Expand the Javascript / Third Party Tags section.
  10. 单击 Add New Script .
  11. 添加可在规则触发时提供通知的非连续性 Javascript。将规则命名为“big_money_alert”,然后添加类似以下示例的警报脚本:
    alert('$' + _satellite.getVar(‘total_price’) + ‘ is big money!’);
  12. Click Save Code , then click Save Rule .

验证实施

在运行以上 Web 属性并启用 DTM 的网站上验证实施。
  • 在开发人员控制台中检查是否存在数据层 ( ContextHub )。
  • 将受监控的数据层对象更改为与以上条件不匹配的值: ContextHub.setItem('/store/cart/totalPriceFloat','5');
  • 将受监控的数据层对象更改为与以上条件匹配的值: ContextHub.setItem('/store/cart/totalPriceFloat','52');
  • 在示例实施中应出现以下警报框:
如果开启了 DTM 调试,则失败的评估应显示在控制台中。

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> 

DTM 数据层监控器(如下所示)会在任何其他 DTM 起作用之前启动,所以这些示例不会通过 DTM 部署数据层。否则可能发生 Javascript 警告,因为某些数据层值可能不可用。

定义数据层

配置 AEM ContextHub 工具的第一步是将其添加到 Web 属性。
此时,每个DTM Web属性仅允许一个AEM ContextHub工具。
  1. Click <Web Property Name> > Overview > Add a Tool > AEM ContextHub .
  2. 为工具指定描述性名称。
  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. _dl 此定义用于本节中的一般示例。
  5. Click Open Editor to view the data layer schema definition.
    默认情况下,编辑器中将填充默认 ContextHub 架构。
  6. 删除默认架构并粘贴站点数据层架构。
    通用示例使用以下非 ContextHub 样本架构:
    { 
      "$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 .

创建数据层数据元素

  1. In the web property, click the Rules tab, then click Data Elements in the left menu.
  2. 单击 Create New Data Element .
  3. 指定数据元素的名称。在本示例中,将数据元素命名为“my_friend”。
  4. From the Type drop-down list, select AEM ContextHub .
    AEM ContextHub 工具的名称将填充在“源”中,但只能在当前版本中定义一个 AEM ContextHub 工具。
  5. 通过在“对象”选择器中选择一个路径,将数据元素映射至数据层中。
    在本示例中,请选择 page.friend 对象。
  6. 单击 Save Data Element .

创建一个基于事件元素更改事件类型的基于事件的规则

  1. In the web property, click the Rules tab, then click Event Based Rules in the left menu.
  2. 单击 Create New Rule .
  3. 命名规则。在本示例中,将规则命名为“find_a_friend”。
  4. 展开“条件”部分。
  5. From the Event Type drop-down list, select dataelementchanged .
  6. 选择在上一节中创建的数据元素 (my_friend)。
  7. Under Rule Conditions , select Data Element Value from the drop-down list, then click Add Criteria .
  8. 选择在上一节中创建的数据元素 (my_friend) 并分配一个可导致规则触发的值。
    在本示例中,使用“Carl”作为值。
    如果以这种方式使用数据元素值,则务必在匹配项中考虑数据元素设置。For example, selecting the Force Lowercase Value option in the data element settings would convert the value to all lowercase before evaluation. 因为 Javascript 会区分大小写,所以“test”和“Test”是不同的,条件也不会照预期触发。
  9. Expand the Javascript / Third Party Tags section.
  10. 单击 Add New Script .
  11. 添加可在规则触发时提供通知的非连续性 Javascript。将规则命名为“found_my_friend”,然后添加类似以下示例的警报脚本:
    alert(_satellite.getVar(‘my_friend’) + ‘ is my friend.’);
  12. Click Save Code , then click Save Rule .

验证实施

在运行以上 Web 属性并启用 DTM 的网站上验证实施。
  • 在开发人员控制台中检查是否存在数据层 ( _dl )。
  • Change the data layer object that is being monitored to the value that was set in the condition above ( _dl.page.friend = ‘Carl’ ).
    • 在示例实施中应出现一个警报框:
  • Change the object to a different value ( _dl.page.friend = ‘Bob’ ) and no alert should display.
    如果开启了 DTM 调试,则失败的评估应显示在控制台中。
  • 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.