Adobe 使用数据层跟踪基于事件的规则
这有点令人困惑。假设我实现了一个包含页面细节的数据层。该页面有2篇文章,每次点击都会被重定向。现在假设跟踪是这样的,一旦用户点击卡片,工具中就会报告卡片的名称(h1)。我在没有使用数据层的情况下实现了这个场景。() 下面提到了我定义数据层的代码。在DTM控制台中,我创建了数据元素,并使用datalayer对象进行映射。对于卡名-DDO.pageData.cardname。还创建了基于事件的规则并与此数据元素映射。这里的问题是,每当我点击一篇文章时,它都会在一次评估中获取这两篇文章的h1。理想情况下,它应该只获取正在单击的文章的值。请建议Adobe 使用数据层跟踪基于事件的规则,adobe,adobe-analytics,Adobe,Adobe Analytics,这有点令人困惑。假设我实现了一个包含页面细节的数据层。该页面有2篇文章,每次点击都会被重定向。现在假设跟踪是这样的,一旦用户点击卡片,工具中就会报告卡片的名称(h1)。我在没有使用数据层的情况下实现了这个场景。() 下面提到了我定义数据层的代码。在DTM控制台中,我创建了数据元素,并使用datalayer对象进行映射。对于卡名-DDO.pageData.cardname。还创建了基于事件的规则并与此数据元素映射。这里的问题是,每当我点击一篇文章时,它都会在一次评估中获取这两篇文章的h1。理想情况
DDO={}//已创建数据层对象
var pageObj={};
var pageDOM=$('.mu item');
pageObj.DestinationURL=$(pageDOM.find('a').attr('href');
pageObj.cardName=$(pageDOM.find('h1').text();
DDO.pageData={
“pageName”:document.title,
“DestinationURL”:pageObj.DestinationURL,
“cardname”:pageObj.cardname
}
_satellite.pageBottom()代码>您的问题是您有多个菜单项和标题。您必须创建一个包含所有标题的数组(这将使单击很难获得正确的条目),或者仅在单击元素后填充数据层,以便它始终包含所选元素的数据
然而,正如我指出的,你很有可能不需要这个。如果使用css选择器执行基于事件的单击规则,则DTM会自动创建一个数据元素,该元素称为%this%
,包含单击的DOM节点。您应该能够使用%this.textContent%
获取标题内的文本(您的标题中有一个嵌套段落,我不确定它是否为有效的HTML,因此您必须允许事件在事件规则配置中冒泡)。您的问题是您有多个菜单项和标题。您必须创建一个包含所有标题的数组(这将使单击很难获得正确的条目),或者仅在单击元素后填充数据层,以便它始终包含所选元素的数据
然而,正如我指出的,你很有可能不需要这个。如果使用css选择器执行基于事件的单击规则,则DTM会自动创建一个数据元素,该元素称为%this%
,包含单击的DOM节点。您应该能够使用%this.textContent%
获取标题内的文本(您的标题中有一个嵌套段落,我不确定它是否为有效的HTML,因此您必须允许事件在事件规则配置中冒泡)。如其他人所述,知道哪个h1
值相关的唯一方法是在单击事件期间捕获它
正如我在报告中提到的
[…]DTM当前未将对该
的引用传递给在配置区域中创建的数据元素
这是没有办法的。正如我在其他问题(规则条件中的自定义脚本)上向您展示的那样,您必须在单击事件期间捕获它。正如其他人提到的,让它通过您的数据层在技术上是一个不必要的步骤。实际上这样做有其利弊,但这是一个不同的讨论
假设你决心这么做
转到规则数据元素,然后单击创建新数据元素
根据您使用的惯例命名数据元素。对于数据层,我个人喜欢将其命名为完整的数据层路径,例如“DDO.pageData.cardName”
对于类型,选择“JS对象”
对于路径,放置完整路径DDO.pageData.cardName
单击保存数据元素保存数据元素
接下来,转到基于事件的规则。它应该仍然具有相同的事件类型(单击),以及元素标记或选择器(article.mu项)
在规则条件中,选择“数据>自定义”添加自定义js代码框
在这里,您仍然需要根据此
获取信息。但是,您将不使用\u satellite.setVar()
创建动态数据元素,而是将值推送到数据层
示例:
var articleTitle = $(this).find('h1').text()||'';
window.DDO
&&
window.DDO.pageData
&&
(window.DDO.pageData.cardName=articleTitle);
return true;
注意:我正在使用jQuery语法获取h1
文本。基于您之前的问题,您当时在这方面遇到了问题,因此我向您展示了vanilla js版本。不确定你是否解决了这个问题,但你明白了原则
现在,您可以在规则的其余字段中使用数据层引用的数据元素
%DDO.pageData.cardName%
正如其他人所提到的,知道哪个h1
值相关的唯一方法是在单击事件期间捕获它
正如我在报告中提到的
[…]DTM当前未将对该的引用传递给在配置区域中创建的数据元素
这是没有办法的。正如我在其他问题(规则条件中的自定义脚本)上向您展示的那样,您必须在单击事件期间捕获它。正如其他人提到的,让它通过您的数据层在技术上是一个不必要的步骤。实际上这样做有其利弊,但这是一个不同的讨论
假设你决心这么做
转到规则数据元素,然后单击创建新数据元素
根据您使用的惯例命名数据元素。对于数据层,我个人喜欢使用na