PhoneGap 应用程序无法与谷歌分析一起使用

Posted

技术标签:

【中文标题】PhoneGap 应用程序无法与谷歌分析一起使用【英文标题】:PhoneGap App not working with Google Analytics 【发布时间】:2015-12-23 14:39:25 【问题描述】:

我正在使用 analytics.js 来使用 Web 应用程序中的代码跟踪用户活动。

现在 Phonegap 应用程序 ios/android 已构建,并希望在 Phonegap 应用程序中跟踪用户活动,但它没有给出我已阅读并实施解决方案的跟踪结果

Phonegap google analytics not tracking at all

https://github.com/blast-analytics-marketing/phonegap-google-universal-analytics

我的问题是:在本地使用 phonegap 和 web 应用程序都使用相同的页面集,我想使用 Dimension 在单个 GA 帐户下跟踪相同的页面,但我无法在电话间隙中进行。

谁能帮我解决这个问题。提前感谢您的帮助。

(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);

【问题讨论】:

您是否将 Google 网址列入白名单? 这个插件 (github.com/danwilson/google-analytics-plugin) 专门用于在 cordova 移动应用程序中运行 GA,也许对你有帮助。 @jcarrera:它正在我的分析帐户中使用移动应用程序属性...我想在与网络应用程序相同的属性下进行跟踪,因为应用程序和网页是相同的。我正在使用维度将用户与应用程序区分开来。 @Joerg:将哪个 url 列入白名单以及放置在哪里? 有时文档会有所帮助:cordova.apache.org/docs/en/dev/guide/appdev/whitelist/… 还可以阅读白名单插件中的文档。 【参考方案1】:

两天后,找到solution from the Google Group Phonegap page,这个答案对我有用。谢谢市长,他的回答是

(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(默认有 // 尝试加载文件:// 这不起作用)

使用必须关闭“存储”并添加一个您可以使用 Cordova device.uuid 的 clientId

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

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

【讨论】:

在我的例子中,'storage' : 'none' 是让它在 Android/Chrome 上运行的关键,但我真的不知道为什么。 这个:ga('create', 'UA-XXXXXXXX-X', 'storage': 'none' ); 和这个:ga('set', 'checkProtocolTask', null); 为我工作。为什么? (1) Setting storage to none disables cookies usage which is unavailable using Phonegap (2) Setting checkProtocolTask to null disables the check for http and https protocol thus allowing file protocol, which is used by Phonegap, to pass.【参考方案2】:

据我所知,最新版本的 Google Analytics(分析)已明确禁止这样做。他们现在在他们的文档中清楚地说:

在 Android 上的 Web 视图中使用分析

从 WebView 中触发的记录事件或设置用户属性的调用必须先转发到本机代码,然后才能发送到 Google Analytics 中的应用报告。

https://developers.google.com/analytics/devguides/collection/firebase/android/webview

【讨论】:

以上是关于PhoneGap 应用程序无法与谷歌分析一起使用的主要内容,如果未能解决你的问题,请参考以下文章

克隆存储库时与谷歌应用引擎一起使用啥凭据?

BigQuery 数据与谷歌分析

应用程序在 Xcode 9 和 iOS 11 中与谷歌地图 SDK cocoapods 一起崩溃 [关闭]

BigQuery:回访次数与谷歌分析数据不匹配

社区说 | 与谷歌开发者专家一起畅想跨平台开发

社区说 | 与谷歌开发者专家一起畅想跨平台开发