我想在我的网页上放置一个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/$']);
它不起作用。
我做错了什么吗?我应该使用宏吗?
由于
答案 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的选项,你可以在那里使用宏)。