创建后更改google-analytics TrackingId

时间:2017-04-21 12:50:31

标签: javascript google-analytics

说明

我有一个单页面应用程序,我使用googleanalytics代码。该应用程序适用于4个不同的国家顶级域名,例如www.example.de,www.example.at,www.example.be等。也可以在不更改域名的情况下更改国家/地区。例如,如果您在域名www.example.co.uk上工作,则可以在不重新加载页面的情况下将国家/地区更改为德国。

问题:

我需要为每个国家/地区使用不同的trackingID,而无需重新加载页面。

如果我使用.co.uk加载域名跟踪ID加载页面。我不能在不重新加载页面的情况下更改它。怎么可能?

我从谷歌阅读了How Analytics Works文档。并使用Creating Trackers文档创建跟踪代码。

创建后可以更改跟踪ID吗?

screen shot of mockup

2 个答案:

答案 0 :(得分:0)

您可以解决方法:

  • 创建Cookie,存储国家/地区名称
  • 当用户点击更改国家/地区时,请推送dataLayer对象并更改该国家/地区的Cookie值。
  • 根据Cookie值为跟踪ID创建自定义变量和该变量的设置值。

所以你将会遇到两种情况:

如果用户未更改国家/地区,请使用等于Cookie变量的UA ID值触发标记。

如果用户更改国家/地区,请使用UA id值等于数据层推送事件触发的Cookie变量来触发标记。

PS:这是一个小技巧,无论如何我都无法尝试,因为我没有网站。请彻底检查。

答案 1 :(得分:0)

哇,这很有意思。但是,在不知道技术有效的情况下采取行动可能会有风险。也许你需要做一个Crossdomain。在两个帐户上都有相同的ID。但我会尽量保持简单:

是的,它可以执行命令create,当用户到达您的域时跟踪常规跟踪代码

<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');
</script>
<!-- End Google Analytics -->

但是当用户更改语言或国家/地区代码时,您必须创建新代码 跟踪对象(在新的URL位于broswer之后)。

ga('create', 'UA-XXXXX-Y', 'auto', 'trackercountryXX');

因此,在SPA上,您可以使用命令

手动推送网页浏览
ga('send', 'pageview'); //to you original loaded tracking code

ga('trackercountryXX.send', 'pageview'); //If the interaction goes to the new tracking code.

关于https://developers.google.com/analytics/devguides/collection/analyticsjs/creating-trackers#working_with_multiple_trackers

的信息

奖励跟踪,使用GTM:

使用Google跟踪代码管理器和dataLayer,您可以在每次点击时设置国家/地区。您可以创建例如Vlookup表

enter image description here

dataLayer.push({'country' : 'xxxx'})

例如,更改读取dataLayer.push上国家/地区值的变量的UA,并在Tags上返回所需的UA。这是最好的方式。但这个答案变得越来越不必要了。阅读更多信息 https://developers.google.com/tag-manager/quickstart