アクセス解析

【実装〜計測まで解説!】Google-アナリティクスのアプリ計測(SDK-v3.0版)

簡単なサンプルiOSアプリを作って、Google アナリティクスのタグ実装からテスト計測まで確認しましたので、その方法をご紹介します。

今回はObjective-cの環境で実装しています。Swiftでの実装方法はGoogleからまだ公開されていないようです。

DSC00405

今回検証した環境

SDKのバージョンが変わると、上手くいかない場合があるので念のため。
  • PC : OS X Yosemite 10.10.3
  • iPhone 5S : iOS 8.2
  • Xcode : 6.3
  • 言語 : Objective-c
  • Google アナリティクス SDK : 3.08

Google アナリティクス iOSアプリ計測用のプロパティの作成

iOSアプリを計測するには、iOSアプリ用のGoogleアナリティクスの「プロパティ」を新設する必要があります。そのため以下の方法でプロパティを作成してください。
  • 新規アカウントを作成して、iOS用のプロパティを作成する
  • 既存アカウントに、iOS用のプロパティを追加する
Google アナリティクス
新しいプロパティを作成する際には、トラッキング対象に「モバイル アプリ」を選択します。

Image

作成したプロパティからトラッキングIDを確認します。(UA-XXXXXXXX-X)

Image

続いて、SDKをダウンロードします。

Google アナリティクス iOS SDKのダウンロード

以下のページから最新のGA iOS SDKをダウンロードします。
ここでは、バージョン3.08をダウンロードしています。
バージョンによって手順が異なる可能性がありますのでご注意ください。
ダウンロード - iOS SDK - Google アナリティクス — Google Developers

Xcodeを使ったアプリの作成

今回は、ボタンが1つあるだけのシンプルなアプリを作成して、Google アナリティクスを実装していきます。
プロジェクトを「Single View Application」で新しく作成します。

Image

言語は、「Objective-C」で作成します。
swiftは実装方法が異なります。

Image

ダウンロードしたSDKをプロジェクトに追加します。

Image

「New Group」から「GALibrary」というグループを作成してそこに必要なファイルをすべて格納します。

Image

追加します。
「Copy items if needed」にチェックが付いていることを確認します。

Image

「Linked Frameworks and Libraries」に以下の項目を追加します。
画面左のナビゲーションエリアからプロジェクト名 > General > Linked Frameworks and Libraries
※公式ガイドでは「libsqlite3.dylib」が抜けているので注意です。
  •  libGoogleAnalyticsServices.a
  •  AdSupport.framework
  •  CoreData.framework
  •  SystemConfiguration.framework
  •  libz.dylib
  •  libsqlite3.dylib

Image

続いてファイルを編集していきます。
AppDelegate.mにインポート文を追記します。
#import "AppDelegate.h"
#import "GAI.h" //追加
@interface AppDelegate ()
AppDelegate.mのapplication didFinishLaunchingWithOptionsメソッドに以下のコードを追記します。
UA-XXXX-Y部分は、前のステップで作成したトラッキングIDに変更します。
// 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"];
Image
ViewController.hファイルを更新します。
#import <UIKit/UIKit.h>
#import “GAITrackedViewController.h” //追記
@interface ViewController : GAITrackedViewController //更新

@end
ViewController.mファイルに追記します。
スクリーン名は任意の名前に変更していください。
ここでは、「スクリーンが表示されました!」としています。
//追記
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.screenName = @"スクリーンが表示されました!";
}
イベントトラッキングを設定する場合
ボタンなどのタップ回数を計測する場合にはイベントトラッキングを使用します。
ここでは、スクリーンにボタンを追加して、ボタンクリック回数を計測する場合を例にご説明します。

ボタンを設置してコードに記述する手順

  1. MainStoryboardを開きます。
  2. ユーティリティエリアからButtonを選んでMainStoryboardに配置します。
  3. Assistant Editorを開いて、MainStoryboardとViewController.mを表示します。
  4. Buttonをクリックして、[control]を押しながらButtonをViewController.mに配置します。

Image

該当メソッドファイル(XXXX.m)にインポート文を追加します。

#import "GAIDictionaryBuilder.h"
#import "GAI.h"
該当メソッドファイル(XXXX.m)のアクション部分にコードを追加します。
イベントカテゴリ、イベントアクション、イベントラベルは、適当なものに変更してください。
id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
[tracker send:[[GAIDictionaryBuilder
      createEventWithCategory:@"イベント発生!" // Event category (required)
      action:@"ボタンが押されました。"           // Event action (required)
      label:@"play"                            // Event label
      value:nil] build]];                      // Event value

iPhoneでのアプリ実行

ここでは、Macbookに接続したiPhoneを出力先に設定して検証しています。
Product > Run からアプリを実行します。
シミュレーターを起動します。(スクリーン表示)
起動したスクリーン上の「Button」をタップしてイベントを発生させます。
DSC00405

Google アナリティクスによるリアルタイム計測

Googleアナリティクスの該当プロパティのレポート画面を開きます。
リアルタイムの「スクリーン」を開きます。

Image

レポート画面に設定したスクリーン名が表示されていれば、計測成功です。
表示されない場合は、再度アプリを起動させてください。

Image

続いて、イベントの計測を確認します。
リアルタイム > イベントを開きます。
ボタンをタップして、設定したイベント名を計測されていれば成功です。
リアルタイムリアルタイムではあるものの、Google アナリティクスの仕様で意図的にデータ送信を遅延させているようです。

Image

参考ページ

iOS 向け Google アナリティクス SDK v3 - ご利用方法 - Google アナリティクス — Google Developers
イベント トラッキング - iOS SDK - Google アナリティクス — Google Developers
鳥さんの独り言
objective c - Google Analytics SDK 3.0 _sqlite3 linker errors in iOS - Stack Overflow

-アクセス解析
-, ,