通过动态标签管理器中的数据元素更新 Adobe Analytics 变量的问题 - DTM
Issue Updating Adobe Analytics Variable Via Data Element in Dynamic Tag Manager - DTM
我将 Adobe Analytics 设置为 DTM 中的工具。我有一个引用 JS 对象 (digitalData.page.pageInfo.pageID) 的 "Page Name" 数据元素。在工具设置区域“全局变量”中,我将 prop1 设置为 %Hostname%:%Page Name%。我还在页面浏览量和内容下,将页面名称设置为 %Hostname%:%Page Name%。问题是 DTM 在此处设置值时,它无法访问 digitalData 对象(我在下面尝试解决的计时问题)。
当 DTM 代码为 运行 时,我遇到了对象不可用的问题,所以我放入了一个页面加载规则来抑制 Analytics 调用
s.abort = true;
然后在第 3 方 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);}
})();
在直接调用规则中,"Analytics Call",我再次将 Adobe 页面名称和 prop1 设置为 %Hostname%:%Page Name% 但页面名称仍然是空白(仅主机名输出带冒号) Analytics Call 何时结束?
在测试中,我注意到在分析工具设置中,在页面浏览量和内容部分,如果我从页面名称设置文本框中删除值,那么当分析调用结束时 pageName 没有任何输出?
所以我的问题是,当分析调用结束时,如何让 Page Name 和 prop1 变量更新为 digitalData 对象的新值?
因为这似乎是您的 DL 对象何时可用和页面加载规则何时执行之间的竞争条件,所以我将执行以下操作:
- 为此用例创建一个 "global page load rule",而不是使用工具中的 AA 全局配置部分。
- 在全局页面加载规则集的 AA 自定义代码部分内 s.abort = true。这将允许您等待加载所有其他对象。
- 加载完所有对象后调用直接调用规则
- 在 DC 规则中检查您的 DL 对象 (pageName) 并设置 AA 变量。
DC 规则中的示例代码
if(Data_Layer_Obj)
s.pageName = datalayer.pageName
}
由于页面加载规则和数据层对象之间的时间问题,在这里等待数据元素可能是一个挑战。
希望对您有所帮助。
我将 Adobe Analytics 设置为 DTM 中的工具。我有一个引用 JS 对象 (digitalData.page.pageInfo.pageID) 的 "Page Name" 数据元素。在工具设置区域“全局变量”中,我将 prop1 设置为 %Hostname%:%Page Name%。我还在页面浏览量和内容下,将页面名称设置为 %Hostname%:%Page Name%。问题是 DTM 在此处设置值时,它无法访问 digitalData 对象(我在下面尝试解决的计时问题)。
当 DTM 代码为 运行 时,我遇到了对象不可用的问题,所以我放入了一个页面加载规则来抑制 Analytics 调用
s.abort = true;
然后在第 3 方 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);}
})();
在直接调用规则中,"Analytics Call",我再次将 Adobe 页面名称和 prop1 设置为 %Hostname%:%Page Name% 但页面名称仍然是空白(仅主机名输出带冒号) Analytics Call 何时结束?
在测试中,我注意到在分析工具设置中,在页面浏览量和内容部分,如果我从页面名称设置文本框中删除值,那么当分析调用结束时 pageName 没有任何输出?
所以我的问题是,当分析调用结束时,如何让 Page Name 和 prop1 变量更新为 digitalData 对象的新值?
因为这似乎是您的 DL 对象何时可用和页面加载规则何时执行之间的竞争条件,所以我将执行以下操作:
- 为此用例创建一个 "global page load rule",而不是使用工具中的 AA 全局配置部分。
- 在全局页面加载规则集的 AA 自定义代码部分内 s.abort = true。这将允许您等待加载所有其他对象。
- 加载完所有对象后调用直接调用规则
- 在 DC 规则中检查您的 DL 对象 (pageName) 并设置 AA 变量。
DC 规则中的示例代码
if(Data_Layer_Obj)
s.pageName = datalayer.pageName
}
由于页面加载规则和数据层对象之间的时间问题,在这里等待数据元素可能是一个挑战。
希望对您有所帮助。