测试 iOS/Android 应用谷歌分析
Posted
技术标签:
【中文标题】测试 iOS/Android 应用谷歌分析【英文标题】:Testing iOS/Android app google analytics 【发布时间】:2015-02-18 20:35:07 【问题描述】:我已经搜索了好几个小时,但我无法想出解决以下问题的方法:
我希望能够在应用中实时测试 Google Analytics(分析)的实施。使用谷歌实时分析是不够的,因为有时您必须等待几分钟才能显示新标签。
解决方案应该是通过 Wireshark 进行数据包嗅探。我已经尝试过这样做,但是即使我确实找到了一些与分析相关的调用,我似乎也无法从中提取任何有用的信息。(我不得不承认,我对网络的了解不足,无法理解wireshark的功能...... )
另一个解决方案应该是使用像 Fiddler 或 Charles 这样的代理。我尝试了这两种方法,设置 SSL,植根 android 手机以确保所有流量都使用代理,但即便如此我也无法从我的应用程序中找到任何谷歌分析调用。看起来我正在寻找错误的地方或其他东西,但对于网站,我确实看到这些 GA 电话来了。
我做错了什么?在网络上很容易找到这些东西,到目前为止,似乎不可能从应用程序中找到这些东西。任何帮助表示赞赏。
【问题讨论】:
【参考方案1】:默认情况下,Google Analytics 通过 SSL 连接上传点击数据。 Wireshark 可能很难看到加密连接的内部。 HTTP 堆栈可能会检查证书并拒绝与错误的服务器通信。您可以通过调用tracker.setUserSecure(false)
将上传更改为非 SSL(纯 HTTP):
https://developer.android.com/reference/com/google/android/gms/analytics/Tracker.html#setUseSecure(boolean)
这应该允许您使用 Wireshark 或任何其他数据包分析器查看上传。确保您不使用此设置发布您的应用程序。
点击在通过网络上传之前也会有一些延迟。如果您在 Google Play 设备(或带有 Google Play 服务的模拟器)上运行,您的点击将在几分钟内由 Google Play 发送。在非 Google Play 设备(或没有 Google Play 服务的模拟器)上运行时,您可以使用 googleAnalytics.setLocalDispatchPeriod(int seconds) 调用设置调度间隔或使用 googleAnalytics.dispatchLocalHits() 显式触发调度
【讨论】:
我已经尝试使用这种方法,它不再使用 ssl.google。但是,我仍然遇到无法读取有效负载的问题(使用 Charles 而不是 fiddler)。以上是关于测试 iOS/Android 应用谷歌分析的主要内容,如果未能解决你的问题,请参考以下文章