javascript - 通过动态标签管理器中的数据元素更新 Adob​​e Analytics 变量时出现问题 - DTM

标签 javascript adobe adobe-analytics

我将 Adob​​e Analytics 设置为 DTM 中的工具。我有一个“页面名称”数据元素,它引用 JS 对象(digitalData.page.pageInfo.pageID)。在工具设置区域“全局变量”中,我将 prop1 设置为 %Hostname%:%Page Name%。我还在页面浏览量和内容下,将页面名称设置为%Hostname%:%Page Name%。问题在于 DTM 在此处设置值时,它无法访问 digitalData 对象(我试图在下面解决计时问题)。

当 DTM 代码运行时,我遇到了对象不可用的问题,因此我放入了页面加载规则来抑制 Analytics 调用

s.abort = true;

然后在第 3 方 JavaScript 区域中,我输入代码来检查要检测的对象,并在控制台输出中获得预期值。

(函数() { 尝试 { 函数 checkObj(){ if (digitalData === null || digitalData === undefined) { setTimeout(checkObj(), 200); }别的{ var pn = _satellite.getVar("页面名称"); console.log("----> 对象可用 - 页面名称 DE 包含:"+ pn); _satellite.track("分析调用"); 返回; } } 检查对象(); } catch(e) {e.message(e);} })();

在直接调用规则“Analytics Call”中,我再次将 Adob​​e 页面名称和 prop1 设置为 %Hostname%:%Page Name%,但当分析调用中断?

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

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

最佳答案

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

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

DC规则中的示例代码

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

由于页面加载规则和数据层对象之间的计时问题,在这里等待数据元素可能是一个挑战。

希望这有帮助。

关于javascript - 通过动态标签管理器中的数据元素更新 Adob​​e Analytics 变量时出现问题 - DTM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31902820/

相关文章:

javascript - DTM - 将自定义事件附加到页面加载事件

javascript - 当我进行 s.tl() 调用时,似乎无法清除 s.events。我怎样才能清除 s.events 呢?

javascript - 如何检查数组中的每一项?

javascript - 不明白 axios 的异步等待调用

javascript - 为什么 DTM 数据元素被调用两次?

java - 使用 Smaxe 的 JUV RTMP 客户端发送元数据 (Java)

javascript - ReactJS:意外 token '<'

javascript - fullcalendar.js - 将 for 循环插入模态

image-processing - 批量处理EPS转JPG的工具

javascript - DTM-s.t函数和页面加载规则的关系