首次网页加载后,Google分析(通过代码管理器)会丢失对访问者的跟踪

时间:2015-05-05 12:15:30

标签: backbone.js google-analytics single-page-application google-adwords google-tag-manager

我遇到了Google代码管理器(GTM),Google分析(GA)和Google adwords的一个非常奇怪的问题。到目前为止,我无法解决它。

设置:
我们有一个单页应用程序(骨干和牵线木偶),我们使用GTM使用标准dataLayer.push事件(如果相关,还有电子商务事件)将虚拟浏览量推送到GA。此设置通常可以正常工作。

问题:
问题是用户来自adwords,带有gclid标签。跟踪这些用户的第一次网页浏览并正确归因于adword广告系列,但只要他们点击网站上的任何链接,他们似乎就会在GA中获得新会话,然后原始会话计为退回。所有网页都在同一个网域上,我们已经确认这些广告系列用户实际上没有弹跳,他们仍然在网站上,但在某种程度上被GA错误标记。

即。

  1. 用户使用adwords中的gclid标记进入网站。
  2. 此次访问被跟踪为google cpc traffic。
  3. 用户点击页面中的链接,或触发主干路由器.navigate功能以加载新内容。
  4. 来自(2)的原始会话已结束,并且计为已退回,即使用户只是在网站内有一个链接。
  5. 创建一个新会话,不计入cpc-traffic(因为新页面没有gclid标记)。
  6. 重要提示:此问题仅适用于广告系列访问者!没有广告系列标记的用户在点击链接时不会获得新会话。

    之前有没有人遇到这样的问题?在单页应用上通过GTM使用adwords时是否有任何特殊事项需要考虑?什么可能导致谷歌分析失去这样的会议?

    有问题的网站是https://fyndiq.se,在移动设备中(它使用动态服务,问题不在桌面版本上,而不是SPA)。

    编辑 - 问题摘要和当前的,不完美的解决方案

    我们已经设法达到了可接受的水平,但它远非完美。由于解决方案全部在评论中展开,我认为我会在这里总结结果。

    问题确实是Google Analytics为Adwords用户创建了新会话,从而无法跟踪广告系列。 Analytics将在几种不同条件下为用户启动新会话。最常见的情况是用户处于非活动状态30分钟,用户从新广告系列进入网站,以及用户从已知搜索引擎进入网站时。

    最后两个是这里的问题。 Google根据广告系列代码(gclid或utm_)和引荐来源的组合判断这些条件,并且单个页面应用引用的不会更新

    1. 用户通过adwords进入www.example.com。分析页面加载 将有一个gclid广告系列代码和谷歌作为推荐人。
    2. 用户点击内部链接,SPA处理路由。
    3. 广告系列代码已移除,而推介商将使用非SPA 改为www.example.com,但由于这是一个SPA,所以没有 真正的网页加载和引荐来源仍然是谷歌。
    4. Google Analytics获取综合浏览量,查看广告系列和引荐来源 组合已更改,并且引荐来源属于搜索引擎, 并假设用户离开页面,然后从搜索中重新输入 术语
    5. Google Analytics会在没有广告系列的情况下启动新会话,并将会话定义为自定义流量(因为它相信从Google搜索匹配中输入的用户),并且广告系列会话是反弹的。
    6. 为了防止这种情况,我们最终做了两件事。首先,我们手动向Google跟踪代码管理器发送引荐来源(如果没有发送,则默认为document.referrer,如上所述,不会更新)。在第一个页面加载中,我们使用真正的引荐来源,以便正确地归属命中。在任何后续页面加载中,我们将自己的域名作为引荐来源发送,就像它在非SPA上一样。这告诉分析我们正在内部路由并且它不应该启动新会话。

      引用者可以像发送虚拟网页浏览网址一样发送给GTM,并且(在写作的那一刻)设置在与url和pagetitle相同的位置。我们确保在发送到分析的所有事件上完成此操作,而不仅仅是网页浏览。

      第二件事来自下面的Jareds答案,我们确保设置页面而不仅仅是位置(请参阅下文,了解这些不同的原因)。可以在GTM的高级设置中设置页面。只需要这两件事中的一件,但我们两件事都是为了安全。

      这似乎给了我们大部分正确的数据。与adwords的数据相比,我们仍然缺少大约15%的cpc交易,但我们很难知道我们到底有多接近。 Adwords和analytics不会测量同一个东西,因此可以预期差异,差异的大小会因页面而异。然而,对我们来说,它足以用于测试和营销,所以它现在必须要做。

      如果有人发现更一致的解决方案,请写下新的答案!

2 个答案:

答案 0 :(得分:2)

我们在betabrand.com遇到了类似的麻烦。

上个月,我们使用angularJs从多页应用切换到单页应用,并立即开始获取跟踪Universal Analytics和Google Analytics的不良广告收入。

我们还使用Google跟踪代码管理器来发起我们的活动。

我们目前的领先优势来自https://developers.google.com/analytics/devguides/collection/analyticsjs/single-page-applications

哪个州:

  

不要更新文档位置

     

与跟踪器使用document.referrer的方式相同   referrer字段,它使用document.location作为位置字段,   它通常包含表单中的广告系列数据或其他元数据   查询参数附加到URL的末尾。

     

更新Google的任何广告系列字段或其他元数据   分析正在检查可能导致当前会话结束和a   新会议开始。要避免此问题,请不要更新   在单个页面中跟踪虚拟综合浏览量时的位置字段   应用。请改用页面字段。

它还包括这个注释

  

注意:如果您发送包含位置和页面的匹配   字段和路径值不同,Google Analytics将使用   为页面字段指定的值。

对我们来说,这表示如果您包含“'页面'它将胜过一个地方'字段值,如果你包含一个'位置'没有'页面的字段'在初始页面加载后的字段中,您可能会在剥离广告系列跟踪时启动新会话的风险。

使用google analytics调试器chrome扩展程序,我们能够识别确实触发位置参数且没有页面参数的事件。

用户点击我们的页面,GTM会使用“'位置”触发页面视图。参数。后续的虚拟页面浏览包括“位置”和“位置”。和'页'参数。但是,当用户打开购物车时,我们也会发起一个事件,其中包括一个位置'参数而不是'页面'参数。

我们刚刚更新了我们的GTM配置,试图解决这个问题,并指出它会起作用。如果我们找到解决方案,我会更新我的帖子。

我们现在已经为 WAY 进行了长时间的摔跤。

答案 1 :(得分:1)

我面临同样的问题(目前正在实施解决方案......只进行了一些研究)并且它可能有一些事情要做,谷歌只在他们的文档中简要提及,即: {{3} } GTM每次都会创建一个新的跟踪器..

可能的解决方案

不要让GTM每次都启动一个新的跟踪器,而是在GTM中设置trackerName,如spaTracker'适用于您的单页应用。

Do not create new trackers.

Set tracker name