我的帐户中有两个Google Analytics配置文件。一,对于我的生产帐户,其属性ID为:UA-XXXXXXXX-1。我的第二个配置文件是我的暂存帐户进行测试,它有属性ID:UA_XXXXXXXX-2。
在标记管理器中,如果我的网址包含“mydomain.com”,我的“-1”标记会被触发,如果网址包含“mydomain.it”,我的“-2”标记会触发。
使用此设置触发GA标记工作正常。我将分段数据与生产分开,并且能够测试基本的GA网页浏览量。
现在需要的是分离事件的能力。目前,我在每个事件跟踪之前调用setAccount(我知道这可以在单个调用中)。
_gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
_gaq.push(['_trackEvent', 'Videos', 'Play', 'Gone With the Wind']);
我想要做的是调用_setAccount方法并动态传入Google跟踪代码管理器中的值,我根据网址设置属性ID。
有没有办法做这样的事情(或更好的事情)所以我可以根据跟踪代码管理器规则设置帐户?
_gaq.push(['_setAccount', [Tag Manager Property ID] ]);
感谢您的任何建议/帮助。
谢谢!
答案 0 :(得分:2)
IMO将数据从标签管理器传递到网站,除了所有实际困难之外,完全无法实现具有异步加载代码的目的。
您可以在堆栈上“推送”方法,以便在代码在将来的某个未确定点加载时可以处理它们。如果你想从代码中获取帐户id,你必须等到它被加载,所以你将失去异步加载的所有优点。
据我所知(尚未广泛使用标签管理器),正确的方法是将事件数据推送到“数据层”变量:
dataLayer.push({'myevent': 'mylabel'});
并在通过标记管理器部署的代码中使用变量(如dataLayer.myevent)(因此您可以在特定于域的代码中进行实际的事件跟踪)。
这在https://developers.google.com/tag-manager/devguide
中描述标签管理器中实际存在Google Analytics的事件跟踪模板。对于事件值,您可以创建一个新宏并将其设置为dataLayer变量。然后添加您的特定于域的规则,您应该全部设置。