ちょっと未来

色々作って、色々書きます。最近はOculus Riftでメーヴェ風フライトシミュレータ作ってます

iOSアプリにGoogle Analytics SDK for iOS v3 を組み込んでKPI測定してみる

アプリをリリースしてみて、実際どんな感じで使われているのか、、、
ってかホントに使われてるのか、、、
気になってアプリにログを仕込むことにしました。

パッと探してみてGoogle Analyticsのを使うことにしました。

  • ユーザがいま何人利用しているか
  • どの地域で利用されているか
  • どの時間帯で何分くらい使っているのか

などなど、アプリの改善に役立ちそうなKPIがザクザク取得できます。

以下、組み込みの手順です。
Google本家のドキュメントとほぼ同じ、王道的な組み込み方法です。

Google Analyticsのアカウントを取得

http://www.google.com/analytics/ にアクセスしてアカウントを取得します。
今回はアプリの測定をするので”モバイルアプリ”を選びましょう。

f:id:wasan:20140503032350p:plain

アカウントが発行されたら、Tracking IDは後で使うので覚えておきましょう。
下記ページからiOS用のSDKをダウンロードして次のステップに進みます。

f:id:wasan:20140503032508p:plain

ヘッダファイルの設定

ファイルをXcodeにコピー

解凍したSDKのLibraryディレクトリにある以下のファイルを、XCodeのプロジェクトにコピーします。

GAI.h
GAITracker.h
GAITrackedViewController.h
GAIDictionaryBuilder.h
GAIFields.h
GAILogger.h
libGoogleAnalyticsServices.a

f:id:wasan:20140503033130p:plain

link library設定

link libraryの設定で以下のライブラリを追加します。

libGoogleAnalyticsServices.a
AdSupport.framework
CoreData.framework
SystemConfiguration.framework
libz.dylib

f:id:wasan:20140503033143p:plain

コーディング

さていざコーディングです。

初期化

AppDelegate.mのdidFinishLaunchingWithOptions()に初期化処理を追加します。
ヘッダのインポートも忘れずに。

UA-XXXX-Y の部分は先ほど取得したTracking IDを入れます。

/*  AppDelegate.h  */

#import "GAI.h"


/*  AppDelegate.m  */

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // Optional: automatically send uncaught exceptions to Google Analytics.
  [GAI sharedInstance].trackUncaughtExceptions = YES;

  // Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
  [GAI sharedInstance].dispatchInterval = 20;

  // Optional: set Logger to VERBOSE for debug information.
  [[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose];

  // Initialize tracker. Replace with your tracking ID.
  [[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXX-Y"];

}

Screen Measument(ページビューみたいな)のログ仕込み

ログを仕込みたい適当なUIViewControllerを編集します。

まず、UIViewController の代わりに GAITrackedViewController を継承するように変更します。

/* HomeViewController.h */

@interface HomeViewController : UIViewController

↓ こんな感じに変更

#import "GAITrackedViewController.h"

@interface HomeViewController : GAITrackedViewController

そしてViewWillAppearにログを仕込みます。

/* HomeViewController.m */

- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
  self.screenName = @"About Screen"; //screenNameは適当に変更して
}

いざ確認

さて実際にGoogle Analyticsにログが飛んでいるのを確認しましょう。

先程のログを仕込んだUIViewControllerを表示します。 Xcodeのコンソールログに GoogleAnalyticsなんとか、とかいうログが流れてるかと思います。

で、ブラウザでGoogleAnalyticsを見てみましょう。

おお!現在1人のアクティブユーザが利用してます。
とのこと。 自分のことですね ^^;

f:id:wasan:20140503035117p:plain

リアルタイム表示だと数十秒で反映されます。
他にもユーザの地域や使用してるアプリバージョンなど色々分析できます。

他にもボタンを押したイベントの取得など、いろんなタイミングでログを取得できます。
それについては後ほど。。。