Phonegap谷歌分析根本不跟踪

Phonegap google analytics not tracking at all

本文关键字:跟踪 谷歌 Phonegap      更新时间:2023-09-26

这是我的主要.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);
    }
}

因此,每当我想跟踪我使用的任何页面时:

_track('/top-rated/');

我可以看到这个日志:

google analytics: /top-rated/

但是我看不到实时谷歌分析页面中的日志

顺便说一下,我的配置中.xml

<access origin=".*"/>
GA 在

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

在这种情况下,GA 不允许存储和关闭 cookie。还有一个新版本的ga.js称为analytics.js(也称为Universal Analytics),它基本上是一个高级版本。您可以在此处找到版本之间的差异 - http://www.cardinalpath.com/which-version-of-google-analytics-is-right-for-you-determine-whether-you-should-upgrade-to-universal-analytics/

如果你想继续使用 ga.js那么你可以使用这个 -
https://github.com/ggendre/GALocalStorage
这是一个解决 file:///问题的GitHub项目。

如果您想使用通用分析,那么您可以使用这个 -
http://www.blastam.com/blog/index.php/2013/07/ga-universal-analytics-phonegap-mobile-apps/
这是使其与Phonegap兼容的指南

使用 Phonegap,您可以打开 With file URI,通常这会将 origin 属性设置为 null,即使它取决于浏览器。需要指定该属性才能使大多数 Web 服务器接受请求,考虑到它源自 AJAX 请求的事实,如本例所示。这也可能是 cookie 的问题,这可能是问题所在。

在这种情况下,此 url 将起作用:https://github.com/ggendre/GALocalStorage。要使其正常工作,您必须为Phonegap启用本地存储。

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

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

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

 Access-Control-Allow-Origin: *

你可以使用类似 Node.JS 和 NPM 包管理器提供的 node-http-proxy 的东西,考虑到它都是 javascript,这应该很容易。之后,您只需要将所有对Google分析域的引用转换为指向Google Analytics文件本地副本中的Web服务器即可。

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

如果您想更清楚地了解情况,请随时给我发消息。感恩节期间我可能会很忙,但我会尽可能多地检查。

您可以使用 cordova 插件来让生活变得轻松。

http://www.raymondcamden.com/index.cfm/2013/3/28/Google-Analytics-and-PhoneGap