14

Jesteśmy w trakcie przekształcania naszej rodzimej aplikacji na iPada w aplikację hybrydową. Niektóre funkcje i interfejs użytkownika pozostaną w natywnym kodzie, a inne funkcje zostaną zaimplementowane w języku HTML, który będzie obsługiwany z naszych serwerów, a także będzie dostępny w trybie offline.Korzystanie z google analytics przy użyciu hybrydowej aplikacji mobilnej

Głównym problemem, który napotykam teraz, jest używanie Google Analytics:
Istniejący kod natywny korzysta z GA SDK dla IOS i planowałem używać web API dla części internetowej, jednak nie mogę znaleźć danych z obu kanałów można używać razem w GA, ponieważ magazyny danych wydają się być odrębne.

Ponadto planuję użyć Google Analytics "Eksperymentowanie z treścią dla A/B testowania strony internetowej, ale cele konwersji mogą być celami osiągniętymi w rodzimej części.

Każdy ma doświadczenie w analitykach dotyczących aplikacji hybrydowych lub alternatywnych rozwiązań.

Dzięki

Odpowiedz

18

Naprawdę chcesz użyć SDK. Ma pewne funkcje, które przydadzą się w aplikacjach mobilnych, takich jak awarie, integracja sklepu Play. Wysyła również dane w partiach, aby poprawić wykorzystanie baterii, a także może kolejkować trafienia, gdy aplikacja jest w trybie offline, aby zostać wysłana w trybie online. Nie będzie można tego naśladować w implementacjach JavaScript.

Więc musisz napisać metody Javascript, które wysyłają dane z WebView z powrotem do Natywnej części aplikacji. This other Stack Overflow thread ma więcej szczegółów, jak to zrobić.

Tak więc javascript do śledzenia interakcji Google Analytics może wyglądać mniej więcej tak.

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

Teraz to będzie działać jako zamiennik pliku ga.js, nadal można korzystać z tego samego API jak użyć na _gaq dziś na Web App, a adapter powyżej woli wysyła swoje dane do TE rodzimy część APP. A następnie wystarczy napisać natywną część, która będzie przechwytywać to żądanie HTTP i używać natywnego SDK do wydawania funkcji Google Analytics.

Normalny _gaq.push(['_trackPageview', '/homepage']); stanie się uri jak analytics://_trackPageview?/homepage, teraz wystarczy go przechwycić i przeanalizować w części Natywnej.

- (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; 
} 

Mam nadzieję, że dał dobry punkt wyjścia. Powodzenia.

0

używam http://www.flurry.com/ dla moich aplikacji i Google Analytics do innych moich rzeczy. Nigdy nie mieszałem ich obu w tej samej aplikacji, ale domyślam się, że jest to wykonalne. Proponuję najpierw sprawdzić flurry. Jest duża szansa, że ​​będzie wystarczająca również dla aplikacji hybrydowej.

+0

Czy kiedykolwiek używałeś flurry w aplikacji hybrydowej? Nie widzę jeszcze żadnej pomocy biblioteki, być może muszę wyglądać jeszcze bardziej \ – Vineet

1

Rzeczywiście trudna konfiguracja.

Czy sprawdziłeś, czy używasz narzędzia analytics.js (Universal Analytics) do obsługi strony internetowej? Następnie można móc karmić danych w jednym profilu App

indziej, można wysłać wszystkie wywołania śledzenia z zaplecza, przy użyciu implementacji po stronie serwera z Measurement Protocol ale prawdopodobnie będziesz luźne wykorzystanie treści Eksperymentuj!

+0

Nie spodziewałem się, że będzie to trudna konfiguracja, ponieważ aplikacje hybrydowe są kierunkiem, do którego zmierzają, ale okazuje się, że jest to wyzwanie. – Variant

Powiązane problemy