首页 文章

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

提问于
浏览
6

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

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

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

I.E.

  • 用户使用adwords中的gclid标记进入网站 .

  • 该访问被跟踪为谷歌cpc流量 .

  • 用户单击页面中的链接,或触发主干路由器.navigate函数以加载新内容 .

  • 来自(2)的原始会话结束并计为已退回,即使用户只是跟随网站内的链接 .

  • 创建一个新会话,不计入cpc-traffic(因为新页面没有gclid标记) .

Important note: 此问题仅发生在广告系列访问者身上!没有广告系列标记的用户在点击链接时不会获得新会话 .

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

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


Edit - A summary of the problem and the current, imperfect, solution

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

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

最后两个是这里的问题 . Google根据广告系列代码(gclid或utm_)和引荐来源以及 on a single page application referrer does not update 的组合来判断这些条件!

I.E.

  • 用户通过adwords进入www.example.com . 分析网页内容将包含gclid广告系列代码和Google作为引荐来源 .

  • 用户单击内部链接,SPA处理路由 .

  • 广告系列标记已移除,在非SPA上,引荐来源将更改为www.example.com,但由于这是SPA,因此没有真正的网页加载,而引荐来源仍为Google .

  • Analytics获取综合浏览量,发现广告系列和引荐来源组合已更改且引荐来源属于搜索引擎,并假定用户离开了网页,然后从搜索字词中重新输入 .

  • Analytics会在没有广告系列的情况下启动新会话,并将会话定义为自定义流量(因为它相信从Google搜索匹配中输入的用户),并且广告系列会话是反弹的 .

为了防止这种情况,我们最终做了两件事 . 首先,我们手动向Google跟踪代码管理器发送引荐来源(如果没有发送,则默认为document.referrer,如上所述,不会更新) . 在第一个页面加载中,我们使用真正的引荐来源,以便正确地归属命中 . 在任何后续页面加载中,我们将自己的域名作为引荐来源发送,就像它在非SPA上一样 . 这告诉分析我们正在内部路由并且它不应该启动新会话 .

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

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

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


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

2 回答

  • 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 Analytics正在检查的任何广告系列字段或其他元数据可能会导致当前会话结束并开始新会话 . 要避免此问题,请勿在单个页面应用程序中跟踪虚拟综合浏览量时更新位置字段 . 请改用页面字段 .

    它还包括此注释

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

    对我们来说,如果您包含“页面”字段,它将胜过“位置”字段值,如果您在初始页面加载后包含没有“页面”字段的“位置”字段,则存在启动风险可能会删除广告系列跟踪的新会话 .

    使用谷歌分析调试器chrome扩展,我们能够识别确实触发位置参数而没有页面参数的事件 .

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

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

    我们一直在为这个问题挣扎太长时间了 . [2633952_

  • 1

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

    Possible solution

    不要让GTM每次都启动一个新的跟踪器,而是在GTM中设置跟踪器名称,例如单个应用程序的“spaTracker” .

    Set tracker name

    All credits go to Thyngster .

相关问题