为什么google通用分析无法在我的webapp中运行?

时间:2015-01-31 12:24:27

标签: google-analytics phonegap-build

我在没有插件的情况下在我的webapp中使用GA。我只是添加了analytics.js并更改了一些我认为在webapp中工作所需的位(没有cookie,文件:// urls等)。我正在遵循此处描述的技术http://www.blastam.com/blog/index.php/2013/07/ga-universal-analytics-phonegap-mobile-apps - 它似乎与分析文档一致。

我也有应用程序的网络模拟器,我不做这些更改。在Web模拟器中,我可以看到请求在我称之为的地方。在应用程序中,没有任何反应 - 没有错误,没有请求。

// google analytics
        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script','http://www.google-analytics.com/analytics.js','ga');
        ga('create', this.settings.gatrackerid, 'auto');


        if (!this.settings.emulate) {

            // the app version
            ga('set', {
                'appName'       : this.settings.appname,
                'appId'         : this.settings.appid,
                'appVersion'    : this.settings.version,
                'checkProtocolTask' : null,    // allow file://urls
                'storage'       : 'none',      // no cookies available
                'clientId'      : device.uuid  // well use phonegaps uuid
            });
        } else {

            // the web version
            ga('set', {
                'appName'       : this.settings.appname,
                'appId'         : 'emulate '+this.settings.appid,
                'appVersion'    : this.settings.version
            });
        }

        ga('send', 'screenview',{
             'screenName'   : 'foo' // works on web, not in app
        });

任何人都知道什么是错误的以及如何调试它?

1 个答案:

答案 0 :(得分:0)

我正在读错误的爆炸贴。存储和客户端ID应该替换create语句的第三个参数,即cookie信息。创建跟踪器的代码是

ga('create', trackerid, cookieinfo)

在我的代码中,cookieinfo设置为“auto”。适用于网络,而不是应用程序。正确的代码是

if (!this.settings.emulate) {
    ga('create', this.settings.gatrackerid, {
        'storage'       : 'none',
        'clientId'      : device.uuid
    });
    ga('set', {
        'appName'       : this.settings.appname,
        'appId'         : this.settings.appid,
        'appVersion'    : this.settings.version,
        'checkProtocolTask' : null
    });
} else {
    ga('create', this.settings.gatrackerid, 'auto');
    ga('set', {
        'appName'       : this.settings.appname,
        'appId'         : 'emulate '+this.settings.appid,
        'appVersion'    : this.settings.version
    });
}

并且效果很好,无需插件。