使用“HTML Custom”类型标记在Google跟踪代码管理器上无法识别服务器变量

时间:2013-01-16 18:04:53

标签: javascript google-analytics google-tag-manager

我想在我的网页上放置一个GTM容器,只是为了添加脚本而不修改我的页面的html(我将不再有访问权限)。

1)目前,我只是放了GTM代码,在我的GTM帐户上创建了一个标签(标签类型= GA),添加了我的GA帐户的UA-XXXXX-Y:它的工作,我可以看到来自我的GA的访问累计。

2)然后,我尝试更改在GTM上创建的标签的类型:我选择自定义HTML类型,然后我输入GA提供的代码(使用正确的UA)

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-Y']);
_gaq.push(['_setDomainName', 'example.com']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

它也有效,我看到来自GA界面的访问

3)我想修改GA给出的代码,特别是用param添加trackPageview(使用服务器变量,这是我的问题......)

所以我只修改了我在2)中使用的代码,只需添加:

_gaq.push(['_trackPageview', '/Page1/$!{VAR}/Page2/$']);

它不起作用。

我做错了什么吗?我应该使用宏吗?

由于

1 个答案:

答案 0 :(得分:1)

Serverside变量不能与GTM一起使用(因为代码是通过javascript从不同的服务器插入的)所以是的,宏是最佳选择。

创建一个数据层(在GTM标记之前的开始正文标记之后插入的JSON var:

<script>
dataLayer = [{    
    'myVar': '{VALUE INSERTED BY SERVER }'

}];
</script>

现在您可以在GTM中作为宏访问myVar(&#34; {{myVar}}&#34;):

_gaq.push(['_trackPageview', '{{myVar}}']);

这也适用于GTM中的GA标记模板(有一个插入虚拟URL的选项,你可以在那里使用宏)。