14

Google은 기본 iPad 앱을 하이브리드 앱으로 전환하고 있습니다. 일부 기능과 UI는 기본 코드로 유지되며 다른 기능은 HTML로 구현되어 Google 서버에서 제공되며 오프라인에서도 사용할 수 있습니다.하이브리드 모바일 앱으로 google analytics 사용

지금 발생하는 주요 문제는 Google 웹 로그 분석을 사용하는 것입니다.
기존의 기본 코드는 IOS 용 GA SDK를 사용하며 웹 파트 용 웹 API를 사용할 계획 이었지만 데이터 데이터 저장소가 별개로 보이는 것처럼 두 채널 모두에서 GA를 함께 사용할 수 있습니다.

또한 Google 웹 로그 분석에서 A/B 테스트를 위해 Google 애널리틱스의 콘텐츠 실험을 사용하려고하지만 전환 목표는 기본 부분에서 달성 할 수 있습니다.

누구나 하이브리드 앱 또는 대체 솔루션에 대한 분석 경험이 있습니다.

감사

답변

18

정말 SDK를 사용하고 싶습니다. 그것은 충돌과 같은 모바일 애플 리케이션을 위해 유용 할 몇 가지 기능을 가지고 있습니다. 또한 데이터를 일괄 적으로 전송하여 배터리 사용을 개선하고 온라인 상태에서 앱이 오프라인 상태 일 때 조회수를 대기열로 보낼 수 있습니다. Javascript 구현으로는이를 에뮬레이트 할 수 없습니다.

그래서 WebView에서 응용 프로그램의 기본 부분으로 데이터를 보내는 Javascript 메서드를 작성해야합니다. This other Stack Overflow thread에는이를 수행하는 방법에 대한 자세한 내용이 있습니다.

그래서 Google 애널리틱스 상호 작용을 추적하는 자바 스크립트는 다음과 유사 할 수 있습니다.

var _gaq = {}; 
_gaq.push = function(arr){ 
    var i, hit; 
    hit = arr.slice(1).join('&'); 
    location.href = 'analytics://'+arr[0]+'?'+arr; 
}; 

지금 이것은 당신이 당신의 웹 응용 프로그램에 _gaq 오늘 사용할 때 당신은 여전히 ​​같은 API를 사용할 수 있습니다, 당신의 ga.js 파일을 대체 작동, 그리고 의지 위의 어댑터는 기본 테 위해 데이터를 전송 APP의 일부. 그런 다음 HTTP 요청을 차단하고 네이티브 SDK를 사용하여 Google 웹 로그 분석 기능을 실행하는 기본 부분을 작성하면됩니다.

보통 _gaq.push(['_trackPageview', '/homepage']);analytics://_trackPageview?/homepage과 같은 URI가됩니다. 이제 네이티브 부분에서 가로 채기와 구문 분석 만하면됩니다.

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { 
    NSURL *url = [request URL]; 

    NSLog(@"Hit detected %@", url.absoluteString); 

    if ([[url scheme] isEqualToString:@"analytics"]) { 
     id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; 

     if ([url.host isEqualToString:@"_trackPageview"]) { 
      // Get the page from parameters and then track the native View. 
      // (...) 
      [tracker trackView:page]; 
     } 
     else if ([url.host isEqualToString:@"_trackEvent"]) { 
      // Get the event parameters from url parameters and then track the native GA Event. 
      // (...) 
      [tracker trackEventWithCategory:cat 
           withAction:act 
            withLabel:lab 
            withValue:val]; 
     } 
     // Check for all other analytics functions types 
     // (...) 
     // Cancel the request 
     return NO; 
    } 
    // Not an analytics: request. 
    return YES; 
} 

나는 그것이 당신에게 좋은 출발점이되기를 바랍니다. 행운을 빕니다.

0

내 다른 것들에 대한 내 애플 리케이션과 Google 웹 로그 분석에 대한 http://www.flurry.com/를 사용합니다. 나는 두 앱을 같은 앱으로 섞어 본 적이 없지만 그것이 가능하다고 생각합니다. 나는 먼저 단호한 체크 아웃 sugest. 하이브리드 앱에서도 충분할 수있는 좋은 기회입니다.

+0

혹시 하이브리드 앱에서 혼란 스러웠던 적이 있습니까? 라이브러리 지원이 아직 보이지 않습니다. 더 자세히 살펴 봐야합니다. \ – Vineet

1

실제로 어려운 구성입니다.

웹 파트에 대해 analytics.js (유니버설 애널리틱스)를 사용해 보셨습니까? 그런 다음 Measurement Protocol의 서버 측 구현을 사용하여, 당신은 백엔드에서 모든 추적 호출을 보낼 수

그밖에 하나의 응용 프로그램 프로파일에 데이터를 공급 할 수있을 수 있지만, 당신은 내용의 아마 느슨한 사용을거야 실험 해보세요.

+0

하이브리드 앱이 많은 방향으로 나아가고 있기 때문에 이것이 어려운 구성 일 것으로 기대하지는 않았지만, 실제로 도전적이었습니다. – Variant