Adobe DTM 数据元素更新

2023-12-13

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

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

有什么建议么?我问这个问题是因为我将使用 MVC 框架,并且我想将一些数据存储在 DTM 数据元素中并随着视图的更改进行更新。谢谢!


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

这里的关键是页面加载时,持久数据元素的操作顺序基本上是:

  1. 查找卫星 cookie 并返回该值
  2. 查找指定的目标type (e.g. path(js var) 为typeJS 对象)并返回该值
  3. 返回默认值

但是当你显式调用 _satellite.getVar('Example'),操作顺序是:

  1. 查找指定的目标type (e.g. path(js var) 为typeJS 对象)并返回该值
  2. 查找卫星 cookie 并返回该值
  3. 返回默认值

数据元素示例:

Name: Example

Type:JS对象

Path:一些变量

默认值: 默认值

请记住此值: Session

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

someVariable = 'foo';

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

在会话期间,数据元素将具有值“foo”。因此,要更改它,您需要执行以下操作:

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

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

作为备选,如果您感觉更具冒险精神,或者需要解决数据元素设置的问题(例如,您的数据元素是自定义脚本类型,并且您需要避开其中的逻辑)。

当您将数据元素配置为持久性时,它会设置一个名为的 cookie

_sdsat_[data element name]

所以在上面的例子中,它设置了一个名为

_sdsat_Example

所以,如果你really如果您愿意,您可以只用新值更新 cookie,然后让默认操作顺序返回(现已更新的)cookie 值。 (注意:由于 javascript 无法获取 cookie 的过期时间,因此如果将范围设置为“Visitor”,则可以将过期时间设置为 2 年,这就是 DTM 所做的)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Adobe DTM 数据元素更新 的相关文章

随机推荐