我正在尝试使用DTM(我们用来捕获404错误页面)实现SiteCatalyst的内置变量's.pageType'。
我绝对可以在DTM的s.code中编写这段代码:
s.pageType="errorPage"
但问题是可以识别页面是否是404错误页面的条件,只能在页面代码级别识别(根据开发人员的说法,如果出现错误页面,则会抛出异常,这可能是用于在页面上识别这个条件),但是这个逻辑我们不能在DTM中使用。除此之外,在404错误页面上,不应填充pageName变量。 如何做到这一点,因为我从DTM中的数据元素(在“Pageviews& Content”部分中)获取pageName,这将始终在每个页面上触发。
如何实现这一点,请帮帮我。我错过了什么吗?
谢谢, 阿迪
答案 0 :(得分:4)
听起来就像您的设置一样:
<dtm header tag>
// code that identifies 404 page
<dtm footer tag>
它的听起来就像问题一样,因为数据元素是在DTM top标签中评估的第一件事,所以在知道它是404页面之前,你的页面名称数据元素正在被评估。
我要做的是在识别它是404页面的代码中,使它输出一个全局的js var,将页面标记为404页面,例如window.is404Page=true;
。
从这里开始,现在的总体目标是保持现有数据元素和pageName
分配不变,但稍后会用空字符串覆盖它(而不是弹出pageType
)。您没有真正提供有关实际设置pageName
的位置的任何详细信息,因此以下是一些应指向正确方向的方案:
场景1:pageName在网页浏览中设置&amp;主工具配置中的内容
1.a:在图书馆管理中,如果您已将AA设置为页面底部,则转到自定义页面代码部分,确保将其设置为在UI Sttings&#34;之后执行&#34; (如果您已经在使用此代码框,并且必须将其设置为在UI设置之前执行,则跳过此选项并转到 1.b )。单击“打开编辑器”并添加以下内容:
if (window.is404Page) {
s.pageName='';
s.pageType='errorPage';
}
1.b:在图书馆管理中,如果您已将AA设置为 Page Top ,则需要创建一个页面加载规则(或使用将在每个页面视图上触发的现有规则),在页面底部,dom准备好或onload上进行评估(基本上除了页面顶部之外的任何内容 - 这里指向的是将其转换为eval < / em> is404Page
已设置)。在规则中,转到 Adobe Analytics&gt;自定义网页代码并添加 1.a 的代码。
场景2:pageName在页面加载规则中设置
如果您的页面加载规则设置为触发&#34;页面顶部&#34;那么你需要创建一个单独的规则,然后触发。请参阅 1.b。
2.a:如果您使用%dataElement%语法在DTM字段中设置pageName
,请将 1.a 中的代码添加到自定义页码部分。
2.b:如果您要从自定义网页代码部分设置pageName
,请使用例如s.pageName=_satellite.getVar('dataElement');
然后只需在其下方直接添加 1.a 的代码即可。
TL; DR:设置全局js var作为页面代码中的标志,确定404页面是否在您的DTM代码中查找以覆盖{{1}在设置js标志var之后,在DTM自定义代码部分中编写pageName
并获得eval&#39; d 。