你好,我想使用我的应用程序通过ga.js
创建的一些自定义活动。我使用一些自定义活动和所有活动信息,创建该活动的哈希代码并将其放入url中。我的Campaigh URL看起来像
http://mysite.com/?aff=eyJer5fg4IxOCIsInRleHRfbGlua19pZCI6IjgyIiwiY2FtcGFpZ25faWQiOiIxNCJ9
现在,当用户登陆mysite.com
时,我检查查询参数aff
是否存在。如果是,则我解码活动信息,并尝试将其作为自定义活动发送。我的跟踪代码看起来像
<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'my profile id']);
_gaq.push(['_trackPageview']);
_gaq.push(['_setDomainName', 'mysite.com']);
<?php
if($this->campaignName != '') {
?>
_gaq.push(['_setCampNameKey','<?php echo $this->campaignName?>']);//my decoded info
_gaq.push(['_setCampMediumKey','<?php echo $this->campaignMedium?>']);//my decoded info
<?php
}
?>
(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>
但当一些用户点击上面的网址来到mysite.com时,ga.js
不会跟踪活动。我已经检查了我的DOM,确认_setCampNameKey
已正确呈现。但它将其视为推荐。有人能告诉我我做错了什么吗?这是跟踪我的自定义活动的方式还是其他方式?
由于_trackPageview
会触发跟踪过程,因此必须将_set*
命令置于_trackPageview
命令之前才能生效。
另一个解决方案是通过URL参数设置自定义活动。
编辑:另请参阅此问题的答案。_setCamp*Key
函数不直接设置值,而是设置包含该值的另一个URL参数的名称。例如,您必须将活动名称放在一个单独的URL参数中,如:
http://mysite.com/?camp_name=My+Campaign
然后您可以告诉GA my_camp_name
包含活动名称:
_gaq.push(['_setCampMediumKey','camp_name']);
在您的情况下,可以将带有这些参数的自定义URL传递给_trackPageview
:
_gaq.push(['_setAccount', 'my profile id']);
_gaq.push(['_setDomainName', 'mysite.com']);
_gaq.push(['_setCampNameKey','camp_name']);
_gaq.push(['_setCampMediumKey','camp_medium']);
_gaq.push(['_trackPageview', 'http://mysite.com/?camp_name=<?php echo $this->campaignName?>&camp_medium=<?php echo $this->campaignMedium?>']);