まいまいワークス

主にiPhoneアプリの開発で考えた事、調べた事、感じた事などを記していきます。

google Analytics3の基本的な設定方法

iPhoneアプリ申請直前にgoogle Analyticsを確認してみたら、
早くもver.3が出ていたので設置してみました。

SDKのダウンロードはこちら
基本的にはここの情報に従って設定を行います。

 

下準備

コピーするファイルは以下の通り

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

Libraryフォルダから
libGoogleAnalytics_debug.aを抜いて
libGoogleAnalyticsServices.aを追加し、プロジェクトにコピーします。

f:id:cccookie:20131127211840j:plain

 

次に以下のFramework、libを追加します。
(上記の操作でlibGoogleAnalyticsServices.aは追加されているはず)

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

 

イニシャライズ

AppDelegate.mで以下を記述

@interface AppDelegate(){
    id<gaitracker> tracker;
}
@end
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    
	//googleAnalytics
	[GAI sharedInstance].trackUncaughtExceptions = YES;
	[GAI sharedInstance].dispatchInterval = 20;
	[[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose];
	tracker = [[GAI sharedInstance] trackerWithTrackingId:@" UA-XXXX-Y"];

    return YES;
}

UA-XXXX-Yは各自でIDを取得して書き換えてください。
※trackerの行で不具合が出ていますね。
正しくは

tracker = [[GAI sharedInstance] trackerWithTrackingId:@" UA-XXXX-Y"];

 

画面を開いたポイントを計測

この計測には2通りのやり方があるようです。
1.自動計測

以下のように
GAITrackedViewController.hをインポートし
GAITrackedViewControllerを継承します

#import "GAITrackedViewController.h"

@interface HomeViewController : GAITrackedViewController

こうすることで、viewDidAppearなどに
 self.trackedViewName = @"About Screen";
と記述する事で計測ができます。

 

2.手動計測

GAI.h
GAIFields.h
GAIDictionaryBuilder.h

をインポートします。
毎回書くのが面倒であればxxxx-Prefix.pchに書いておきましょう。

    id tracker = [[GAI sharedInstance] defaultTracker];
	[tracker set:kGAIScreenName value:@"screen name"];
	[tracker send:[[GAIDictionaryBuilder createAppView] build]];

これで計測ができるはずです。

 

イベントの取得 

ボタンを押されたタイミング等で以下を記述します。
categoryとactionは必須のようです。

    id tracker = [[GAI sharedInstance] defaultTracker];
	
	[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"category"    // Event category (required)
														  action:@"action"  	// Event action (required)
														   label:@"label"       // Event label
														   value:nil] build]];  // Event value

 

これで、最低限の計測はできるはずです。