GoogleAnalyticsをiOSアプリに入れることはよくあるのですが、マニュアル通りにきちんと導入しようとすると、地味にめんどくさいですね。
そこで、ここでは、ものすごく簡単に設置する方法をお伝えします。
まずは適当にSDKをダウンロードする
GoogleAnalyticsServicesiOS_3.03.zip ※2014/02/04現在最新
次にダウンロードしたファイルをXcodeで管理しているプロジェクトにぶっ込む
GAI.h GAITracker.h GAITrackedViewController.h GAIDictionaryBuilder.h GAIFields.h GAILogger.h libGoogleAnalyticsServices.a
ここでポイントですが、コンパイルしたときにもしエラーが発生したら、多分、必要なlibrariesがすべて指定されていないのだと思います。下記をLinked Frameworks And Librariesに追加してください。
libGoogleAnalyticsServices.a AdSupport.framework CoreData.framework SystemConfiguration.framework libz.dylib
ここから本番
XXXX-Prefix.pchに便利に使えるmacroを追加
#ifdef __OBJC__ #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> // Google Analytics #import "GAI.h" #import "GAIDictionaryBuilder.h" #import "GAIFields.h" #import "GAITrackedViewController.h" #endif // Google Analytics Macro #define GA_INIT_TRACKER(INTERVAL, ACCOUNT) {\ [GAI sharedInstance].trackUncaughtExceptions = YES; \ [GAI sharedInstance].dispatchInterval = INTERVAL; \ [[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelWarning]; \ [[GAI sharedInstance] trackerWithTrackingId:ACCOUNT]; \ } #define GA_TRACK_PAGE(PAGE) {\ [[[GAI sharedInstance] defaultTracker] send:[[[GAIDictionaryBuilder createAppView] set:PAGE forKey:kGAIScreenName] build]];\ }; #define GA_TRACK_EVENT(CATEGORY,ACTION,LABEL,VALUE) {\ [[[GAI sharedInstance] defaultTracker] send:[[GAIDictionaryBuilder createEventWithCategory:CATEGORY \ action:ACTION \ label:LABEL \ value:VALUE] build]]; \ }; #define GA_TRACK_CLASS GA_TRACK_PAGE(NSStringFromClass([self class])); #define GA_TRACK_METHOD GA_TRACK_EVENT(NSStringFromClass([self class]), NSStringFromSelector(_cmd), @"", nil);
XXXXAppDelegate.mにGoogleAnalytycsの設定を定義
XXXXAppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { GA_INIT_TRACKER(20, @"UA-XXXXXXX-XX”); }
設定は終了です。
ここからは使い方です。
基本的には各ViewControllerにGA_TRACK_CLASS、もしくはGA_TRACK_METHODを追加していくだけ。パラメータのことは考えなくてよく、機械的に貼付けるだけ。
XXXXViewController.m
- (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; GA_TRACK_CLASS; } - (void)YYYYMethod { GA_TRACK_METHOD; }
便利ですね。便利ですね。便利ですね。
Please comment with your real name using good manners.