在 Adobe DTM 中将日期设置为道具
Setting Date as a prop in Adobe DTM
我正在尝试使用 Adobe DTM 将日期传递给 prop 变量,但收效甚微。最终输出应该是 Adobe 中的道具报告,它将为我提供特定日期(2016 年 5 月 11 日、15 年 6 月 15 日等)的流量数据。将日期设置为 prop 的最终目的是为了能够根据各种业务需求对日期范围进行分类。
谁能指出我完成这项工作的正确方向?我假设我必须在 s.code 文件中添加一行代码来定义 s.prop5 = ...
谢谢
- 在您的网站上(例如在数据层中)设置一个 JS 变量,以您希望收集的格式输出日期。类似于
var d = Date();
- 在 DTM 中,转到规则 > 数据元素并创建一个映射到您在网站上创建的 JS 变量的数据元素
- 如果您希望在每个页面上都定义 prop5,请单击齿轮图标并使用 %DataElementName% 将 prop5 映射到您的数据元素名称(无论您在第 2 步中为数据元素命名,用百分号包裹)。如果您不想在每个页面上都定义它,请转到规则并根据您希望变量触发的时间创建页面加载规则、基于事件的规则或直接调用规则。在规则的 Adobe Analytics 部分下,将 prop5 映射到 %DataElementName% 。
这将允许您收集日期作为值,然后可以将其用于分类。
根据您的评论,听起来您只是想用 "MM-DD-YYYY" 格式弹出带有当前日期戳的内容。
正如 Gigazelle 提到的,您可以为 return 值创建一个数据元素,然后引用它来设置您的道具。但是,根据您的 needs/limitations,将数据层加入混合中可能对您来说太过分了。
数据层用于公开 DTM 无法 feasibly/reliably 通过内置功能或托管自主 js 片段自行自动化的数据。
您可能想要考虑让您的站点将其推送到数据层的唯一原因是,如果您想通过服务器端编码生成日期以确保在所有访问者的相同时区设置内生成日期.如果您在客户端生成它,它将根据访问者的 browser/system 设置生成。由于访问者来自世界各地的不同时区,数据可能不一致(即使您添加额外的代码来更改时区偏移,它仍然可能不是 100% 基于浏览器 version/security 设置,或者更改 browser/system date/timezone 设置的访问者)。
所以,如果你想保证最好的准确性,那么我建议你通过服务器端代码输出值,并放入数据层。你如何做到这一点取决于你的服务器以及你可以使用哪种语言来提供你的网页。这是一个使用 PHP:
的非常基本的示例
<script>
var dataLayer = {
currentDate : '<?php echo date('m-d-Y'); ?>'
}
</script>
这将使服务器生成日期戳并输出一个名为 dataLayer
的 js 对象,您可以参考 属性 currentDate
。您可以创建一个 Data Element 作为 Type "JS Object",对于 Path,将 dataLayer.currentDate
,然后在别处引用您的 数据元素(见下文)。
如果这对您来说太麻烦,或者如果您想保持纯净 client-side/DTM 并且可以接受可能较低的一致性...
在 DTM 中,转到规则 > 数据元素,然后单击创建新数据元素.
名称它"currentDate"(无引号)。
对于 Type,选择 "Custom Script",然后单击 Open Editor,然后添加以下内容:
var t=new Date(),d,m,y;
d=t.getDate();
d=d<10?'0'+d:d;
m=t.getMonth()+1;
m=m<10?'0'+m:m;
y=t.getFullYear();
return m+'-'+d+'-'+y;
单击保存并关闭和保存数据元素。
现在您可以引用要弹出的数据元素prop5
。如何操作取决于您在 DTM 中设置 Adobe Analytics 的方式。例如,如果您将它设置为一个工具并且只希望它在初始页面视图中弹出,您可以打开您的 AA 工具配置,转到 Global Variables 下拉菜单,然后设置 prop5
那里。您将其引用为 %currentDate%
您可以在 页面加载规则 或其他规则或使用 DTM 内置字段的任何其他地方执行相同的 %currentDate%
语法。
或者,如果您需要在 javascript 代码中引用它(例如,如果您在 s.doPlugins
或其他一些 自定义脚本 [=70 中设置 prop5
=] 框,您可以像这样引用数据元素:
s.prop5 = _satellite.getVar('currentDate');
我正在尝试使用 Adobe DTM 将日期传递给 prop 变量,但收效甚微。最终输出应该是 Adobe 中的道具报告,它将为我提供特定日期(2016 年 5 月 11 日、15 年 6 月 15 日等)的流量数据。将日期设置为 prop 的最终目的是为了能够根据各种业务需求对日期范围进行分类。
谁能指出我完成这项工作的正确方向?我假设我必须在 s.code 文件中添加一行代码来定义 s.prop5 = ...
谢谢
- 在您的网站上(例如在数据层中)设置一个 JS 变量,以您希望收集的格式输出日期。类似于
var d = Date();
- 在 DTM 中,转到规则 > 数据元素并创建一个映射到您在网站上创建的 JS 变量的数据元素
- 如果您希望在每个页面上都定义 prop5,请单击齿轮图标并使用 %DataElementName% 将 prop5 映射到您的数据元素名称(无论您在第 2 步中为数据元素命名,用百分号包裹)。如果您不想在每个页面上都定义它,请转到规则并根据您希望变量触发的时间创建页面加载规则、基于事件的规则或直接调用规则。在规则的 Adobe Analytics 部分下,将 prop5 映射到 %DataElementName% 。
这将允许您收集日期作为值,然后可以将其用于分类。
根据您的评论,听起来您只是想用 "MM-DD-YYYY" 格式弹出带有当前日期戳的内容。
正如 Gigazelle 提到的,您可以为 return 值创建一个数据元素,然后引用它来设置您的道具。但是,根据您的 needs/limitations,将数据层加入混合中可能对您来说太过分了。
数据层用于公开 DTM 无法 feasibly/reliably 通过内置功能或托管自主 js 片段自行自动化的数据。
您可能想要考虑让您的站点将其推送到数据层的唯一原因是,如果您想通过服务器端编码生成日期以确保在所有访问者的相同时区设置内生成日期.如果您在客户端生成它,它将根据访问者的 browser/system 设置生成。由于访问者来自世界各地的不同时区,数据可能不一致(即使您添加额外的代码来更改时区偏移,它仍然可能不是 100% 基于浏览器 version/security 设置,或者更改 browser/system date/timezone 设置的访问者)。
所以,如果你想保证最好的准确性,那么我建议你通过服务器端代码输出值,并放入数据层。你如何做到这一点取决于你的服务器以及你可以使用哪种语言来提供你的网页。这是一个使用 PHP:
的非常基本的示例<script>
var dataLayer = {
currentDate : '<?php echo date('m-d-Y'); ?>'
}
</script>
这将使服务器生成日期戳并输出一个名为 dataLayer
的 js 对象,您可以参考 属性 currentDate
。您可以创建一个 Data Element 作为 Type "JS Object",对于 Path,将 dataLayer.currentDate
,然后在别处引用您的 数据元素(见下文)。
如果这对您来说太麻烦,或者如果您想保持纯净 client-side/DTM 并且可以接受可能较低的一致性...
在 DTM 中,转到规则 > 数据元素,然后单击创建新数据元素.
名称它"currentDate"(无引号)。
对于 Type,选择 "Custom Script",然后单击 Open Editor,然后添加以下内容:
var t=new Date(),d,m,y;
d=t.getDate();
d=d<10?'0'+d:d;
m=t.getMonth()+1;
m=m<10?'0'+m:m;
y=t.getFullYear();
return m+'-'+d+'-'+y;
单击保存并关闭和保存数据元素。
现在您可以引用要弹出的数据元素prop5
。如何操作取决于您在 DTM 中设置 Adobe Analytics 的方式。例如,如果您将它设置为一个工具并且只希望它在初始页面视图中弹出,您可以打开您的 AA 工具配置,转到 Global Variables 下拉菜单,然后设置 prop5
那里。您将其引用为 %currentDate%
您可以在 页面加载规则 或其他规则或使用 DTM 内置字段的任何其他地方执行相同的 %currentDate%
语法。
或者,如果您需要在 javascript 代码中引用它(例如,如果您在 s.doPlugins
或其他一些 自定义脚本 [=70 中设置 prop5
=] 框,您可以像这样引用数据元素:
s.prop5 = _satellite.getVar('currentDate');