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つです。

ここで一度アプリを実行し、エラーが発生しないことを確かめておきましょう。

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検知、オプトアウト対応なども可能です。

元情報:英語の公式ヘルプ