Adobe DTM数据元素更新

时间:2015-01-21 23:27:05

标签: adobe adobe-analytics

我正在寻找一种在DTM中动态更新预定义数据元素的方法。一旦页面加载并且数据元素被初始化,就无法更新它们,_sattelite.setVar()不起作用。我可以动态创建数据元素,但它不会在页面之间持续存在。例如:

var currElementName = this.getAttribute('data-analytics-tracking-name');
_satellite.setVar('custom link name', currElementName);

有什么建议吗?我之所以这样问,是因为我将使用MVC框架,并且我希望将一些数据存储在DTM数据元素中,并在视图发生变化时进行更新。谢谢!

1 个答案:

答案 0 :(得分:5)

为了将持久数据元素设置为新值,您需要首先更新数据元素所依赖的任何源,然后使用_satellite.getVar('element_name_here')强制评估数据元素。

这里的关键是 on page load ,持久数据元素的操作顺序基本上是:

  1. 查找卫星cookie并返回该值
  2. 查找类型的指定目标(例如类型 JS对象的路径(js var))并返回该值
  3. 返回默认值
  4. 但是当显式调用 _satellite.getVar('Example')时,操作的顺序是:

    1. 查找类型的指定目标(例如类型 JS对象的路径(js var))并返回该值
    2. 查找卫星cookie并返回该值
    3. 返回默认值
    4. 数据元素示例:

        

      名称:示例

           

      输入: JS对象

           

      路径: someVariable

           

      默认值:默认值

           

      请记住此值:会话

      所以,假设我在页面上有以下内容(在DTM脚本标记之前设置):

      someVariable = 'foo';
      

      这将提供名为“Example”的数据元素,您可以使用%Example%_satellite.getVar('Example')引用该数据元素,具体取决于上下文。

      在会话期间,数据元素将具有该值“foo”。所以要改变它,你会做以下事情:

      someVariable='bar';
      _satellite.getVar('Example');
      

      你可以在自己的脚本中的某个地方调用它,或者如果你想将它放入混合中,例如:页面加载规则,您可以将其添加为Criteria > Data > Custom代码框中的条件(注意:如果您将其放在此处,添加return true;作为第3行),等等..

      作为替代方案,如果您感觉更冒险,或者需要为数据元素设置进行解决(例如,您的数据元素是自定义脚本类型,您需要回避那里的逻辑).. ..

      如果将数据元素配置为持久性,则会设置名为

      的cookie

      _sdsat_[data element name]

      因此,在上面的示例中,它设置了一个名为

      的cookie

      _sdsat_Example

      因此,如果确实想要,您只需使用新值更新cookie,然后让默认的操作顺序返回(现在更新的)cookie值。 (注意:由于javascript无法使cookie过期,如果您将范围设置为“访问者”,则可以将过期时间设置为2年,which is what DTM does