2011-12-12 32 views
7

我试图监控iPhone应用程序上的Google Analytics请求,出于某种原因,我没有看到任何GA请求。但是,我可以看到并唯一标识Google Analytics分析界面上的流量。 我曾尝试使用几种技术,包括使用提琴手/查尔斯作为代理,并重叠电脑ip。虽然我可以看到许多使用此技术的http请求,但我没有看到任何与Google Analytics相关的请求。监控iPhone上的Google Analytics请求应用程序

可以做些什么来捕获这些请求?

注意: 据我所知,没有iOS应用程序来捕获实际设备上的HTTP请求。

+0

我遇到了同样的问题。 我正在尝试监控iPhone应用程序(原生应用程序)的GA流量,但无法看到谷歌分析流量。 我也使用Charles代理服务器,它的配置绝对正确,可以代理被测设备的SSL流量(我可以看到facebook,twitter和其他原生应用的登录流量)。 但是,我无法看到我正在监视的应用的GA流量。 任何见解? –

回答

1

谷歌Analytics(分析)请求通过HTTPS - > SSL加密。实际上你应该用Charles来看待他们的要求。只是,您将无法看到这些请求的内容。

立即取消您的笔记;您当然也可以使用Charles来查看设备本身的HTTP/s请求。

看到这个blog entry for more on Charles' configuration

确保您了解HTTP和HTTPS之间的根本区别。

编辑:我都错了。 Google Analytics不使用HTTPS进行跟踪,但使用纯HTTP(TCP端口80)。我还没有找到为什么使用Charles时跟踪请求不可见。但是,使用Wireshark时它们是可见的。

- >使用Wireshark来跟踪Google Analytics活动。

要获得完成的,我分享从我的Mac与我的iOS设备的互联网连接,如下所示:

系统偏好设置 - >分享你的连接>共享 - - > Internet共享:使用以太网,将计算机:Wifi

连接后,我确保尽量减少Mac本身的网络流量,以防止嘈杂的跟踪。

其余的是Wireshark的魔法,有点难以描述头(此时不能这样做)。

+0

我可能在这里错过了一些东西,但在使用提琴手和Charles时,我的电脑上没有看到Google Analytics请求(将计算机变成代理服务器时)。 另外,我找不到查尔斯的iOS版本或类似的东西。 – Tomer

+0

Charles未安装在设备上,而是安装在__computer__上。如上所述,您需要设置您的iOS设备以使用__computer__作为代理。 – Till

+0

正如我所提到的(当我写“当把我的电脑变成代理时”),我已经将我的电脑配置为代理服务器,并且在使用Fiddler或Charles时确实看到了一般的http请求。但是,具体而言,没有看到来自iOS应用程序的Google Analytics请求 - 不是Web应用程序,而是本机iOS应用程序。 (iOS应用程序使用Google AnalyticsSDK)。 – Tomer

-2

它看起来像Google Analytics(分析)的iOS SDK使用与HTTP/HTTPS不同的协议,因此它不在Charles中显示。

+0

你怎么知道它使用不同的协议?只是猜测,因为它没有出现在查尔斯? –

2

问题是Google AnalyticsSDK所做的跟踪调用未使用iOS HTTP代理。

如果GA跟踪调用不使用iOS代理,他们显然不会被发送给Charles(或Fiddler或其他),它不能跟踪任何内容。监控这些呼叫的唯一方法是在计算机上以无线方式向您的iOS设备执行share your ethernet internet connection之类的操作,并使用ngrepWireShark之类的工具来监控通过无线接口(通常是Mac上的en1)传输的流量。下面是一个例子的ngrep命令:

sudo ngrep -d en1 port 80 | grep --color -E -C 3 '(google|utm.gif)' 

(你可以很容易地通过homebrew在Mac上安装的ngrep)

或者使用Wireshark,你可以开始监视你的无线接口(在Mac上EN1),并输入“http”进入“过滤器:”框来过滤掉http流量。

如果您有应用程序的源代码,那么避免“互联网连接共享”的另一个选择是通过Mac上的Xcode中的iOS模拟器运行应用程序,以便它使用Mac的互联网连接。 GA代码实际上仍然拒绝使用OSX配置的代理(即,您仍然无法使用Charles),但是您可以在Mac上使用ngrep或Wireshark(如上所述),而无需设置Internet连接共享。

这里是我的博客上有更多的细节后:Monitoring Google Analytics for iOS

-1

我设置的机器如你所说,这一切工作得很好。在win7上的Wireshark与adhoc网络,其中一个ipad登录。 如果我在ipad上使用safari,请将其请求(带过滤器http.host包含“google”)转换为google analytics,__utm.gif,因为它应该是。然而,在应用程序中,我找不到任何分析请求。所以我不确定在wireshark中搜索什么。 “http.host上的过滤器包含”google“”好吗?或者我必须定义一些不同的过滤器?也许SDK没有使用与HTML中相同的__utm.gif请求?

1

有了Charles的最新版本,您可以看到GA标签,使用上述Jordan Brough的方法会更容易一些。步骤:

  • 下载最新版本的查尔斯。
  • 启动Charles并将您的iOS设备设置为在 Settings-> Wi-Fi [networkName]中使用Charles作为代理。点击I图标,然后向下滚动至 HTTP代理部分。点击手动并添加服务器IP和端口8888.
  • 启动Mobile Safari并导航至 http://www.charlesproxy.com/getssl。安装Charles Root Cert。
  • 在Charles中添加GA服务器代理SSL代理设置。 GA 服务器是ssl.google-analytics.com
  • 退出Charles并重新启动。

请注意,GA SDK批处理请求(虽然有时它看起来像它也会提出单个请求),所以如果您认为没有看到标记,请确保滚动查看批处理请求。如果您正在查看屏幕视图,参数是cdGA tags in CharlesProxy