Google 分析(通过标签管理器)在第一次页面加载后失去对 Adwords 访问者的跟踪
Google analytics (via tag manager) loses track of adwords visitors after first pageload
我在使用 Google 标签管理器 (GTM)、Google 分析 (GA) 和 Google 广告词时遇到了一个非常奇怪的问题。到目前为止,我没有解决它。
设置:
我们有一个单页应用程序(backbone 和 marionette),我们使用 GTM 使用标准 dataLayer.push 事件(以及 e-commerce 事件,如果这是相关的)。此设置通常工作正常。
问题:
问题是来自 adwords 的用户带有 gclid 标签。这些用户的第一次综合浏览量被正确地跟踪和归因于 adword 广告系列,但只要他们点击网站上的任何 link,他们似乎就会在 GA 中获得新的 session,而原始 session 然后被计为一次反弹。所有页面都在同一个域中,我们已经验证这些活动用户实际上并没有跳出,他们仍在网站上,但不知何故被 GA 标记错误。
I.E.
- 用户使用来自 adwords 的 gclid 标记进入网站。
- 访问被跟踪为 google 每次点击费用流量。
- 用户单击页面中的 link,或触发 backbones router.navigate 函数加载新内容。
- 来自 (2) 的原始 session 已结束并计为退回,即使用户刚刚在站点内关注了 link。
- 创建了一个新的 session,它不算作 cpc-traffic(因为新页面没有 gclid 标记)。
重要说明:此问题仅发生在活动访问者身上!没有广告系列标签的用户在点击 link 时不会获得新的 session。
有没有人遇到过这样的问题?在单页应用程序上通过 GTM 使用 adwords 时有什么特别的事情要考虑吗?是什么导致 Google 分析无法跟踪这样的 session?
有问题的站点 https://fyndiq.se,在移动设备中(它使用动态服务,桌面版本不存在问题,它不是 SPA)。
编辑 - 问题总结和当前不完善的解决方案
我们已经设法达到了可接受的水平,但还远非完美。由于解决方案都散布在评论中,我想我会在这里总结一下结果。
问题确实是 Analytics 为 Adwords 用户创建了新的 sessions,失去了对活动的跟踪。 Analytics 将在几个不同的条件下为用户启动一个新的 session。最常见的情况是用户处于非活动状态 30 分钟、用户通过新活动进入网站以及用户通过已知搜索引擎进入网站。
最后两个是这里的问题。 Google 根据广告系列标签(gclid 或 utm_)和引荐来源网址的组合判断这些条件,并且 在单个页面上应用引荐来源网址不会更新!
I.E.
- 用户通过 adwords 输入 www.example.com。分析页面加载
将有一个 gclid 广告系列标签和 google 作为推荐人。
- 用户点击内部 link,SPA 处理路由。
- 活动标签已删除,在非 SPA 上,推荐人会
更改为 www.example.com,但由于这是一个 SPA,因此没有
实际页面加载和引荐来源网址保持 Google.
- 分析获取综合浏览量,查看活动和推荐人
组合已更改并且引荐来源网址属于搜索引擎,
并假设用户离开了页面,然后 re-entered 进行了搜索
任期。
- Analytics 在没有活动的情况下开始新的 session,并将 session 归因于自然流量(因为它认为用户是从 google 搜索命中输入的),并且活动 session 是反弹。
为了防止这种情况,我们最终做了两件事。首先,我们手动将引荐来源网址发送到 Google 标签管理器(如果发送 none,则默认为 document.referrer,如上所述不会更新)。在第一个页面加载时,我们使用真实的引荐来源网址,以便正确归因于点击。在任何后续页面加载中,我们将自己的域作为引荐来源网址发送,就像它在非 SPA 上一样。这告诉分析我们正在内部路由,它不应该开始一个新的 session.
引荐来源网址可以像发送虚拟综合浏览量一样发送到 GTM url,并且(在撰写本文时)设置在与 url 和页面标题相同的位置。我们确保对发送到分析的所有事件都这样做,而不仅仅是页面浏览量。
第二件事来自下面 Jareds 的回答,我们确保设置页面而不仅仅是位置(请参阅下文了解为什么这些不同)。可以在 GTM 的高级设置中设置页面。应该只需要这两件事中的一件,但为了安全起见我们都做了。
这似乎给了我们大部分正确的数据。与来自 adwords 的数据相比,我们仍然遗漏了大约 15% 的每次点击费用交易,但很难知道我们离完成有多近。 Adwords 和一个分析不测量相同的东西,所以差异是可以预料的,差异的大小会因页面而异。不过足够我们用来做测试和营销了,所以暂时只能这样了。
如果有人找到更一致的解决方案,请写一个新的答案!
我们 betabrand.com 遇到了非常相似的问题。
上个月,我们使用 angularJs 从多页面应用程序切换到单页面应用程序,并立即开始在跟踪 Universal Analytics 和 Google Analytics 时获得糟糕的广告收入。
我们还使用 Google 跟踪代码管理器来触发我们的事件。
我们目前的领先优势来自 https://developers.google.com/analytics/devguides/collection/analyticsjs/single-page-applications
其中指出:
Do not update the document location
In the same way that the tracker uses document.referrer for the
referrer field, it uses document.location for the location field,
which will often contain campaign data or other meta data in the form
of query parameters appended to the end of the URL.
Updating any of the campaign fields or other meta data that Google
Analytics is checking for may cause the current session to end and a
new session to begin. To avoid this problem, do not update the
location field when tracking virtual pageviews in a single page
application. Use the page field instead.
它还包括这条注释
Note: if you send a hit that includes both the location and page
fields and the path values are different, Google Analytics will use
the value specified for the page field.
对我们来说,这意味着如果您包含 'page' 字段,它将胜过 'location' 字段值,并且如果您包含 'location' 字段而没有 'page' 字段在初始页面加载后 运行 开始新会话的风险可能会删除广告系列跟踪。
使用 google 分析调试器 chrome 扩展,我们能够识别确实触发位置参数但没有页面参数的事件。
用户点击我们的页面,GTM 使用 'location' 参数触发页面视图。随后的虚拟页面浏览量包括 'location' 和 'page' 参数。然而,当用户打开他们的购物车时,我们也会触发一个事件,其中包含 'location' 参数而不是 'page' 参数。
我们刚刚更新了 GTM 配置以尝试解决此问题,并希望它能正常工作。如果我们找到解决方案,我会更新我的 post。
我们已经为此苦苦挣扎 WAY 太久了。
我面临同样的问题(目前正在实施解决方案.. 只做了一些研究)并且它可能与 Google 只是在他们的文档中简要提到的有关,即:Do not create new trackers. GTM 确实每次都会创建一个新的跟踪器..
可能的解决方案
不要让 GTM 每次都启动一个新的跟踪器,而是在 GTM 中为您的单页应用程序设置 trackerName,例如 'spaTracker'。
我在使用 Google 标签管理器 (GTM)、Google 分析 (GA) 和 Google 广告词时遇到了一个非常奇怪的问题。到目前为止,我没有解决它。
设置:
我们有一个单页应用程序(backbone 和 marionette),我们使用 GTM 使用标准 dataLayer.push 事件(以及 e-commerce 事件,如果这是相关的)。此设置通常工作正常。
问题:
问题是来自 adwords 的用户带有 gclid 标签。这些用户的第一次综合浏览量被正确地跟踪和归因于 adword 广告系列,但只要他们点击网站上的任何 link,他们似乎就会在 GA 中获得新的 session,而原始 session 然后被计为一次反弹。所有页面都在同一个域中,我们已经验证这些活动用户实际上并没有跳出,他们仍在网站上,但不知何故被 GA 标记错误。
I.E.
- 用户使用来自 adwords 的 gclid 标记进入网站。
- 访问被跟踪为 google 每次点击费用流量。
- 用户单击页面中的 link,或触发 backbones router.navigate 函数加载新内容。
- 来自 (2) 的原始 session 已结束并计为退回,即使用户刚刚在站点内关注了 link。
- 创建了一个新的 session,它不算作 cpc-traffic(因为新页面没有 gclid 标记)。
重要说明:此问题仅发生在活动访问者身上!没有广告系列标签的用户在点击 link 时不会获得新的 session。
有没有人遇到过这样的问题?在单页应用程序上通过 GTM 使用 adwords 时有什么特别的事情要考虑吗?是什么导致 Google 分析无法跟踪这样的 session?
有问题的站点 https://fyndiq.se,在移动设备中(它使用动态服务,桌面版本不存在问题,它不是 SPA)。
编辑 - 问题总结和当前不完善的解决方案
我们已经设法达到了可接受的水平,但还远非完美。由于解决方案都散布在评论中,我想我会在这里总结一下结果。
问题确实是 Analytics 为 Adwords 用户创建了新的 sessions,失去了对活动的跟踪。 Analytics 将在几个不同的条件下为用户启动一个新的 session。最常见的情况是用户处于非活动状态 30 分钟、用户通过新活动进入网站以及用户通过已知搜索引擎进入网站。
最后两个是这里的问题。 Google 根据广告系列标签(gclid 或 utm_)和引荐来源网址的组合判断这些条件,并且 在单个页面上应用引荐来源网址不会更新!
I.E.
- 用户通过 adwords 输入 www.example.com。分析页面加载 将有一个 gclid 广告系列标签和 google 作为推荐人。
- 用户点击内部 link,SPA 处理路由。
- 活动标签已删除,在非 SPA 上,推荐人会 更改为 www.example.com,但由于这是一个 SPA,因此没有 实际页面加载和引荐来源网址保持 Google.
- 分析获取综合浏览量,查看活动和推荐人 组合已更改并且引荐来源网址属于搜索引擎, 并假设用户离开了页面,然后 re-entered 进行了搜索 任期。
- Analytics 在没有活动的情况下开始新的 session,并将 session 归因于自然流量(因为它认为用户是从 google 搜索命中输入的),并且活动 session 是反弹。
为了防止这种情况,我们最终做了两件事。首先,我们手动将引荐来源网址发送到 Google 标签管理器(如果发送 none,则默认为 document.referrer,如上所述不会更新)。在第一个页面加载时,我们使用真实的引荐来源网址,以便正确归因于点击。在任何后续页面加载中,我们将自己的域作为引荐来源网址发送,就像它在非 SPA 上一样。这告诉分析我们正在内部路由,它不应该开始一个新的 session.
引荐来源网址可以像发送虚拟综合浏览量一样发送到 GTM url,并且(在撰写本文时)设置在与 url 和页面标题相同的位置。我们确保对发送到分析的所有事件都这样做,而不仅仅是页面浏览量。
第二件事来自下面 Jareds 的回答,我们确保设置页面而不仅仅是位置(请参阅下文了解为什么这些不同)。可以在 GTM 的高级设置中设置页面。应该只需要这两件事中的一件,但为了安全起见我们都做了。
这似乎给了我们大部分正确的数据。与来自 adwords 的数据相比,我们仍然遗漏了大约 15% 的每次点击费用交易,但很难知道我们离完成有多近。 Adwords 和一个分析不测量相同的东西,所以差异是可以预料的,差异的大小会因页面而异。不过足够我们用来做测试和营销了,所以暂时只能这样了。
如果有人找到更一致的解决方案,请写一个新的答案!
我们 betabrand.com 遇到了非常相似的问题。
上个月,我们使用 angularJs 从多页面应用程序切换到单页面应用程序,并立即开始在跟踪 Universal Analytics 和 Google Analytics 时获得糟糕的广告收入。
我们还使用 Google 跟踪代码管理器来触发我们的事件。
我们目前的领先优势来自 https://developers.google.com/analytics/devguides/collection/analyticsjs/single-page-applications
其中指出:
Do not update the document location
In the same way that the tracker uses document.referrer for the referrer field, it uses document.location for the location field, which will often contain campaign data or other meta data in the form of query parameters appended to the end of the URL.
Updating any of the campaign fields or other meta data that Google Analytics is checking for may cause the current session to end and a new session to begin. To avoid this problem, do not update the location field when tracking virtual pageviews in a single page application. Use the page field instead.
它还包括这条注释
Note: if you send a hit that includes both the location and page fields and the path values are different, Google Analytics will use the value specified for the page field.
对我们来说,这意味着如果您包含 'page' 字段,它将胜过 'location' 字段值,并且如果您包含 'location' 字段而没有 'page' 字段在初始页面加载后 运行 开始新会话的风险可能会删除广告系列跟踪。
使用 google 分析调试器 chrome 扩展,我们能够识别确实触发位置参数但没有页面参数的事件。
用户点击我们的页面,GTM 使用 'location' 参数触发页面视图。随后的虚拟页面浏览量包括 'location' 和 'page' 参数。然而,当用户打开他们的购物车时,我们也会触发一个事件,其中包含 'location' 参数而不是 'page' 参数。
我们刚刚更新了 GTM 配置以尝试解决此问题,并希望它能正常工作。如果我们找到解决方案,我会更新我的 post。
我们已经为此苦苦挣扎 WAY 太久了。
我面临同样的问题(目前正在实施解决方案.. 只做了一些研究)并且它可能与 Google 只是在他们的文档中简要提到的有关,即:Do not create new trackers. GTM 确实每次都会创建一个新的跟踪器..
可能的解决方案
不要让 GTM 每次都启动一个新的跟踪器,而是在 GTM 中为您的单页应用程序设置 trackerName,例如 'spaTracker'。