为了将持久数据元素设置为新值,您需要首先更新数据元素所基于的任何源,然后使用_satellite.getVar('element_name_here')
强制评估数据元素。
这里的关键是页面加载时,持久数据元素的操作顺序基本上是:
- 查找卫星 cookie 并返回该值
- 查找指定的目标type (e.g. path(js var) 为typeJS 对象)并返回该值
- 返回默认值
但是当你显式调用 _satellite.getVar('Example')
,操作顺序是:
- 查找指定的目标type (e.g. path(js var) 为typeJS 对象)并返回该值
- 查找卫星 cookie 并返回该值
- 返回默认值
数据元素示例:
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 所做的)