Google Analytics 中是否有一种支持的方式来跟踪活动而无需使用查询字符串参数。
在 Analytics 中,您可以使用查询字符串参数(例如和 )标记指向您网站的链接,这些参数包含有关活动的信息,以便对其进行跟踪。utm_campaign
utm_medium
谷歌实际上有一个在线工具来帮助创建此类链接。
例如,如果 StackOverflow 在 Experts Exchange 上做广告,他们可能有这样的链接:
出于多种原因,我不希望这些看起来笨拙的参数出现在我的 URL 中:
- 我想鼓励twitter,而长链接不鼓励这样做
- 我不希望人们用广告系列 ID 为他们添加书签
- 我希望人们看到一个干净的 URL
- 我不希望搜索引擎索引这些链接。
- 我想要完全控制发送到谷歌分析的参数 - 而不是让我的合作伙伴搞乱他们访问我网站的 URL
不久前,我试图找到一种可以设置这些参数的方法。Google 有一个页面,乍一看似乎是解决方案,但实际上并非如此。该页面描述了如何将查询字符串参数的名称更改为其他名称 - 例如使用src
而不是utm_source
运行:
pageTracker._setCampSourceKey("src");
我似乎真的无法弄清楚为什么他们不能轻松地实际显式设置utm_source
键的值- 而不仅仅是为其设置替代参数名称。
我记得不久前找到了一个有一种讨厌的黑客的人,但现在我什至找不到。我似乎记得,不管是谁拿了分析代码的副本,基本上把它分支出来并对其进行了黑客攻击。这对我来说不是一个好的解决方案!
是否有一种官方支持的方式来做到这一点,而没有某种讨厌的重定向。
简而言之,我想做这样的事情(ASP.NET MVC 站点)。使用如下 URL 为 partnet 提供指向我网站的链接:
http://www.example.com/?cid=2dae88a8-66b1-475d-8a35-2978bd1a158c
在我的 MVC 页面的控制器中,我会找出这个 GUID 与什么活动相关,并设置模型状态。注意:这为我提供了一个优势,即我可以更改活动参数而无需重新发布 URL。
在页面本身,我会这样做:
var campaignMedium = <%= ViewData.Model.CampaignMedium %>;
var campaignSource = <%= ViewData.Model.CampaignSource %>;
var campaignName = <%= ViewData.Model.CampaignName %>;
pageTracker._setCampaignData({
utm_source: campaignSource,
utm_medium: campaignMedium,
utm_campaignName: campaignName
});
pageTracker._trackPageview();
重要提示:此 _setCampaignData 方法实际上并不存在。这只是我理想中想要做的“伪代码”。
有没有人成功地做到了这样的事情?