我将Adobe Analytics设置作为DTM中的工具。我有一个“页面名称”数据元素,它引用了一个JS对象(digitalData.page.pageInfo.pageID)。在工具设置区域Global Variables中,我将prop1设置为%Hostname%:%Page Name%。我还有网页浏览量和内容,页面名称设置为%主机名%:%页面名称%。问题是DTM在这里设置值,它无法访问digitalData对象(我正试图在下面解决时间问题)。
我遇到DTM代码运行时无法使用该对象的问题,因此我提出了一个页面加载规则来禁止Google Analytics调用
s.abort = true;
然后在第三方JavaScript区域中我放入代码来检查要检测的对象,并在控制台输出中获得预期值。
(function() {
try {
function checkObj(){
if (digitalData === null || digitalData === undefined) {
setTimeout(checkObj(), 200);
}else{
var pn = _satellite.getVar("Page Name");
console.log("----> object available - Page Name DE holds:" + pn);
_satellite.track("Analytics Call");
return;
}
}
checkObj();
} catch(e) {e.message(e);}
})();
在直接呼叫规则“分析呼叫”中,我将Adobe页面名称和prop1再次设置为%Hostname%:%Page Name%,但页面名称仍为空白(只有主机名以冒号输出) Analytics Call会消失吗?
在测试中,我注意到在“分析工具”设置中,在“网页浏览量和内容”部分中,如果我从“网页名称”设置文本框中删除了值,那么当分析调用结束时,没有为pageName输出任何内容吗?
所以我的问题是当分析调用结束时,如何使用digitalData对象的新值更新Page Name和prop1变量?
答案 0 :(得分:1)
因为这似乎是您的DL对象可用时和页面加载规则执行之间的竞争条件,所以我会执行以下操作:
DC规则中的示例代码
if(Data_Layer_Obj)
s.pageName = datalayer.pageName
}
由于页面加载规则与数据层对象之间存在时序问题,因此在此处等待数据元素可能是一项挑战。
希望这有帮助。