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";
        }

我希望能够跟踪文件下载了多少次。我找到了这段代码,它使用了 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 中跟踪的下载量?

4

2 回答 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]);
}
于 2013-05-09T16:07:51.990 回答
2

您正在寻找的是事件跟踪。这是相关的文档:eventTrackerGuide

于 2013-05-09T16:05:42.960 回答