Adobe DTM 数据元素更新
Adobe DTM Data Element Updating
我正在寻找一种动态更新 DTM 中预定义数据元素的方法。一旦页面加载并且数据元素被初始化,就不可能更新它们,_sattelite.setVar() 不起作用。我可以即时创建一个数据元素,但它不会从页面持续到 page.Example:
var currElementName = this.getAttribute('data-analytics-tracking-name');
_satellite.setVar('custom link name', currElementName);
有什么建议吗?我问这个是因为我将使用 MVC 框架,我想将一些数据存储在 DTM 数据元素中并随着视图的变化而更新。谢谢!
为了将持久数据元素设置为新值,您需要首先更新数据元素所基于的任何源,然后使用 _satellite.getVar('element_name_here')
强制评估数据元素。
这里的关键是在页面加载时,持久数据元素的操作顺序基本上是:
- 查找卫星 cookie 和 return 该值
- 寻找 type 的指定目标(例如 path (js var) for type JS对象)和return那个值
- Return默认值
但是当你显式调用 _satellite.getVar('Example')
时,操作顺序改为:
- 寻找 type 的指定目标(例如 path (js var) for type JS对象)和return那个值
- 查找卫星 cookie 和 return 该值
- Return默认值
数据元素示例:
Name: Example
Type: JS Object
Path: someVariable
Default Value: default value
Remember this value for: Session
假设我在页面上有以下内容(设置在 DTM 脚本标记之前):
someVariable = 'foo';
这将提供一个名为“示例”的数据元素,您可以根据上下文使用 %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,并让默认操作顺序 return (现在更新)cookie 值。 (注意:由于 javascript 无法获取 cookie 的有效期,如果您将范围设置为“访客”,则可以将有效期设置为 2 年,which is what DTM does)
我正在寻找一种动态更新 DTM 中预定义数据元素的方法。一旦页面加载并且数据元素被初始化,就不可能更新它们,_sattelite.setVar() 不起作用。我可以即时创建一个数据元素,但它不会从页面持续到 page.Example:
var currElementName = this.getAttribute('data-analytics-tracking-name');
_satellite.setVar('custom link name', currElementName);
有什么建议吗?我问这个是因为我将使用 MVC 框架,我想将一些数据存储在 DTM 数据元素中并随着视图的变化而更新。谢谢!
为了将持久数据元素设置为新值,您需要首先更新数据元素所基于的任何源,然后使用 _satellite.getVar('element_name_here')
强制评估数据元素。
这里的关键是在页面加载时,持久数据元素的操作顺序基本上是:
- 查找卫星 cookie 和 return 该值
- 寻找 type 的指定目标(例如 path (js var) for type JS对象)和return那个值
- Return默认值
但是当你显式调用 _satellite.getVar('Example')
时,操作顺序改为:
- 寻找 type 的指定目标(例如 path (js var) for type JS对象)和return那个值
- 查找卫星 cookie 和 return 该值
- Return默认值
数据元素示例:
Name: Example
Type: JS Object
Path: someVariable
Default Value: default value
Remember this value for: Session
假设我在页面上有以下内容(设置在 DTM 脚本标记之前):
someVariable = 'foo';
这将提供一个名为“示例”的数据元素,您可以根据上下文使用 %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,并让默认操作顺序 return (现在更新)cookie 值。 (注意:由于 javascript 无法获取 cookie 的有效期,如果您将范围设置为“访客”,则可以将有效期设置为 2 年,which is what DTM does)