我在没有插件的情况下在我的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
});
任何人都知道什么是错误的以及如何调试它?
答案 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
});
}
并且效果很好,无需插件。