实际问题:
有没有人有任何关于如何将DOM元素的值拉入自定义脚本数据元素的基本示例逻辑?
背景:
我正在尝试在Adobe动态标记管理(DTM)中构建一些自定义数据元素。我想将我的面包屑的特定部分捕获到元素中 - 例如鉴于面包屑线索Home>>类别1>>类别4>>第1页,我希望X = 1类,Y = 4类,Z = Page 1
不幸的是,面包屑中的锚点不使用一致的标识符,所以我需要条件逻辑才能选择它们。示例:当我在类别1登录页面时,类别的元素具有ID“当前”但是它具有ID“L1Link” - 因此我想要以下逻辑:
if(#L1Link exists)
X = #L1Link
else
X = #Current
不幸的是,我不确定如何在自定义函数中选择DOM元素。我不认为_satellite。$ data是我想要的(我不想要数据,我只想要超链接的文本)。我尝试使用cssQuery,但我没有回调传递任何东西(与文档相反,如果我没有回调,它似乎会非常沮丧)。
答案 0 :(得分:5)
转到规则> 数据元素并使用以下内容创建数据元素:
名称:category_1
输入:自定义脚本
然后点击“打开编辑器”并添加以下内容:
var x = document.getElementById('L1Link')||document.getElementById('Current');
if (x) return x.innerText||x.textContent;
else return '';
这将首先查找#L1Link并且失败,将寻找#Current。如果找到,它将返回链接的文本。
根据您的帖子,将将此值记住设置为“Pageview”
保存更改
接下来,导航到
规则> 页面加载规则
如果您还没有设置为在每个页面加载时弹出的常规页面加载规则设置,请创建一个并将其命名为“每个页面”。
在条件> 标准从下拉列表中选择数据:自定义,然后点击添加标准
然后在自定义 textarea:
中添加以下内容return _satellite.getVar('category_1')||true;
此条件将显式调用数据元素以确保它被调用,因为DTM是喜怒无常的,有时可能无法评估数据元素。它回退到true
以确保条件始终返回true,因此条件不会导致规则无法执行。
然后在规则的 Adobe Analytics 部分,选择您要设置的eVar
和/或prop
(例如prop1
)并设置为%category_1%
保存规则
您希望为要创建数据元素的每个项目重复此过程以弹出Adobe Analytics变量,尽管您只需要一个规则,并且所有这些规则都有一个条件。条件代码是:
_satellite.getVar('category_1');
_satellite.getVar('category_2');
//etc..
return true;
注意: DTM对执行顺序与负载/时间安排有一些警告。这部分是由于异步加载的性质,但Adobe也承认了mislabeling of order of execution in the documention(请参阅我的问题#2 )。基本上,您可能需要使用页面加载规则中的触发器规则设置与您在“加载Adobe Analytics页面代码”下拉列表中的设置进行比较Adobe Analytics工具常规配置部分,希望最好。我设置了一个测试页面来验证我的帖子中的所有这些以及我在任何一个工作中选择的几乎所有内容,但是我的测试页面除了DTM页面代码和链接之外几乎没有任何内容。
答案 1 :(得分:0)
这篇文章非常有趣,总是你的解释很清楚@crayon。顺便说一下,您知道如何将数据元素调用到Thirth派对标签上的脚本(HTML非顺序)吗?我想这么做,老实说,我想念。
当使用非顺序的Java脚本时我可以使用Data元素,但我的意图是将Data Element值传递给图像像素,如:
<img src="//t.qservz.com/tr.aspx?campaign=169779d3852b32ce8b1a1724dbf5217d&type=ppl&retmode=4&orderid=[[orderid]]&totalprice=[[totalprice]]&level=**ValueDataElement**&redirect_url=[[URL]]" border="0" width="1" height="1"><img style="border: 0;" width="1" height="1" src="https://tags.qservz.com/pixel?id=1901&type=img" />
如果你能帮助我,我很感激,
朱莉娅。