Google Analytics SDK 2.0 for iOSを使う(メモ)
https://developers.google.com/analytics/devguides/collection/ios/resources
V2のトピックス
・バージョン情報も詳細にとれる
・Debugもできる
・クラッシュログもとれる
・Androidの場合は、ストアからのダウンロード数もとれる
・App内課金のトラッキングができる
等の機能が増えたようです。
V2.0でできるようになったこと
Crashes and Exceptions - エラーの取得
- @try@catchで捕まえた、NSExceptionや任意のNSErrorを送ることができる。
- 予想しないクラッシュもグローバルにキャッチすることも可能。
The description field is automatically populated using the stack trace.
ということで、 stack traceが全部送信されて、参照できるわけではなさそう。
デバイス&バージョン情報も詳細にとれる
OSのバージョン、スクリーンサイズ、アプリのバージョン
↑その他になっているのは、シミュレーターかもしれない。集計中のための模様。
後でみたら、OSが判定されていた
iPad,iPhoneの区別はつくが、iPhoneの機種(4 or 4Sの区別)まではとれない模様
Debugもできるようになった
[GAI sharedInstance].debug = YES;
NSLogを自分で書かなくてもよくなるのだけど
2012-11-28 23:30:59.403 nyarupo dev[281:907] Hit URL: http://www.google-analytics.com/collect 2012-11-28 23:30:59.404 nyarupo dev[281:907] Method: POST 2012-11-28 23:30:59.406 nyarupo dev[281:907] Header User-Agent: GoogleAnalytics/2.0b3 (iPhone; U; CPU iPhone OS 6.0 like Mac OS X; ja-jp) 2012-11-28 23:30:59.407 nyarupo dev[281:907] Header Content-Length: 176 2012-11-28 23:30:59.409 nyarupo dev[281:907] Header Content-Type: application/x-www-form-urlencoded; charset=UTF-8 2012-11-28 23:30:59.410 nyarupo dev[281:907] Body: ul=ja&an=nyarupo+dev&_v=mi1b3&cid=734ee0621caa01c010a4a995c11883&t=appview&sd=24-bit&sr=320x480&cd=detail%2F3829&tid=UA-xxxxxxxx-10&v=1&av=1.1&qt=11880&z=11189763332405702156 2012-11-28 23:30:59.458 nyarupo dev[281:907] GoogleAnalytics 2.0b3 -[GAIDispatcher dispatchComplete:withStartTime:withRetryNumber:withResponse:withData:withError:] (GAIDispatcher.m:392) DEBUG: Hit /GAIHit/p5 dispatched (46ms): HTTP status 200 2012-11-28 23:30:59.473 nyarupo dev[281:907] GoogleAnalytics 2.0b3 -[GAIDispatcher dispatchComplete:withStartTime:withRetryNumber:withResponse:withData:withError:] (GAIDispatcher.m:413) DEBUG: Successfully dispatched hit /GAIHit/p5 (0 retries). 2012-11-28 23:30:59.476 nyarupo dev[281:907] GoogleAnalytics 2.0b3 -[GAIDispatcher dispatchComplete:withStartTime:withRetryNumber:withResponse:withData:withError:] (GAIDispatcher.m:420) DEBUG: Pending hit queue drained. 2012-11-28 23:30:59.478 nyarupo dev[281:907] GoogleAnalytics 2.0b3 -[GAIDispatcher cancelTimer] (GAIDispatcher.m:224) DEBUG: Canceled timer with interval 20.0s
のように、DEBUGすると送信ログがLogされる。ただ、ちょっと、おおすぎだなあ..
Campaign Tracking
- インストール済みのアプリのSchemaでの起動時に、呼出し元を特定する。
"utm_campaign=my_campaign&utm_source=google&utm_medium=cpc&utm_term=my_keyword&utm_content=ad_variation1"
のように、Campaign Parametersを仕込むことができる、このパラメータごとに集計
iOSの場合は既存アプリの場合だけなので新規インストールの補足はできない。
ただAndroidの場合はGoogle Play Store Campaign Trackingとい素敵な機能があって、GooglePlayからの新規ダウンロード数も把握できる。
Ecommerce Tracking
App内課金のトラッキングができる。
Events
イベントの取得。「Likeボタンを押した」とか
Screens
画面ごとの閲覧。
Sessions
デフォルトでは30分でセッションがきれるが、タイムアウトをのばしたり、任意のタイミングでセッションを新規にしたりできる。
User Timings
特定の動作がどのくらいの頻度時間かかっているのかをで発生しているかを測定記録できる。たとえば、起動時間とか。ロード時間とか
User Timings - iOS SDK | Analytics for iOS v2 (Legacy) | Google Developersのサンプルコードは以下だが、
- (void)onLoad:(NSTimeInterval *)loadTime { [tracker trackTimingWithVariableCategory:@"resources" withTimeInterval:loadTime withName:@"high scores" withLabel:nil]; ... // The rest of your onLoad: code. }
withTimeIntervalが間違い。withValueにすべし
- (void)onLoad:(NSTimeInterval *)loadTime { [tracker trackTimingWithCategory:@"resources" withValue:loadTime withName:@"high scores" withLabel:nil];
v1->v2のマイグレーションの方法
https://developers.google.com/analytics/devguides/collection/ios/v2/migration#migrate-all
プロファイルは、新しくつくる必要あり。
これまでもプロフォールも、そのまま使えると思われるが、V2ならではの情報は新しくつくった、プロファイルでないととらえれないと予想(まだ確認できてないです)
プロファイルをつくっても、そのプロファイルには、これまでの情報ははいらない。
埋め込み方
https://developers.google.com/analytics/devguides/collection/ios/v2/
1.xのときよりもheadファイルが増えたり、viewのトラッキング方法が微妙にかわったりといろいろ、作業はある。
#import "GAITrackedViewController.h"
@interface AboutViewController : GAITrackedViewController
ViewControllerの親クラスが提供されていて、これを使って、self.trackedViewNameを指定すれば
- (void)viewDidLoad { [super viewDidLoad]; self.trackedViewName = @"About Screen"; }
自動的に、トラックできるとのことだけど、ちょっと、怖い。
これまでどおり
[tracker trackView:@"About Screen"];
を任意の場所に埋め込むことも可能
ビルド時に"_OBJC_CLASS_$_GAI"のエラーがでたときの対処法
Google Analytics Library IOS - Stack Overflowに回答ありました。
1.5から2.0にマイグレーとしたときに、1.5のライブラリのパスを参照し続けるようになっているのが、原因の可能性が高いです。
ターゲットのLibrary Search Pathsに、1.5のライブラリパスが指定されていたらそれを、削除すればOKになります(他の原因でなければ)
おまけ
アカウント、ユーザー、プロパティ、プロファイルの関係
googleアカウントに複数のAnalyticsアカウントの閲覧、操作権限を与えることが可能
一つのAnalyticsアカウントには複数のプロパティを作成可能
プロパティ毎に、トラッキング ID(例: UA-xxxxxxx-1 )が1つひもづく
プロパティに複数のプロファイルを作成可能。
ユーザーはプロファイル毎に指定可能
組織、アカウント、ユーザー、プロパティ、ビューの階層構造 - アナリティクス ヘルプ