在Adobe DTM数据元素中寻找自定义脚本(使用jQuery捕获内部HTML)?

时间:2014-09-27 20:42:10

标签: javascript jquery html adobe adobe-analytics

我试图在DTM数据元素的自定义脚本中使用jQuery捕获HTML文本值。

参见情景:

以下是页面上的代码片段:

<div class="site-categories">
<ul>
   <li class="mobile-tablets main">
    <a href="/mobiles.html" class="mobile-tablets" style="background-position"> Mobiles & Tablets </a> 
    <a href="/computers.html" class="computers" style="background-position"> Computers </a> 
    <a href="/electronics.html" class="electronics" style="background-position"> Electronics </a> 

等等。

所以基本上问题是捕获锚标记的内部HTML文本,即'Mobiles&amp;平板电脑'或'计算机'或'电子',取决于用户点击的链接。

为了实现这一点,在基于事件的规则部分中,我将条件设置为要在类(在div标签下)等于'site-categories'并在子元素上启用冒泡时触发的标记(以便覆盖此下的所有内容)消灭omniture标签)。然后在任何evar变量中分配data元素的值。

在数据元素部分,选择自定义脚本选项后,我正在编写此代码:

var value = $('this').html();

返回值;

var value = jQuery('this').html();

返回值;

但这不起作用。我甚至试过用这个:

var value;

_satellite.setVar('value', jQuery('this').html()); 

返回值;

但这也行不通。我能解决这个问题吗?我希望它是动态的,根据用户点击页面的哪个部分,数据元素应该捕获该特定锚标记的内部HTML文本。

不确定我哪里出错了。 如果有任何其他解决方案,请告诉我。那将是一个很大的帮助。

提前致谢,

阿迪

2 个答案:

答案 0 :(得分:2)

几个笔记:

首先在旁注中,在您的jQuery代码中,this不应该用引号括起来。您应该将对象引用传递给jQuery包装器。将其包装在引号中会使其查找名为“this”的html元素(例如<this>foobar</this>),这是不正确的。

关于你的问题..不确定你是如何设置规则的,但基本上你想要做的是获取值并将其放入数据元素,然后在设置Adobe Analytics变量时引用数据元素。所以看起来你走在了正确的轨道上,BrettAHale的答案也在正确的轨道上,但要把它们放在一起:

在您的规则中,添加条件为Data > Custom的条件。然后单击“添加条件”并在代码框中输入:

_satellite.setVar('linkText', jQuery(this).text());
return true; 

这将设置一个名为“linkText”的数据元素,并返回true以确保条件始终为true。您可以使用“值”作为名称,但您应该使用更具描述性的内容,以便以后更容易记住它的用途(我使用“linkText”)。

然后,在规则的Adobe Analytics部分中,转到eVars部分,然后选择要设置的eVar。然后,对于“设为”值,请输入%linkText%。这是对您刚在规则中设置的数据元素的引用。如果DTM显示未找到的工具提示或w / e,请不要担心;它只显示/搜索您在界面中设置的已知数据元素,而不是在规则中即时搜索。点击“保存evar”按钮,你会看到例如列出eVar3="%linkText%"(但是对于您选择的任何eVar)。

保存然后测试/发布规则。

答案 1 :(得分:0)

在分析工具部分或您的规则中,使用以下内容设置eVar,而不是数据元素。

%this.text%

你的evar盒子会显示这样的东西。 eVarX = “%this.text%”