2011-12-12 2 views
7

iPhone 응용 프로그램에서 Google Analytics 요청을 모니터하려고하는데 어떤 이유로 GA 요청이 표시되지 않습니다. 그러나 Google Analytics 인터페이스에서 트래픽을 확인하고 고유하게 식별 할 수 있습니다. 필자는 Fiddler/Charles를 프록시로 사용하고 컴퓨터 IP를 겹쳐서 사용하는 등 여러 기술을 사용하여 시험해 보았습니다. 이 기술을 사용하여 많은 http 요청을 볼 수 있지만 Google 애널리틱스와 관련된 요청은 표시되지 않습니다.iPhone 응용 프로그램에서 Google Analytics 요청 모니터링

이러한 요청을 캡처하기 위해 수행 할 수있는 작업은 무엇입니까?

참고 : 는 내가 아는 한, 실제 장치에 HTTP 요청을 캡처 할 iOS 앱이 없습니다.

+0

동일한 문제가 발생합니다. iphone 앱 (기본 앱)의 GA 트래픽을 모니터링하려고하지만 Google 웹 로그 분석 트래픽을 볼 수 없습니다. 필자도 Charles 프록시를 사용하고 있으며 테스트중인 장치에서 SSL 트래픽을 프록시하도록 올바르게 구성되어 있습니다 (페이스 북, 트위터 및 기타 기본 응용 프로그램의 로그인 트래픽을 볼 수 있음). 그러나 모니터링하려는 앱의 Google 트래픽을 볼 수 없습니다. 통찰력이 있으십니까? –

답변

1

Google 웹 로그 분석은 HTTPS -> SSL 암호화를 통해 요청합니다. 사실 찰스를 사용하여 요청을 확인해야합니다. 그냥, 당신은 그 요청의 내용을 볼 수 없을 것입니다.

귀하의 메모를 즉시 무효화하려면, 찰스를 사용하여 장치 자체의 HTTP/s 요청을 확실히 볼 수 있습니다.

이 부분은 blog entry for more on Charles' configuration입니다.

HTTP와 HTTPS의 근본적인 차이점을 이해했는지 확인하십시오.

편집 : 잘못되었습니다. Google 웹 로그 분석은 추적을 위해 HTTPS를 사용하지 않고 일반 HTTP (TCP 포트 80)를 사용합니다. 나는 찰스를 사용할 때 왜 추적 요청이 보이지 않는지 아직 알지 못했습니다. 그러나 Wireshark를 사용할 때 볼 수 있습니다. Google 웹 로그 분석 활동을 추적하는> 사용 Wireshark -

. 이더넷 사용하는 컴퓨터에, -> 공유 - -> 인터넷 공유>에서 연결을 공유

시스템 환경 설정을 :

는 다음과 같이 내 iOS 장비 내 맥에서 인터넷 연결을 공유하고, 수행 얻으려면 : 와이파이

연결되면

, 나는 시끄러운 추적을 방지하기 위해 맥 자체의 네트워크 트래픽을 최소화해야합니다.

나머지

은 와이어 샤크의 마법과 머리를 (지금이 순간에 그것을 할 수 없습니다) 떨어져 설명하기 조금 어렵다.

+0

여기에 뭔가가 누락되었을 수 있지만 피들러 나 찰스를 사용하는 동안 내 컴퓨터를 프록시로 전환 할 때 Google Analytics 요청이 표시되지 않습니다. 또한 Charles의 iOS 버전이나 이와 비슷한 버전을 찾을 수 없습니다. – Tomer

+0

Charles는 장치에 설치되어 있지 않지만 __computer__에 설치되어 있습니다. 위에 게시 한 것처럼 __computer__을 프록시로 사용하도록 iOS 기기를 설정해야합니다. – Till

+0

필자가 ("컴퓨터를 프록시로 변환 할 때"라고 썼을 때) 필자의 컴퓨터를 프록시로 구성했으며 Fiddler 나 Charles를 사용할 때 일반적인 http 요청을 봅니다. 그러나 구체적으로 iOS 응용 프로그램 (웹 응용 프로그램이 아니라 기본 iOS 응용 프로그램)의 Google Analytics 요청을 보지 못합니다. (iOS 응용 프로그램은 Google Analytics SDK를 사용합니다). – Tomer

