Google Analytics 是否支持无需使用查询字符串参数即可跟踪事件的方法。
在 Analytics 中,您可以 tag a link to your site带有查询字符串参数,例如 utm_campaign
和 utm_medium
,它们携带有关事件的信息以便对其进行跟踪。
Google 实际上有一个 online tool帮助创建此类链接。
例如,如果 StackOverflow 在 Experts Exchange 上做广告,他们可能会有这样的链接:
出于多种原因,我不希望这些看起来笨拙的参数出现在我的 URLS 中:
- 我想鼓励推特,而长链接不鼓励这样做
- 我不希望人们在
- 我希望人们看到一个干净的 URL
- 我不希望搜索引擎索引这些链接。
- 我想完全控制将哪些参数发送到 Google Analytics - 而不是让我的合作伙伴弄乱他们访问我网站时使用的 URL
我前一阵子试图找到一种可以设置这些参数的方法。 Google has a page乍一看似乎是解决方案,但实际上并非如此。该页面描述了如何将查询字符串参数的名称更改为其他名称 - 例如使用 src
而不是 utm_source
您将运行:
pageTracker._setCampSourceKey("src");
我似乎真的无法弄清楚为什么他们不让实际显式设置 utm_source
键的值变得容易 - 而不仅仅是为其设置一个替代参数名称。
我记得有一段时间我找到了一个有某种令人讨厌的黑客攻击的人,但我现在似乎找不到了。我似乎记得,无论是谁拿了一份分析代码的副本,基本上将其分支并对其进行了黑客攻击。这对我来说不是一个好的解决方案!
是否有官方支持的方式来执行此操作,而无需某种讨厌的重定向。
简而言之,我想做这样的事情(ASP.NET MVC 站点)。使用如下 URL 为 partnet 提供指向我网站的链接:
http://www.example.com/?cid=2dae88a8-66b1-475d-8a35-2978bd1a158c
在我的 MVC 页面的 Controller 中,我会找出此 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 方法实际上并不存在。这只是我希望能够执行的操作的“伪代码”。
有没有人成功地做到了这样的事情?
最佳答案
_set campaignParams
您的理论“_setCampaignData”终于以 ["_set","campaignParams",...] 的形式存在
如果您有办法以编程方式注入(inject)您想要设置的值(例如,通过重定向时的 cookie 设置,或在服务器端设置并打印到页面上),您可以使用 _set
API 用于对您要设置的广告系列参数进行硬编码。
它的格式是:
_gaq.push(['_set', 'campaignParams',
'utm_campaign=CAMPAIGN&utm_source=SOURCE&utm_medium=MEDIUM']);
因此,使用您的原始示例:
var campaignMedium = <%= ViewData.Model.CampaignMedium %>;
var campaignSource = <%= ViewData.Model.CampaignSource %>;
var campaignName = <%= ViewData.Model.CampaignName %>;
_gaq.push(['_set', 'campaignParams',
'utm_campaign=' + campaignName + '&utm_source=' + campaignSource +'&utm_medium=' + campaignMedium]);
2017 年更新
This answer详细介绍了如何使用较新的 Google Analytics 库 analytics.js/Universal Analytics 来实现这一点。
关于javascript - 在没有查询字符串参数的情况下使用 Google Analytics 跟踪事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/934119/