3

我的帐户中有两个 Google Analytics(分析)个人资料。一,对于我的生产帐户,属性 ID:UA-XXXXXXXX-1。我的第二个配置文件用于测试我的暂存帐户,它的属性 ID:UA_XXXXXXXX-2。

在标签管理器中,如果我的 url 包含“mydomain.com”,我的“-1”标签会触发,如果 url 包含“mydomain.it”,我的“-2”标签会触发。

使用此设置触发 GA 标签可以正常工作。我的暂存数据与生产数据分开,并且能够测试基本的 GA 网页浏览量。

现在需要的是分离事件的能力。目前,我在每个事件跟踪之前调用 setAccount(我知道这可以在单个调用中)。

_gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
_gaq.push(['_trackEvent', 'Videos', 'Play', 'Gone With the Wind']);

我想要做的是调用 _setAccount 方法并从 Google 跟踪代码管理器中动态传递值,我在其中根据 url 设置属性 ID。

有没有办法做这样的事情(或更好的事情),以便我可以根据跟踪代码管理器规则设置帐户?

_gaq.push(['_setAccount', [Tag Manager Property ID] ]);

感谢您提供的任何建议/帮助。

谢谢!

4

1 回答 1

2

IMO 将数据从标签管理器传递到网站,除了所有实际困难之外,将完全违背异步加载代码的目的。

您将方法“推送”到堆栈上,以便在将来某个未确定的时间点加载代码时处理它们。如果您想从代码中获取帐户 ID,则必须等到它被加载,因此您将失去异步加载的所有优势。

据我所知(尚未广泛使用标签管理器)正确的方法是将事件数据推送到“数据层”变量:

dataLayer.push({'myevent': 'mylabel'});

并在通过标签管理器部署的代码中使用变量(如 dataLayer.myevent)(因此您可以在域特定代码中进行实际事件跟踪)。

这在以下位置进行了描述:https ://developers.google.com/tag-manager/devguide

标签管理器中实际上有一个用于 Google Analytics 的事件跟踪模板。对于事件值,您可以创建一个新宏并将其设置为 dataLayer 变量。然后添加您的域特定规则,您应该一切就绪。

于 2012-11-13T08:22:50.537 回答