Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Phonegap谷歌分析根本不跟踪_Javascript_Cordova_Google Analytics - Fatal编程技术网

Javascript Phonegap谷歌分析根本不跟踪

Javascript Phonegap谷歌分析根本不跟踪,javascript,cordova,google-analytics,Javascript,Cordova,Google Analytics,这是我的main.js文件 /* Google Analytics */ (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analyti

这是我的main.js文件

/* Google Analytics */
(function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + 
      '.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
var _gaq = _gaq || [];

function _track(page){
    try {
        _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']); /* But with my correct one */
        console.log('google analytics:' + page);
        if (page != '') {
            _gaq.push(['_trackPageview', 'Mobile: '+page]);
        } else {
            _gaq.push(['_trackPageview'],'Mobile');
        }
    } catch(err) {
        console.log(err);
    }
}
因此,每当我想跟踪我使用的任何页面时:

\u轨道('/最高等级/')

我可以看到这个日志:

google分析:/top-rated/

但我在实时谷歌分析页面上看不到日志

顺便说一下,我的config.xml中有

<access origin=".*"/>

您可以使用cordova插件来简化生活


GA在设备中不起作用的原因是google analytics希望协议是HTTP或HTTPS,但当您加载应用程序时,协议是file:///因为您正在WebView中从设备打开文件

在这种情况下,GA不允许存储cookie并关闭。还有一个新版本的ga.js叫做analytics.js(也称为Universal analytics),它基本上是一个高级版本。您可以在此处找到版本之间的差异-

如果您想继续使用ga.js,则可以使用此-

这是一个GitHub项目,它解决了文件:///问题

如果您想使用通用分析,那么您可以使用此-


它是使其与Phonegap兼容的指南

使用Phonegap,您可以使用文件URI打开,并且通常会将origin属性设置为null,即使它取决于浏览器。大多数web服务器都需要指定该属性才能接受请求,因为它源于AJAX请求,如本例所示。这也可能是cookies的问题,这可能就是问题所在

在这种情况下,此url将起作用:。要使其工作,必须为Phonegap启用本地存储

如果请求有问题,您可以添加一个没有内容的1平方像素png文件,这样您就有机会在数据到达服务器时收集数据。这里唯一的问题是,这将不允许您使用谷歌分析

为了克服这个因素,您可以设置一个web服务,并将Google Analytics中的所有web请求更改为指向您的服务器,并且您可以将这些请求代理回Google服务器以克服这个问题

在服务器中,需要设置此属性才能从Phonegap获得访问权限:

 Access-Control-Allow-Origin: *
您可以使用Node.JS和NPM包管理器提供的Node http代理,考虑到它们都是javascript,这应该很容易。之后,您只需将所有对Google分析域的引用转换为指向本地Google分析文件副本中的web服务器

您所要做的就是更改Google Analytics javascript文件中URL的域部分,以指向您的服务器,并将该域放入Node.JS代理中,这可能不像大多数人想象的那么难


如果你想更清楚,请随时给我留言。感恩节期间我可能会很忙,但我会尽可能多地检查。

Hi@Purus,也谢谢你在这里写信。所以我想说的是非英语?没有插件就没有解决方法?据我所知,这也应该有效。但是如果有可能让你的生活变得轻松,我们为什么不试试呢。。此外,您无法看到实时跟踪信息,因为开始跟踪将延迟24小时。这24小时延迟中的24小时又如何?我不明白我的意思是分析不是实时的。。详细信息将在24小时后反映在您的google analytics帐户中。错误,这里有实时流量部分,非常感谢。伙计们,请关注blastam的博客帖子。它会起作用的。别忘了你还得做第四步!