adobe-analytics - Adobe DTM 将 Unix 时间戳传递给 eVar
问题描述
我想将 Unix 时间戳传递给 DTM 中的命中级别 eVar。我假设我可以像这样传递一些Javascript:
function() {
var now = new Date();
return now.getTime();
}
但是,我不确定在 DTM 中的何处传递它。这会在工具设置中的“自定义页面代码”编辑器中传递还是在其他地方传递?
解决方案
您可以创建自定义代码类型的数据元素。将其命名为类似或其他名称。代码不应包含在函数声明语法中(DTM 已在内部将其包装在函数回调中)。所以只需在代码框中输入以下内容:current_timestamp
var now = new Date();
return now.getTime();
然后在您的 Adobe Analytics Tool Config(用于全局变量)中,或在Adobe Analytics Config部分的Page Load、Event Based或Direct Call Rule中。选择您要设置的值,并为值放置(或任何您命名的值,在它的开始/结束处使用。当您开始在值字段中输入时,您应该会看到它显示在下拉列表中)。eVar
%current_timestamp%
%
%
或者,如果您想eVar
在其中一个位置的自定义代码框中分配 ,您可以使用以下 javascript 语法,例如(假设eVar1
在示例中)。
s.eVar1 = _satellite.getVar('current_timestamp');
请注意,使用此语法时,您不会将数据元素名称包装为%
最后一点。这是客户端代码,因此时间戳将基于用户浏览器的时区设置。因此,例如,来自美国的访问者和来自中国的访问者同时物理访问一个页面(同时服务器请求),将显示两个不同的时间戳,因为它们位于两个不同的时区。
这会在报告中产生一些误导性数据,因此请确保将其按其他基于地理的维度进行分解,或者在数据元素中进行一些额外的数学运算以将时间戳转换为单个时区(例如将其转换为 EST)。在实践中,大多数人会选择他们办公室所在的时区,或者他们的服务器的时区设置。
推荐阅读
- android - Getting error java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
- sql - 仅通过 where 子句,按字符串字段将 SQL 查询限制为 10,000 个结果
- python - 有没有比列出目录中的所有文件更快的方法来查找文件?
- angular - deploying the same angular build to multiple environments
- exchange-server - Interesting problem with ews managed api 2.0
- macos-catalina - How can I fix a py2app error when building with py2app
- ios - IOS 14 - Self signed certificate - not trustable
- c - Quickest way to copy a 2d array in C?
- api - Google Maps Static API request isn't working over https
- confidence-interval - 当 type="response" 时,emmeans 置信区间中的错误?