在我的工作中,我们试图使用谷歌分析做一些跨域跟踪。问题是涉及到服务器端重定向。我们的解决方案是将google分析信息附加到初始URL。
我们有一个带有结帐按钮的购物车页面。单击结帐按钮触发btnCheckout_OnClick,它创建一个URL,然后使用RegisterClientScriptBlock访问页面上的javascript函数。RegisterClientScriptBlock调用看起来像这样:
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "gaCrossDomain", "gaCrossDomain('" + checkoutUrl + "');", true);
同时,Javascript到目前为止看起来像这样:
function gaCrossDomain(url) {
ga(function(tracker) {
var linker = new window.gaplugins.Linker(tracker);
var output = linker.decorate(url);
});
}
ga函数调用是对analytics.js的调用。它是如何工作的详细信息在这里:https://developers.google.com/analytics/devguides/collection/analyticsjs/cross-domain#decorate
然而,它不够详细。为了达到这个问题的底线:我如何从ga函数调用中获得"输出"?一旦我有了修改后的url,我就可以将其用于重定向。或者,是否有任何方法可以在ga调用中重定向?
在包装器函数中声明output
,然后返回它:
function gaCrossDomain(url) {
var output;
ga(function(tracker) {
var linker = new window.gaplugins.Linker(tracker);
output = linker.decorate(url);
});
return output;
}
例子:
var src = gaCrossDomain('http://www.somesite.com');
console.log(src);
// output: http://www.somesite.com?_ga=1.181772207.989393484.1440257672"
注意:返回的值仅在2分钟内有效,因此您不能在早期执行此操作并保存以供以后使用。