Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建后更改google analytics TrackingId_Javascript_Google Analytics - Fatal编程技术网

Javascript 创建后更改google analytics TrackingId

Javascript 创建后更改google analytics TrackingId,javascript,google-analytics,Javascript,Google Analytics,说明: 我有一个使用googleanalytics代码的单页应用程序。该应用程序适用于4个不同的国家顶级域名,例如www.example.de、www.example.at、www.example.be等。。也可以在不更改域名的情况下更改国家/地区。例如,如果您在www.example.co.uk域上工作,则无需重新加载页面即可将国家/地区更改为德国 问题: 我需要为每个国家使用不同的trackingID,而无需重新加载页面 如果我加载带有.co.uk顶级域跟踪id的页面,我以后无法在不重新加载

说明:

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

问题:

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

如果我加载带有.co.uk顶级域跟踪id的页面,我以后无法在不重新加载页面的情况下对其进行更改。这怎么可能

我读了谷歌的文件。并使用文档创建跟踪代码

创建跟踪ID后是否可以更改跟踪ID


您可以做一个变通方法:

  • 创建一个cookie,存储国家名称
  • 当用户单击以更改国家时,推送一个数据层对象,并使用该国家更改cookie的值
  • 创建一个自定义变量,并根据cookie值将该变量的值设置为跟踪id
因此,您将在两种情况下着陆:

如果用户不更改国家,则使用UA id值等于cookie变量的标记

如果用户更改了国家/地区,则使用UA id值触发标记,该值等于在数据层推送事件上触发cookie的变量



附言:这是个小把戏,反正我也不能尝试,因为我没有网站。请仔细检查

哇,这真有趣。但是,在不知道技术是否有效的情况下采取行动是有风险的。也许你需要做一个跨域的例子。在两个帐户上具有相同的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 -->
因此,在SPA上,您可以使用命令手动推送页面视图

ga('send', 'pageview'); //to you original loaded tracking code

铁道部信息:

奖金轨道,使用GTM:

通过谷歌标签管理器和数据层,你可以在每次点击时设置国家。例如,您可以创建一个Vlookup表

例如,更改变量的UA,该变量在dataLayer.push上读取您的国家值,并在标记上返回所需的UA。这是最好的办法。但是,这个答案越来越长了。阅读更多信息

谢谢你,回答得很好。但一些国家由于数据安全问题希望禁用跟踪。在这种情况下,不可能使用GTM,因为一些国家不希望将用户数据传输到google服务器。我想我找到了另一个解决办法。我删除了默认的命名跟踪程序,并根据国家/地区的变化添加了一个新的跟踪程序。这是一个解决方案吗?@KorayGüclü,不确定你是否可以自然删除一个create对象,我们必须检查一下。因为创建是一个堆栈对象。我找到了一个解决方案,可以删除默认trackingId并创建一个新的。没有命名的TrackingID。这对于facebook是不可能的,只有谷歌是working@KorayGüclü,我不知道你为什么要谈论facebook,这是另一个脚本,但情况将非常相似。如果您的id在所有国家/地区都相同,您只需执行fb('track','PageView'),另一方面,如果您的id因国家/地区而异,则必须初始化另一个对象。我不知道该怎么做。
ga('send', 'pageview'); //to you original loaded tracking code
ga('trackercountryXX.send', 'pageview'); //If the interaction goes to the new tracking code.
dataLayer.push({'country' : 'xxxx'})