了解如何加载参数并将参数传递到页面请求,以及如何使用Launch规则从您的网站页面触发Target调用。 使用Adobe客户端数据层可检索网页信息并将其作为参数进行传递,该数据层允许您收集和存储有关访客在网页上的体验的数据,然后使访客能够轻松访问这些数据。
Adobe客户端数据层是事件驱动的数据层。 加载AEM页面数据层时,将触发事件cmp:show
。 在视频中,使用自定义事件调用Launch Library Loaded
规则。 在下面,您可以找到视频中用于自定义事件和数据元素的代码片段。
在Launch属性中,将新的Event添加到Rule中
点按打开编辑器按钮,然后在以下代码片段中粘贴。 此代码必须添加到事件配置和后续的操作中。
// Define the event handler function
var pageShownEventHandler = function(coreComponentEvent) {
// Check to ensure event trigger via AEM Core Components is shaped correctly
if (coreComponentEvent.hasOwnProperty("eventInfo") &&
coreComponentEvent.eventInfo.hasOwnProperty("path")) {
// Debug the AEM Component path the show event is associated with
console.debug("cmp:show event: " + coreComponentEvent.eventInfo.path);
// Create the Launch Event object
var launchEvent = {
// Include the ID of the AEM Component that triggered the event
id: coreComponentEvent.eventInfo.path,
// Get the state of the AEM Component that triggered the event
component: window.adobeDataLayer.getState(coreComponentEvent.eventInfo.path)
};
//Trigger the Launch Rule, passing in the new `event` object
// the `event` obj can now be referenced by the reserved name `event` by other Launch data elements
// i.e `event.component['someKey']`
trigger(launchEvent);
}
}
// With the AEM Core Component event handler, that proxies the event and relevant information to Adobe Launch, defined above...
// Initialize the adobeDataLayer global object in a safe way
window.adobeDataLayer = window.adobeDataLayer || [];
// Push the event custom listener onto the Adobe Data Layer
window.adobeDataLayer.push(function (dataLayer) {
// Add event listener for the `cmp:show` event, and the custom `pageShownEventHandler` function as the callback
dataLayer.addEventListener("cmp:show", pageShownEventHandler);
});
自定义函数定义pageShownEventHandler
,监听AEM核心组件发出的事件,导出核心组件的相关信息,将其打包到事件对象中,并在有效负荷时使用派生事件信息触发启动事件。
Launch规则使用Launch的trigger(...)
函数触发,该函数仅可从规则事件的自定义代码片段定义中获取。
trigger(...)
函数将事件对象作为参数,该参数又在Launch数据元素中以名为event
的其他保留名称显示。 Launch中的数据元素现在可以使用event.component['someKey']
之类的语法来引用event
对象中此事件对象的数据。
如果在事件的“自定义代码”事件类型(例如,在操作中)的上下文之外使用trigger(...)
,则在与Launch属性集成的网站上会引发JavaScript错误trigger is undefined
。
AdobeLaunch数据元素通过核心扩展的自定义代码数据元素类型,将在自定义显示页面事件🔗中触发的事件对象的数据映射到Adobe Target中可用的变量。
if (event && event.id) {
return event.id;
}
此代码会返回核心组件的生成唯一ID。
if (event && event.component && event.component.hasOwnProperty('repo:path')) {
return event.component['repo:path'];
}
此代码返回AEM页面的路径。
if (event && event.component && event.component.hasOwnProperty('dc:title')) {
return event.component['dc:title'];
}
此代码返回AEM页面的标题。
> AT: [page-init] Adobe Target content delivery is disabled. Ensure that you can save cookies to your current domain, there is no "mboxDisable" cookie and there is no "mboxDisable" parameter in the query string.
Target客户有时会将基于云的实例与Target结合使用来进行测试或简单的概念验证。 这些域以及许多其他域都是公共后缀列表的一部分。
除非使用targetGlobalSettings()
自定义cookieDomain
设置,否则在使用这些域时,新式浏览器将不会保存Cookie。
window.targetGlobalSettings = {
cookieDomain: 'your-domain' //set the cookie directly on this subdomain, for example: 'publish-p1234-e5678.adobeaemcloud.com'
};