2011-12-12 65 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