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 应用程序无法与谷歌分析一起使用的主要内容,如果未能解决你的问题,请参考以下文章