2014年8月10日 星期日

iOS 開發筆記 - 快速使用 Google Analytics SDK for iOS : Screens Usage



工作上看著老闆很重視統計資料,比我這個本業搞 Web Service 還認真,因此,想嘗試用在 Mobile app 會有如何成果!過去在 Blog 也曾用過,大概就可以得知哪篇文章比較多人看、哪個國家比較多人等等

這次也用 CocoaPods 安裝 Google Analytics SDK for iOS (pod 'GoogleAnalytics-iOS-SDK'),過程:

Step 1: 先在 Google Analytics 網站上註冊一個 App ,以此得到 tracking id

Google Analytics 首頁 -> 管理員 -> 資源(Click) -> 新建資源 -> 行動應用程式 -> 取得追蹤編號 -> 例如 @"UA-#######-#" 等

Step 2: 使用 CocoaPods 管理 Google Analytics SDK for iOS

$ vim Podfile
pod 'GoogleAnalytics-iOS-SDK'
$ pod install
...
Using GoogleAnalytics-iOS-SDK (3.0.9)
...


Step 3: 在 AppDelegate.m 初始化 Google Analytics 資訊

#import "GAI.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GAI sharedInstance].trackUncaughtExceptions = YES;
[GAI sharedInstance].dispatchInterval = 30;
//[[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose];
[[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelNone];
[[GAI sharedInstance] trackerWithTrackingId:@"UA-########-#"];

id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
tracker.allowIDFACollection = YES;

// ...

return YES;
}


Step 4: 在任何想回報的地方埋下 Codes

#import "GAIDictionaryBuilder.h"
#import "GAIFields.h"

- (void)reportStatus:(NSString *)pattern {
id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
[tracker set:kGAIScreenName value: pattern];
[tracker send:[[GAIDictionaryBuilder createScreenView] build]];
}


如此一來,則可以透過 Google analytics 網站上觀察到多少使用者用了 App,並且透過上述 reportStatus 搭配的 pattern 字眼,可以用在使用者用了個功能就回報一次等。此外,在 Google Analytics SDK for iOS 上,其實有整合一個 GAITrackedViewController 供人繼承使用,仿造 Web 上頭的經驗,直接幫你記錄哪個 ViewController 用了多久 :) 有興趣的可以翻翻官方文件。
以下就是送出 [self reportStatus:@"test"]; 的統計資訊,需要留意的離開某個功能時,也該回報另一個狀態才能完整的終止。因此,透過 Screen 的用法,可以快速不破壞原先的程式架構。



註:由於 CocoaPods 裡頭維護的 GoogleAnalytics-iOS-SDK 沒有 link libAdIdAccess.a 這支,這將導致無法正確使用 IDFA 訊息,所以我自己額外再包了一個:changyy / GoogleAnalyticsSdkiOSUsingIDFA 來用用。

2 則留言:

  1. 請問 IDFA 如何設定?
    我在 Other Linker flags 填入
    -force_load\ "/../Common_Source/GoogleAnalytics/libAdIdAccess.a"

    錯誤訊息顯示
    clang: error: unknown argument: '-force_load /../Common_Source/GoogleAnalytics/libAdIdAccess.a' [-Wunused-command-line-argument-hard-error-in-future]
    clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

    回覆刪除
  2. 若你有在用 CocoaPods 的話,試看看:
    $ vim Podfile
    pod 'GoogleAnalyticsSdkiOSUsingIDFA', :git => 'https://github.com/changyy/GoogleAnalyticsSdkiOSUsingIDFA.git'

    回覆刪除