[集成]{class="badge positive"}
集成AEM Sites和Adobe Analytics
了解如何使用Adobe客户端数据层与AEM Sites核心组件的内置功能将AEM和Adobe Analytics与Adobe Analytics标记扩展集成,以收集有关Adobe Experience Manager Sites中某个页面的数据。 Experience Platform🔗中的标记和Adobe Analytics扩展用于创建规则以将页面数据发送到Adobe Analytics。
您即将构建的内容 what-build
在本教程中,您将根据Adobe客户端数据层中的事件触发标记规则。 此外,为应触发规则的时间添加条件,然后将AEM页面的 Page Name 和 Page Template 值发送到Adobe Analytics。
目标 objective
- 在tag属性中创建事件驱动规则,以从数据层捕获更改
- 将页面数据层属性映射到标记属性中的数据元素
- 使用页面查看信标收集页面数据并将这些数据发送到Adobe Analytics中
先决条件
需要以下各项:
- Experience Platform中的 标记属性
- Adobe Analytics 测试/开发报表包ID和跟踪服务器。 请参阅以下有关创建报表包的文档。
- Experience Platform调试器浏览器扩展。 从Chrome浏览器捕获了本教程中的屏幕截图。
- (可选)启用了Adobe客户端数据层的AEM站点。 本教程使用面向公众的WKND网站,但欢迎您使用自己的网站。
切换WKND站点的标记环境
WKND是面向公众的站点,它基于开放源代码项目以及用于AEM实现的教程而构建。
您可以使用Experience Platform调试器 将实时WKND站点切换到 您的 标记属性,而不是设置AEM环境并安装WKND代码库。 但是,如果您自己的AEM站点已经启用了Adobe客户端数据层,则可以使用它。
验证WKND站点上的Adobe客户端数据层
WKND参考项目是使用AEM核心组件生成的,默认情况下已启用Adobe客户端数据层。 接下来,验证是否已启用Adobe客户端数据层。
-
导航到WKND站点。
-
打开浏览器的开发人员工具并导航到 控制台。 运行以下命令:
code language-js adobeDataLayer.getState();
上述代码返回Adobe客户端数据层的当前状态。
-
展开响应并检查
page
条目。 您应该会看到类似以下的数据架构:code language-json page-2eee4f8914: @type: "wknd/components/page" dc:description: WKND is a collective of outdoors, music, crafts, adventure sports, and travel enthusiasts that want to share our experiences, connections, and expertise with the world. dc:title: "WKND Adventures and Travel" repo:modifyDate: "2020-08-31T21:02:21Z" repo:path: "/content/wknd/us/en.html" xdm:language: "en-US" xdm:tags: ["Attract"] xdm:template: "/conf/wknd/settings/wcm/templates/landing-page-template"
若要将页面数据发送到Adobe Analytics,请使用数据层的
dc:title
、xdm:language
和xdm:template
等标准属性。有关详细信息,请查看核心组件数据架构中的页面架构。
note note NOTE 如果您没有看到 adobeDataLayer
JavaScript对象? 确保您的网站上已启用Adobe客户端数据层。
创建Page Loaded规则
Adobe客户端数据层是 事件驱动的 数据层。 加载AEM Page数据层时,它将触发cmp:show
事件。 创建一个规则,该规则在从页面数据层触发cmp:show
事件时触发。
-
导航到Experience Platform并进入与AEM站点集成的Tag属性。
-
导航到标记属性UI中的 规则 部分,然后单击 创建新规则。
-
将规则 命名为已加载的页面。
-
在 事件 子部分中,单击 添加 以打开 事件配置 向导。
-
对于 事件类型 字段,请选择 自定义代码。
-
在主面板中单击 打开编辑器,然后输入以下代码片段:
code language-js var pageShownEventHandler = function(evt) { // defensive coding to avoid a null pointer exception if(evt.hasOwnProperty("eventInfo") && evt.eventInfo.hasOwnProperty("path")) { //trigger the Tag Rule and pass event console.log("cmp:show event: " + evt.eventInfo.path); var event = { //include the path of the component that triggered the event path: evt.eventInfo.path, //get the state of the component that triggered the event component: window.adobeDataLayer.getState(evt.eventInfo.path) }; //Trigger the Tag Rule, passing in the new `event` object // the `event` obj can now be referenced by the reserved name `event` by other Tag data elements // i.e `event.component['someKey']` trigger(event); } } //set the namespace to avoid a potential race condition window.adobeDataLayer = window.adobeDataLayer || []; //push the event listener for cmp:show into the data layer window.adobeDataLayer.push(function (dl) { //add event listener for `cmp:show` and callback to the `pageShownEventHandler` function dl.addEventListener("cmp:show", pageShownEventHandler); });
上述代码段通过将函数推入数据层来添加事件侦听器。 触发
cmp:show
事件时,将调用pageShownEventHandler
函数。 在此函数中,添加了一些健全性检查,并为触发事件的组件使用数据层🔗的最新状态构造了一个新event
。最后调用
trigger(event)
函数。trigger()
函数是标记属性中的保留名称,它会 触发规则。event
对象作为参数传递,而该参数又由标记属性中的另一个保留名称公开。 标记属性中的数据元素现在可以使用代码段(如event.component['someKey']
)引用各种属性。 -
保存更改。
-
接下来,在 操作 下,单击 添加 以打开 操作配置 向导。
-
对于 操作类型 字段,请选择 自定义代码。
-
在主面板中单击 打开编辑器,然后输入以下代码片段:
code language-js console.log("Page Loaded "); console.log("Page name: " + event.component['dc:title']); console.log("Page type: " + event.component['@type']); console.log("Page template: " + event.component['xdm:template']);
event
对象是从自定义事件中调用的trigger()
方法传递的。 此处,component
是从自定义事件中的数据层getState
派生的当前页面。 -
保存更改并在标记属性中运行内部版本,以将代码提升到AEM网站上使用的环境。
note note NOTE 使用Adobe Experience Platform Debugger将嵌入代码切换到 开发 环境可能很有用。 -
导航到您的AEM站点,然后打开开发人员工具以查看控制台。 刷新页面,您应该会看到控制台消息已被记录:
创建数据元素
接下来,创建多个数据元素以从Adobe客户端数据层捕获不同的值。 如上一个练习所示,可以直接通过自定义代码访问数据层的属性。 使用数据元素的优势在于它们可以在标记规则中重用。
数据元素映射到@type
、dc:title
和xdm:template
属性。
组件资源类型
-
导航到Experience Platform并进入与AEM站点集成的Tag属性。
-
导航到 数据元素 部分,然后单击 创建新数据元素。
-
对于 Name 字段,请输入 组件资源类型。
-
对于 数据元素类型 字段,请选择 自定义代码。
-
单击 打开编辑器 按钮,然后在自定义代码编辑器中输入以下内容:
code language-js if(event && event.component && event.component.hasOwnProperty('@type')) { return event.component['@type']; }
-
保存更改。
note note NOTE 请注意, event
对象已变得可用,并根据在标记属性中触发 规则 的事件设定了作用域。 在数据元素在规则中为 引用 之前,不会设置数据元素的值。 因此,可以安全地在诸如上一步骤 中创建的 Page Loaded 规则内使用此数据元素,但 在其他上下文中使用是不安全的。
页面名称
-
单击 添加数据元素 按钮
-
对于 Name 字段,请输入 Page Name。
-
对于 数据元素类型 字段,请选择 自定义代码。
-
单击 打开编辑器 按钮,然后在自定义代码编辑器中输入以下内容:
code language-js if(event && event.component && event.component.hasOwnProperty('dc:title')) { return event.component['dc:title']; }
-
保存更改。
页面模板
-
单击 添加数据元素 按钮
-
对于 Name 字段,请输入 Page Template。
-
对于 数据元素类型 字段,请选择 自定义代码。
-
单击 打开编辑器 按钮,然后在自定义代码编辑器中输入以下内容:
code language-js if(event && event.component && event.component.hasOwnProperty('xdm:template')) { return event.component['xdm:template']; }
-
保存更改。
-
规则中现在应包含三个数据元素:
规则 中的数据元素
添加Analytics扩展
接下来,将Analytics扩展添加到您的标记属性,以将数据发送到报表包中。
-
导航到Experience Platform并进入与AEM站点集成的Tag属性。
-
转到 扩展 > 目录
-
找到 Adobe Analytics 扩展并单击 安装
-
在 库管理 > 报表包 下,输入要在每个标记环境中使用的报表包ID。
note note NOTE 在本教程中,您可以为所有环境使用一个报表包,但在现实工作中,您会希望为不同的环境使用不同的报表包,如下图所示 note tip TIP 我们建议使用 为我管理库选项 作为库管理设置,因为这样可以更加轻松地使 AppMeasurement.js
库保持最新。 -
选中该框以启用 使用Activity Map。
-
在 常规 > 跟踪服务器 下,输入您的跟踪服务器,例如
tmd.sc.omtrdc.net
。 如果您的网站支持https://
,请输入SSL跟踪服务器 -
单击 保存 以保存更改。
向Page Loaded规则添加条件
接下来,更新 Page Loaded 规则以使用 组件资源类型 数据元素,以确保该规则仅在cmp:show
事件针对 Page 时触发。 其他组件可以触发cmp:show
事件,例如,轮盘组件会在幻灯片更改时触发该事件。 因此,请务必为此规则添加条件。
-
在标记属性UI中,导航到之前创建的 已加载页面 规则。
-
在 条件 下,单击 添加 以打开 条件配置 向导。
-
对于 条件类型 字段,请选择 值比较 选项。
-
将表单字段中的第一个值设置为
%Component Resource Type%
。 您可以使用数据元素图标 来选择 组件资源类型 数据元素。 将比较器保留设置为Equals
。 -
将第二个值设置为
wknd/components/page
。页面加载规则的
note note NOTE 可以将此条件添加到自定义代码函数中,该函数用于侦听在教程中前面创建的 cmp:show
事件。 但是,将其添加到UI中,可让可能需要更改规则的其他用户更清楚地查看这些内容。 此外,我们还能够使用数据元素! -
保存更改。
设置Analytics变量并触发页面查看信标
当前 Page Loaded 规则只输出控制台语句。 接下来,使用数据元素和Analytics扩展将Analytics变量设置为 Page Loaded 规则中的 操作。 我们还设置了额外的操作来触发 页面查看信标,并将收集的数据发送到Adobe Analytics。
-
在Page Loaded规则中,删除 Core - Custom Code 操作(控制台语句):
-
在“操作”子部分下,单击 添加 以添加新操作。
-
将 扩展 类型设置为 Adobe Analytics 并将 操作类型 设置为 设置变量
-
在主面板中,选择一个可用的 eVar,并将其设置为数据元素 页面模板 的值。 使用数据元素图标 选择 页面模板 元素。
-
向下滚动,在 其他设置 下,将 页面名称 设置为数据元素 页面名称:
-
保存更改。
-
接下来,通过点按 加上 图标,在 Adobe Analytics — 设置变量 的右侧添加一个额外的操作:
-
将 扩展 类型设置为 Adobe Analytics,并将 操作类型 设置为 发送信标。 由于此操作被视为页面查看,因此将默认跟踪保留设置为
s.t()
。 -
保存更改。 Page Loaded 规则现在应具有以下配置:
- 1。 收听
cmp:show
事件。 - 2。 检查事件是否由页面触发。
- 3。 为 页面名称 和 页面模板 设置Analytics变量
- 4。 发送Analytics页面查看信标
- 1。 收听
-
保存所有更改并构建标记库,提升到适当的环境。
验证页面查看信标和Analytics调用
现在 Page Loaded 规则发送了Analytics信标,您应该能够使用Experience Platform调试器查看Analytics跟踪变量。
-
在浏览器中打开WKND网站。
-
单击Debugger图标 以打开Experience PlatformDebugger。
-
如前面所述,确保Debugger将标记属性映射到 您的 开发环境,并检查 控制台日志记录。
-
打开Analytics菜单,并确认已将报表包设置为 您的 报表包。 此外,还应填充页面名称:
-
向下滚动并展开 网络请求。 您应该能够找到为 页面模板 设置的 evar:
-
返回浏览器并打开开发人员控制台。 单击页面顶部的 轮播。
-
在浏览器控制台中观察控制台语句:
这是因为轮播确实触发了
cmp:show
事件 ,但由于我们对 组件资源类型 的检查,,因此没有触发任何事件。note note NOTE 如果未看到任何控制台日志,请确保在Experience Platform调试器的 Experience Platform标记 下选中 控制台日志记录。 -
导航到类似Western Australia的文章页面。 观察页面名称和模板类型的变化。
恭喜!
您刚刚在Experience Platform中使用事件驱动的Adobe客户端数据层和标记从AEM Site中收集数据页面数据并将这些数据发送到Adobe Analytics。
后续步骤
请查看以下教程,了解如何使用事件驱动的Adobe客户端数据层来跟踪Adobe Experience Manager站点上特定组件的单击情况。