PhoneGap应用程序无法与Google Analytics配合使用。

6
我正在使用analytics.js来跟踪网页应用程序中的用户活动。现在,我已经构建了Phonegap app ios/android,并希望在Phonegap app中也能跟踪用户活动,但它没有给出我想要的跟踪结果。我已经阅读并尝试实现以下链接中的解决方案:Phonegap google analytics not tracking at allhttps://github.com/blast-analytics-marketing/phonegap-google-universal-analytics。我的问题是:本机使用phonegap和网页应用程序使用相同的页面集,我希望使用维度将这些页面都跟踪到单个GA帐户中,但我无法在phone gap中实现。有人可以帮助我吗?非常感谢任何帮助!

(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','//www.google-analytics.com/analytics.js','ga');
          var ua="UA-XXXXXXX-Y";
          ga('create', ua, {'storage': 'none','clientId': "123"});
          ga('set', 'checkProtocolTask', null);
          ga('set','checkStorageTask',null);


2
你是否将 Google 的 URL 添加到了白名单中? - Joerg
1
这个插件(https://github.com/danwilson/google-analytics-plugin)是专门为在cordova移动应用程序中运行GA而设计的,可能会对您有所帮助。 - jcarrera
@jcarrera:它正在使用我的分析帐户中的移动应用程序属性...我想在同一属性下跟踪Web应用程序,因为应用程序和Web页面是相同的。我使用维度区分应用程序用户。 - Mohamed Hussain
@Joerg:需要将哪个URL加入白名单,以及它应该放在哪里? - Mohamed Hussain
有时文档是有帮助的:http://cordova.apache.org/docs/en/dev/guide/appdev/whitelist/index.html 还要阅读白名单插件的文档。 - Joerg
2个回答

10
两天后,在 Google Group Phonegap 页面上找到了解决方案,这个答案对我有用。感谢 Mayor,他的回答是:

(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','https://www.google-analytics.com/analytics.js','gaU');
gaU('create','UA-XXXXXXXX-X',{'storage':'none','clientId':device.uuid});
gaU('set','checkProtocolTask',null);
gaU('set','anonymizeIp',true);
gaU('set','forceSSL',true);
gaU('send','pageview',{'title':'I heart Cordova','page':'/cordova'});
gaU('send','event',{'eventCategory':'My_Category','eventAction':'My_Action','eventLabel':'Event_Label','eventValue':11});

注意事项:

  • 您必须将google-analytics.com的url设置为使用http或https(默认值为//,尝试加载file://,不起作用)

  • 您必须关闭“存储”并添加一个clientId,您可以使用Cordova设备uuid

  • 您必须通过将checkProtocolTask设置为null来禁用协议检查(因为file://不起作用)

  • 这仅适用于新的“Universal”分析。您的GA帐户必须被创建为“网站”,而不是“移动应用程序”


2
在我的情况下,'storage' : 'none' 对于让它在Android/Chrome上运行至关重要,但我真的不知道为什么。 - Cedric Reichenbach
2
这个:ga('create', 'UA-XXXXXXXX-X', { 'storage': 'none' }); 和这个:ga('set', 'checkProtocolTask', null); 对我有用。为什么?**(1)** storage 设置为 none 可以禁用使用 Phonegap 不可用的 cookie (2) checkProtocolTask 设置为 null 可以禁用对 httphttps 协议的检查,从而允许通过 Phonegap 使用的 file 协议 - Ofir

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接