14

私たちはネイティブiPadアプリをハイブリッドアプリに変えています。一部の機能とUIはネイティブコードに残り、その他の機能はHTMLで実装され、当社のサーバーから提供され、オフラインでも利用可能になります。ハイブリッドモバイルアプリでgoogle analyticsを使用

私が今直面する主な問題は、Google Analyticsを使用している。しかし、私は見つけることができない、
既存のネイティブコードは、私がWebパーツのWeb APIを使用して計画されたIOSのためのGA SDKを使用し、どのようにデータデータストアが別個であるように見えるので、両方のチャネルからのデータをGAで一緒に使用することができます。

さらに、WebパートのA/BテストにGoogleアナリティクスのコンテンツ実験を使用する予定ですが、コンバージョン目標はネイティブの部分で達成される可能性があります。

誰でも、ハイブリッドアプリケーションや代替ソリューションに関するアナリティクスの経験があります。私は他のもののために私のアプリとGoogleアナリティクスのためhttp://www.flurry.com/を使用

おかげ

答えて

18

本当にSDKを使いたいと思っています。それは、クラッシュ、プレイストアの統合などのモバイルアプリケーションに便利ないくつかの機能を備えています。また、バッチでデータを送信してバッテリの使用状況を改善し、アプリがオフラインのときにヒットをキューに入れてオンライン時に送信することもできます。あなたはJavascriptの実装でそれをエミュレートすることはできません。

あなたが書く必要があるのは、WebViewからアプリケーションのネイティブ部分にデータを戻すJavascriptメソッドです。 This other Stack Overflow threadにはこれを行う方法の詳細があります。

Googleアナリティクスのやりとりをトラッキングするためのjavascriptは、次のようになります。

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

これは、あなたがあなたのWebアプリケーションに_gaq今日に使うとあなたはまだ同じAPIを使用することができ、あなたのga.jsファイルの代わりとして機能し、意志上記アダプタは、ネイティブしteために、そのデータを送信します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

。私は同じアプリで両方のものを混ぜ合わせたことはありませんが、私はそれが実行可能であると推測しています。私は最初に慌ててチェックアウトすることを躊躇します。ハイブリッドアプリにも十分なチャンスがあります。

+0

ハイブリッドアプリで慌てたことがありますか? まだライブラリのサポートはありませんが、おそらく私はもっと見る必要があります\ – Vineet

1

確かに難しい設定です。

Webパーツにanalytics.js(ユニバーサルアナリティクス)を使用しましたか?その後、単一のアプリケーションプロファイルエルス

にデータを供給することができ、あなたはMeasurement Protocolのサーバー側の実装を使用することにより、バックエンドからのすべてのトラッキング呼び出しを送ることができるかもしれませんが、あなたは、コンテンツの緩い使用法おそらくよ実験!

+0

ハイブリッドアプリケーションは多くの方向に向いているため、これは難しい設定ではないと予想していましたが、 – Variant

関連する問題