14

Мы находимся в процессе превращения нашего родного iPad-приложения в гибридное приложение. Некоторые функциональные возможности и пользовательский интерфейс останутся в собственном коде, а другие функции будут реализованы в HTML, которые будут обслуживаться с наших серверов, а также будут доступны в автономном режиме.Использование Google Analytics с гибридным мобильным приложением

Основной проблемой я сталкиваюсь сейчас с помощью Google Analytics:
Существующий машинный код использует GA SDK для IOS и я планировал использовать веб-API для веб-части, однако я не могу найти, как данные из обоих каналов могут использоваться вместе в GA, поскольку хранилища данных кажутся различными.

Кроме того, я планирую использовать контентные эксперименты Google Analytics для тестирования веб-части, но цели конверсии могут быть достигнуты в собственной части.

У любого есть опыт работы с аналитикой в ​​гибридных приложениях или альтернативных решениях.

Благодаря

ответ

18

Вы действительно хотите использовать SDK. В нем есть некоторые функции, которые пригодится для мобильных приложений, таких как сбои, интеграция в хранилище игр. Он также отправляет данные партиями, чтобы улучшить использование батареи, а также может запускать очереди, пока приложение не отправляется в офлайн-режиме, когда он отправляется онлайн. Вы не сможете эмулировать это с помощью реализаций Javascript.

Так что вам нужно написать Javascript-методы, которые отправляют данные из WebView обратно в Родную часть приложения. This other Stack Overflow thread имеет более подробную информацию о том, как это сделать.

Таким образом, javascript для отслеживания взаимодействия Google Analytics может выглядеть примерно так.

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

Теперь это будет работать в качестве замены для файла ga.js, вы можете использовать один и тот же API, как вы используете на _gaq сегодня на своем Web App, а адаптер выше, посылает свои данные т.е родной часть APP. И тогда вам просто нужно написать собственную часть, которая перехватит этот HTTP-запрос и использует собственный SDK для выдачи функций Google Analytics.

A нормальный _gaq.push(['_trackPageview', '/homepage']); станет ури, как analytics://_trackPageview?/homepage, теперь вам просто нужно перехватить и разобрать, что на Родной части.

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

Я использую http://www.flurry.com/ для моих приложений и Google Analytics для моего другого материала. Я никогда не смешивал их обоих в одном приложении, но я предполагаю, что это выполнимо. Я бы сказал, прежде всего, проверить шквал. Есть хороший шанс, которого хватит и для гибридного приложения.

+0

Вы когда-нибудь использовали шквал в гибридном приложении? Я пока не вижу поддержки в библиотеке, возможно, мне нужно выглядеть сложнее \ – Vineet

1

Действительно сложная конфигурация.

Вы изучили использование analytics.js (Universal Analytics) для веб-части? Тогда вы могут иметь возможность передавать данные в одном профиль App

Else, вы можете отправить все вызовы отслеживания с вашего внутреннего интерфейса, с помощью серверной стороны реализации Measurement Protocol, но вы, вероятно, рыхлого использование Контента Эксперимент!

+0

Я не ожидал, что это сложная конфигурация, так как гибридные приложения - это направление, к которому многие стремятся, но это действительно сложно. – Variant