-2

는 찰스에 표시되지 그래서 분석을위한 아이폰 OS SDK는 HTTP/HTTPS는 다른 프로토콜을 사용하는 것 같습니다.

+0

다른 프로토콜을 사용하고 있음을 어떻게 알 수 있습니까? 찰스에 나타나지 않아서 추측 한거야? –

2

Google 애널리틱스 SDK가 만드는 추적 호출은 iOS HTTP 프록시를 사용하지 않는 것이 문제입니다.

GA 추적 호출들이 분명히 찰스 (또는 피들러 또는 무엇이든)로 전송되지 않습니다 아이폰 OS 프록시를 사용하지 않으며 아무것도 추적 할 수 없습니다. 이러한 통화를 모니터링하는 유일한 방법은 컴퓨터에서 share your ethernet internet connection과 같은 것을 무선으로 iOS 기기에 보내고 ngrep 또는 WireShark 같은 도구를 사용하여 무선 인터페이스 (일반적으로 Mac의 en1)를 통해 들어오는 트래픽을 모니터링하는 것입니다.

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

를 (쉽게 Mac에서 homebrew를 통해 오는 Ngrep 설치할 수 있습니다) 또는 Wireshark를 사용하면 무선 인터페이스를 (Mac의 EN1) 및 유형 "HTTP"를 모니터링 시작할 수 있습니다 예를 들면 다음과 같습니다 오는 Ngrep 명령입니다 "Filter :"상자에 http 트래픽을 필터링합니다.

앱의 소스 코드가있는 경우 '인터넷 연결 공유'를 피하는 또 다른 옵션은 Mac의 인터넷 연결을 사용하도록 Mac의 Xcode에서 iOS 시뮬레이터를 통해 앱을 실행하는 것입니다. GA 코드는 실제로 OSX 구성 프록시 (즉, 아직 Charles는 사용할 수 없음) 사용을 거부하지만 인터넷 연결 공유를 설정하지 않고 Mac에서 ngrep 또는 Wireshark (위와 같음)를 사용할 수 있습니다.

여기에 자세한 내용은 내 블로그에 게시물 : 당신이 제안 내가 기계를 설정 Monitoring Google Analytics for iOS

-1

과 모두 잘 작동합니다. ipad에 사인파가있는 adhoc 네트워크가있는 win7에 Wireshark가 있습니다. ipad에서 사파리를 사용하는 경우 Google 애널리틱스로 요청을받습니다 (http.host에 필터가 포함됨). __utm.gif가 있어야합니다. 그러나 애플 리케이션에서 나는 분석에 대한 어떤 요청도 찾을 수 없다. 그래서 wireshark에서 무엇을 검색해야할지 모르겠습니다. "http.host"에 "google"이라는 필터가 있습니까? 아니면 다른 필터를 정의해야합니까? HTML에서와 같이 SDK가 동일한 __utm.gif 요청을 사용하지 않았을 수 있습니까?

1

최신 버전의 Charles에서는 GA 태그를 볼 수 있으며 위의 Jordan Brough의 접근 방식을 사용하면 훨씬 쉽습니다. 단계 :

  • 최신 버전의 Charles를 다운로드하십시오.
  • Charles를 시작하고 설정 - Wi-Fi [네트워크 이름]에서 Charles를 프록시로 사용하도록 iOS 기기를 설정합니다. I 아이콘을 탭한 다음 HTTP 프록시 섹션으로 스크롤합니다. 수동을 누르고 서버 IP 및 포트 8888을 추가하십시오.
  • 모바일 사파리를 실행하고 http://www.charlesproxy.com/getssl으로 이동하십시오. Charles Root Cert를 설치하십시오.
  • 찰스에서 프록시 서버 ->에 GA 서버 추가 SSL 프록시 설정. GA 서버는 ssl.google-analytics.com입니다.
  • Charles를 종료하고 다시 시작하십시오.

GA SDK는 일괄 요청을 처리하는 것처럼 보이지만 요청을 일괄 적으로 처리하는 것처럼 보이므로 태그가 표시되지 않는다고 생각되면 일괄 요청을 스크롤하십시오. 화면보기를 찾으려면 매개 변수는 cd입니다. GA tags in CharlesProxy