如何让Google Analytics跟踪Javascript window.location.href重定向?

时间:2013-05-09 16:00:29

标签: javascript google-analytics

在我的HTML页面上,我有一些驱动下拉菜单的Javascript代码。用户可以选择要下载的文件,然后按下按钮进行下载。

这是Javascript代码的一部分:

        var dd = document.getElementById("OSselectDropdown");
        var OSchoice = dd.options[dd.selectedIndex].value;
        if (OSchoice == "win")
        {
           window.location.href = "http://mysite.com/downloads/installer.exe";
        }
        if (OSchoice == "mac")
        {
           window.location.href = "http://mysite.com/downloads/installer.pkg";
        }

我希望能够跟踪下载文件的次数。我找到了this code,它使用了jQuery,它可以在Google Analytics中启用下载计数。

但是,代码似乎只对<a>标记起作用。我做了一些测试,它似乎并不适用于我的情况,我认为因为我使用Javascript和window.location.href连接到可下载文件。

有没有办法可以利用这个Javascript代码让Google Analytics跟踪我在下拉列表中获得的下载次数?

或者是否有其他或更好的方法来跟踪我的Javascript下拉列表中的下载内容?


更新

根据提供的答案,以及查看Google's documentation,我已将代码更改为:

        var dd = document.getElementById("OSselectDropdown");
        var OSchoice = dd.options[dd.selectedIndex].value;
        if (OSchoice == "win")
        {
            _gaq.push(['_trackEvent','Installer','Download', 'Windows']);
            window.location.href = "https://" + top.location.host + "/+download/Windows_Installer.exe";
        }
        if (OSchoice == "mac")
        {
            _gaq.push(['_trackEvent','Installer','Download','Mac']);
            window.location.href = "https://" + top.location.host + "/+download/Mac_Installer.pkg";
        }
        if (OSchoice == "linux")
        {
            _gaq.push(['_trackEvent','Installer','Download','Linux']);
            window.location.href = "https://" + top.location.host + "/+download/Linux_Installer.tar.gz";
        }

但是,我的Google Analytics界面没有任何变化。新调整的代码是否正确,如果是,我应该在哪里看到Google Analytics中跟踪的下载?

2 个答案:

答案 0 :(得分:4)

您需要做的就是致电

_gaq.push(['_trackEvent','Install','exe','http://mysite.com/downloads/installer.exe']);
or
_gaq.push(['_trackEvent','Install','pkg','http://mysite.com/downloads/installer.pkg']);
在重定向用户之前,在代码中

更新:

为了确保实际跟踪事件,您必须推迟重定向并将其包装到.push()方法的回调中,check similar question

这个怎么样?

...
switch (OSchoice) {

    case 'win':
        _url = 'http://' + top.location.host + '/+download/Windows_Installer.exe';
        _ext = 'exe';
        break;

    case 'mac':
        _url = 'http://' + top.location.host + '/+download/Mac_Installer.pkg';
        _ext = 'pkg';
        break;

    case 'linux':
        _url = 'http://' + top.location.host + '/+download/Linux_Installer.tar.gz';
        _ext = 'tar.gz';
        break;
}

if (_url) {
    _gaq.push(['_set', 'hitCallback', function(){window.location.href = _url;}]);
    _gaq.push(['_trackEvent', 'Install', _ext, _url]);
}

答案 1 :(得分:2)

您正在寻找的是事件跟踪。以下是文档:eventTrackerGuide