我们正在转向DTM实施。我们在页面上定义了几个变量。我知道我可以通过数据元素在DTM中提供这些变量。我可以简单地设置一个数据元素
所以设置数据元素
%prop1% = s.prop1
%prop2% = s.prop2
etc
然后根据全局规则设置
s.prop1 = %s.prop1%
s.prop2 = %s.prop2%
etc
对于每一个evar,sprop,event,product,所以只要在特定页面上设置它们就会填充它们。好主意还是糟糕的主意?这似乎是一个相当笨重的方法,引起了一些警钟。另一个选择是写一些东西将所有内容推送到数据层,但是当它们可以被直接抓取时,这似乎与冗余步骤基本相同。
基本上我希望DTM访问当前使用页面代码设置的任何和所有变量,我的理解是,为了做到这一点,它们必须首先存储在数据元素中。有没有人对此有任何见解?
答案 0 :(得分:1)
如果您要从传统的s_code实现迁移到DTM,最好删除所有现有的"页面"代码(包括对s_code文件的引用)并创建一个"数据层"其中包含来自eVars和页面上道具的数据。然后DTM可以引用页面上的对象,您可以创建映射到变量的数据元素。
以下是数据层的示例:
<script type="text/javascript">
DDO = {} // Data Layer Object Created
DDO.specVersion = "1.0";
DDO.pageData = {
"pageName":"My Page Name",
"pageSiteSection":"Home",
"pageType":"Section Front",
"pageHier":"DTM Test|Home|Section Front"
},
DDO.siteData = {
"siteCountry":"us",
"siteRegion":"unknown",
"siteLanguage":"en",
"siteFormat":"Desktop"
}
</script>
下一步是创建直接引用对象中值的数据元素。例如,如果我想创建一个映射到数据层中页面名称元素的数据元素,我将在DTM中执行以下操作:
现在只需键入&#39;%&#39;即可在任何规则的任何变量字段中引用此数据元素。 DTM将找到任何现有的数据元素,您可以选择它们。
我还写了一篇简单的脚本,您可以将其添加到您的实现中,以帮助您进行数据层验证。Validate your DTM Data Layer with this simple script
希望这有帮助。
答案 1 :(得分:1)
我使用此规范来设置数据层:Data Layer Standard
我们为标准数据层使用的每个密钥创建数据元素。例如,页面名称存储在此处
digitalData.page.pageInfo.pageName
我们创建一个数据元素并将名称标准化为此格式“page.pageInfo.pageName” 在每个变量字段中,您可以使用%page.pageInfo.pageName%表示法访问它。此外,在规则标记的javascript中,您可以使用:
_satellite.getVar('page.pageInfo.pageName')
有时候它有点笨拙,但它允许你完全分开数据层和标签管理器标签的开发。
需要注意的一点是,在调用卫星库之前,请确保数据层已完整并已加载。