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

3
在我的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的文档,我已将代码更改为以下内容:

        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个回答

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()方法的回调函数中,查看类似的问题
这个怎么样?
...
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]);
}

谢谢您的回复。您是说我只需要您提供的这两行代码,而不需要我链接页面上的其他代码吗?我需要jQuery库吗,还是Google Analytics会自动获取它? - Questioner
在重定向之前,您必须输入相应的行,第一行用于“win”选项,第二行用于“mac”。唯一需要记住的是,在脚本之前粘贴GA跟踪代码。是的,您只需要GA代码即可处理此操作。 - Jura Khrapunov
谢谢你的帮助。我已经调整了我的代码,以符合我认为你建议我做的事情,但是在我的Google Analytics界面中没有看到任何有关下载的信息。我已将我的新代码添加到我的问题中。我是否正确实现了你的建议? - Questioner
谢谢你提供的代码。我还不确定是否已经连接到Google Analytics,但有一件奇怪的事情是,在实施你提供的代码后,似乎会导致所选的下载文件一遍又一遍地被激活。不确定为什么会发生这种情况。 - Questioner
我已经暂时回到了我的if语句语法。在更好地理解谷歌文档后,我还稍微改变了我的标签。我尝试使我的标签对于那些将跟踪谷歌分析数据的人类而言更易读。这些更改已反映在我的问题中。 - Questioner

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接