我正在尝试使用DTM (我们用来捕获404错误页)实现Site催化剂的内置变量's.pageType‘。
我绝对可以在DTM的s.code:s.pageType="errorPage"中编写这段代码
但问题是,如果页面是404错误页,则只能在页代码级别识别(根据开发人员,出现错误页时会引发异常,可用于识别页面上的此条件),但这种逻辑不能在DTM中使用。同时,在404错误页上,不应该填充pageName变量。如何做到这一点,因为我从DTM中的数据元素(在“页面视图和内容”部分中)获取pageName,该元素总是在每个页面上触发。
如何实现这一点,请帮助我。我漏掉了什么吗?
谢谢,阿迪
发布于 2014-12-05 16:22:00
听起来你的设置是这样的:
<dtm header tag>
// code that identifies 404 page
<dtm footer tag>听起来问题是,由于数据元素是在DTM顶部标记中首先计算出来的,所以在您的页面名数据元素被认为是404页之前,就已经对它进行了评估。
我要做的是在识别它是404页的代码中,使它输出一个全局js,该js将该页标记为404页,例如window.is404Page=true;。
从现在开始,总体目标是保持现有数据元素和pageName赋值的原样,但随后使用空字符串覆盖它(而不是pop pageType )。关于实际设置pageName的位置,您并没有给出任何细节,因此,下面是一些应该指向正确方向的场景:
场景1:在主工具配置中的页面视图和内容中设置pageName
1.a: In Library Management,如果已将AA设置为在页面底部加载,则转到自定义页代码部分,确保将其设置为“using之后”(如果您已经使用此代码框,并且必须将其设置为在UI设置之前执行,则跳过此操作并转到1.b< code >E 216)。单击“打开编辑器”并添加以下内容:
if (window.is404Page) {
s.pageName='';
s.pageType='errorPage';
}1.b: In Library Management,如果您将AA设置为在Page 加载,那么您将需要创建一个页面加载规则(或使用将在每个页面视图上触发的现有规则),该规则在页面底部、dom就绪或onload上进行计算(这里的页面点顶部基本上都是在is404Page设置之后将其转换为)。在规则中,转到 Analytics > Custom ,并将1.a中的代码添加到那里。
场景2:在页面加载规则中设置pageName
如果您的页面加载规则被设置为在“页面顶部”触发,那么您将需要创建一个独立的规则,在此之后触发。见1.b.
2.a:如果使用%dataElement%语法在DTM字段中设置pageName,则将1.a中的代码添加到自定义页面代码部分。
2.b: --如果您从自定义页面代码部分中设置pageName,则使用例如s.pageName=_satellite.getVar('dataElement');,然后简单地将来自1.a的代码直接添加到它下面。
TL;DR:将全局js设置为页面上代码中的一个标志,该标志确定该页代码是否为404页,然后在您的DTM代码中查找该标志,以覆盖pageName并在js标志var设置后在DTM自定义代码部分中写入pageType。
https://stackoverflow.com/questions/27316498
复制相似问题