如何将输出变量从analytics.js调用中取出以重定向



在我的工作中,我们试图使用谷歌分析做一些跨域跟踪。问题是涉及到服务器端重定向。我们的解决方案是将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分钟内有效,因此您不能在早期执行此操作并保存以供以后使用。

最新更新