iOSアプリにモバイル用SDKを入れる方法
Post date: Dec 19, 2014 5:14:13 AM
こんにちは、最近モバイルAppのアナリティクスに傾倒している清水です。
今回は、iOSアプリにAdobe Analytics(Adobe Mobile Service)のSDK 4.xを組み込み、行動データを計測する方法について具体的に紹介します。最低限のライフサイクル系指標を取得する方法までです。
1. SDKをダウンロードする
Mobileアプリ管理画面の下部に表示されるリンクからSDKをダウンロードすれば、ZIPファイルに含まれるconfigファイルに設定が反映された状態になるので便利です。バージョンアップでconfigファイルのフォーマットが変わることが多いので、手で編集することはなるべく避けましょう。
2. ファイルをXcodeのプロジェクトに追加する
ZIPを解凍して生成されるファイルのうち、必要なのは以下の3つ+αです。
「AdobeMobileLibrary」というフォルダごと、Xcodeのプロジェクトにドラッグ&ドロップして追加(コピー)します。
場所はプロジェクトの管理方針次第で。以下の例では「Supporting Files」フォルダに入れています。
3. 必要ライブラリを追加
プロジェクトのGeneralタブに移動し、ライブラリを3つ追加します。
iOSアプリの場合、必要なのは以下の3つです。
SystemConfiguration.framework
Libsqlite3.0.tbd
AdobeMobileLibrary.a
ここで一度アプリを実行し、エラーが発生しないことを確かめておきましょう。
4. 計測用のコードを追加
起動時に一度、起動関連のデータ(Lifecycleデータ)を送信するために、以下のコードをAppDelegateのdidFinishLaunchingWithOptionsに追加します。
冒頭にimport文を追加
#import "ADBMobile.h"
デフォルトで存在する didFinishLaunchingWithOptions の中に一行追加
[ADBMobile collectLifecycleData];
たとえば以下のようになります。
5. データ送信を確認
これだけで最低限の計測はできます。データが実際に送信されるか、テストしてみましょう。
Mac OSXから送信されるHTTPリクエストを確認できるCharles Web Debugging Proxyをインストールして起動し、Proxyメニューの「Mac OS X Proxy」をONにしてからiOS Simulatorでアプリを起動させ、以下のようにリクエストを確認できればokです。
送信されたデータを項目ごとに確認できます。
「internalaction=Lifecycle」を含むのが、上記で実装したLifecycle系のデータですね。このように起動時に一度データを送信するだけで、起動回数や起動頻度、OSバージョン、アプリバージョンなどがレポート画面に反映されるようになります。
アプリを前回に正常終了させなかった場合(アプリを起動させたままiOS Simulatorを終了させるなど)はクラッシュ扱いになるので、「前回はクラッシュだった」というリクエストが先に送信される点にご注意。
なお、Charlesは有料ソフトなので(未登録の場合は時間が経つと終了してしまう)、Adobeが提供するBloodhoudというテストツールを使うという方法もあります。SDKのテストに特化しているので、慣れるとこちらの方が便利かも。
6. Next Step
表示画面(Webでの「ページ」に相当)毎の計測や、重要アクション(ゲームクリア、チュートリアル終了、商品閲覧など)のコンバージョン計測をすると、分析の幅が広がります。さらに、アクション間の計測時間、スコアリングによるライフタイムバリュー値の記録、A/Bテスト、iBeacon検知、オプトアウト対応なども可能です。
元情報:英語の公式ヘルプ