问题更新Adobe分析变量通过数据元素在动态标签管理器- DTM

Issue Updating Adobe Analytics Variable Via Data Element in Dynamic Tag Manager - DTM

本文关键字:动态 元素 标签 管理器 DTM 数据 Adobe 更新 变量 问题      更新时间:2023-09-26

我在DTM中设置了Adobe Analytics作为工具。我有一个"页面名称"数据元素,引用了一个JS对象(digitalData.page.pageInfo.pageID)。在工具设置区域,全局变量中,我将prop1设置为%Hostname%:%Page Name%。我也有在页面浏览量和内容下,页面名称设置为%主机名%:%页面名称%。问题是在DTM设置这里的值时,它无法访问digitalData对象(我在下面试图解决的计时问题)。

当DTM代码运行时,我有一个对象不可用的问题,所以我放入了一个页面加载规则来抑制分析调用

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%,但页面名称仍然是空白(只有主机名输出冒号),当分析呼叫出去?

在测试中,我注意到在分析工具设置中,在页面浏览量和内容部分,如果我从页面名称设置文本框中删除值,那么当分析调用出去时,pageName没有输出?

所以我的问题是如何让页面名称和prop1变量更新与digitalData对象的新值当分析调用出去?

因为这似乎是DL对象可用和页面加载规则执行之间的竞争条件,所以我会做以下操作:

  • 为这个用例创建一个"全局页面加载规则",而不是使用工具中的AA全局配置部分。
  • 在全局页面加载规则集s.t abort = true的AA自定义代码部分中。这将允许您等待所有其他对象加载。
  • 在加载所有对象时调用直接调用规则
  • 在DC规则中检查您的DL对象(pageName)并设置AA变量。

DC规则示例代码

   if(Data_Layer_Obj)
   s.pageName = datalayer.pageName
}

在这里等待Data Element可能是一个挑战,因为页面加载规则和数据层对象之间存在定时问题。