设置自定义活动_setCampNameKey在Google Analytics ga.js中不起作用


Setting Custom Campaign _setCampNameKey not working in Google Analytics ga.js

你好,我想使用我的应用程序通过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?>']);