GADI(Google Analytics Dependency Injection)の略
iOSでのGoogleAnalyticsによるトラッキング処理を外部から注入することが可能となる
内部の処理としてAOPライブラリのMOAspectsを使ってAOP的にトラッキング処理を埋め込んでいる
Podfileに以下を記述し、pod install
する
pod 'GADI'
このライブラリは設定用のPropertyListファイル(.plist)を基に処理を行うため、以下のplistファイルをプロジェクト内のリソースファイルにインポートする必要がある
設定名 | 詳細 | 必須 |
---|---|---|
Class | GAのトラッキング対象とするクラス | ○ |
MethodSignature | GAのトラッキング対象とするメソッド | ○ |
GA:Type | トラッキング種別、"Screen" か "Event" のどちらかを設定する | ○ |
GA:Screen | GAの画面のトラッキングに必要なScreenの文字列 | × |
GA:Category | GAのイベントのトラッキングに必要なCategoryの文字列 | × |
GA:Action | GAのイベントのトラッキングに必要なActionの文字列 | × |
GA:Label | GAのイベントのトラッキングに必要なLabelの文字列 | × |
GA:Value | GAのイベントのトラッキングに必要なValueの文字列(現状未対応) | - |
GAの埋め込み箇所の指定は全てこの設定ファイルの中で完結する
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>Class</key>
<string>AppleViewController</string>
<key>MethodSignature</key>
<string>viewDidAppear:</string>
<key>GA:Type</key>
<string>Screen</string>
<key>GA:Screen</key>
<string></string>
<key>GA:Category</key>
<string></string>
<key>GA:Action</key>
<string></string>
<key>GA:Label</key>
<string></string>
<key>GA:Value</key>
<string></string>
</dict>
<dict>
<key>Class</key>
<string> AppleViewController </string>
<key>MethodSignature</key>
<string>didTapAppleButton</string>
<key>GA:Type</key>
<string>Event</string>
<key>GA:Screen</key>
<string></string>
<key>GA:Category</key>
<string>Apple</string>
<key>GA:Action</key>
<string>Tap</string>
<key>GA:Label</key>
<string>Button</string>
<key>GA:Value</key>
<string></string>
</dict>
</array>
</plist>
ここまで設定したら以下のメソッドを実行することでGAのトラッキングの実装は完了となる
GADInjector.injectWithTrackingID("", /* Please GoogleAnalytics tracking ID */
configPropertyListPath:NSBundle.mainBundle().pathForResource("GoogleAnalyticsConfig.plist", ofType: ""))
りんご、バナナ、オレンジが各画面で出てくるデモアプリ、実際にGAのトラッキングIDを埋め込んで動かすことでトラッキングできてることが確認できると思う
https://github.com/MO-AI/GADI/tree/master/GADIDemo/
まだイベントのトラッキングのValueに対応できてないが今後対応予定です、他に要望等あればIssueくれると喜びます!