[iOS]Google Analytics iOS #1 ページビューを計測する

2013.05.21

はじめに

Google Analytics SDKをアプリに導入することで、
Web版のGoogleAnalyticsと同様にAndroidアプリやiOSアプリの使用状況を計測出来ます。
本シリーズではiOSアプリへのGoogleAnalyticsの導入方法について書いていきます。

Appleが用意しているサイト「iTunesConnect」では、アプリのダウンロード数程度しか確認することができませんが、
iOSアプリにGoogleAnalyticsを導入することで、アクティブなユーザー数を計測することができます。
また、画面の表示回数を計測するための「Screen Tracking」やボタンのクリック数等のイベントを計測するための「Event Tracking」を使用することでUI等の改善の参考にすることもできます。

主要な機能は以下の通りです。

Screen Tracking ユーザー数や画面のページビューなどを計測
Event Tracking ボタンのクリックなどのイベントを計測
Campaign Tracking ユーザーがどこから来たのかを計測し、キャンペーンやマーケティングに活用できる。
Ecommerce Tracking アプリ内購入と販売を計測
User Timings 起動時間などの特定の動作にかかる時間を計測

今回は「Screen Tracking」について書いていきます。

Analyticsのアカウントを作成

Googleのアカウントを既に持っているが、Analyticsを使ったことがないというケースで説明していきます。
まずはGoogleAnalyticsのサイトを開き、「アカウントを作成」をクリックし、Analyticsのアカウントを作成します。
analytics-for-iOS_08

「お申し込み」をクリックします。
analytics-for-iOS_09

トラッキングの対象は「アプリ」を選択し、アプリ名を入力します。計測の対象にするアプリの名前を入力してください。
ここでは「AnalyticsTest」という名前にしました。
analytics-for-iOS_10

アカウント名を入力します。アカウント名は「メールアドレスの@の前の部分」等で良いようです。
「トラッキングIDを取得」をクリックします。
analytics-for-iOS_11

利用規約に同意する場合は「同意する」をクリックします。
analytics-for-iOS_12

アカウントを作成できました。「①ダウンロード」をクリックしてiOS用のSDKをダウンロードしてください。
また、「②ガイド」をクリックすると、マニュアルを見ることができます。
トラッキングIDは後で使いますのでメモしといてください。
analytics-for-iOS_13

インストール&初期設定

プロジェクトにSDKを追加する。

プロジェクトにSDKを追加します。今回は「Master-Detail Application」テンプレートからプロジェクトを作成し、AnalyticsSDKを入れてみます。
先ほどダウンロードしたSDKを解凍し「Library」フォルダ内の以下のファイルをプロジェクトに追加します。

GAI.h
GAITracker.h
GAITrackedViewController.h
GAITransaction.h
GAITransactionItem.h
libGoogleAnalytics.a

また、以下のフレームワークをプロジェクトに追加します。

CoreData.framework
SystemConfiguration.framework

初期設定を行う

AppDelegateクラスの「application:didFinishLaunchingWithOptions:」メソッドに以下のコードを追加し、
Trackerを初期化します。
"UA-YOUR-TRACKING-ID"部分にはアカウント作成時にメモしておいたトラッキングIDを入力します。

- (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 debug to YES for extra debugging information.
  [GAI sharedInstance].debug = YES;
  // Create tracker instance.
  id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-YOUR-TRACKING-ID"];

}

また、計測したい画面ごとに「GAI.h」ファイルをインポートするのは面倒なので
「(アプリ名)-Prefix.pch」ファイルで「GAI.h」ファイルをインポートしておきます。

#import <Availability.h>

#ifndef __IPHONE_5_0
#warning "This project uses features only available in iOS SDK 5.0 and later."
#endif

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>

    // 追加
    #import "GAI.h"
    //
#endif

Screen Trackingの実装

「Screen Tracking」を使うことで、特定の画面のページビューやユーザー数を計測出来ます。
実装方法は2通りあります。

(1)Automatic Screen Measurement

計測対象にしたい画面がUIViewControllerのサブクラスである場合は、
「Automatic Screen Measurement」を使います。
対象のViewControllerをGAITrackedViewControllerのサブクラスにし、trackedViewNameを設定するだけで、自動的に計測されるようになります。
今回は「Master-Detail Application」テンプレートからプロジェクトを作成しているので、
UIViewControllerのサブクラスである「DetailViewController」に計測用のコードを実装してみます。

DetailViewController.hファイルを書き換え、親クラスを「GAITrackedViewController」に変更します。

@interface DetailViewController : GAITrackedViewController
...

DetailViewController.mファイルのviewDidLoadメソッドにコードを追加します。
下記のコード内で"DetailViewController"としている部分が管理画面で表示されるので、わかり易い名前を設定してみてください。

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    [self configureView];
    
    // 追加
    self.trackedViewName = @"DetailViewController";
    //
}

これでDetailViewControllerの画面の表示の準備は完了です。

(2)Manual Screen Measurement

計測対象にしたい画面が「UITableViewController」のサブクラス等の場合は「Manual Screen Measurement」を使います。
画面表示のタイミングなどでTrackerインスタンスのsendViewメソッドを呼び出すことで、画面表示の計測を行うことが出来ます。
今回のプロジェクトのMasterViewControllerはUITableViewControllerのサブクラスなので
こちらのやり方で実装します。

ここではMasterViewController.mファイルのviewDidLoadにコードを追加しました。
こちらも、"MasterViewController"としている部分が管理画面で表示されます。

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    self.navigationItem.leftBarButtonItem = self.editButtonItem;

    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertNewObject:)];
    self.navigationItem.rightBarButtonItem = addButton;
    
    // 追加
    [[GAI sharedInstance].defaultTracker trackView:@"MasterViewController"];
    //
}

これでMasterViewControllerの画面表示の計測の準備は完了です。

実行&計測データ確認

今回試してみた環境では、アプリを実行して画面を表示してから10分程度でデータが反映されました。
「レポート」を開いてみましょう。
analytics-for-iOS_16

レポートの「アプリサマリー」ページの真ん中にある「スクリーン」項目を見ると、「DetailViewController」と「MasterViewController」が追加されています。
analytics-for-iOS_15

ページビュー、ユーザー数、セッション時間などを確認できます。
analytics-for-iOS_18

OSのバージョンやスクリーンサイズも自動でとれるようになっています。
analytics-for-iOS_17

まとめ

計測結果を確認することができましたでしょうか。
このように、SDKをプロジェクトに追加し、数行のコードを追加するだけで、このような機能を使うことができます。
次回は「Event Tracking」について書きたいと思います。

参考記事

Google Analytics SDK for iOS v2 (Beta) - Overview
Google Analytics SDK for iOS v2 を組み込んでアプリの利用解析を行う