iOSアプリにモバイル用SDKを入れる方法

posted Dec 18, 2014, 9:14 PM by Makoto Shimizu   [ updated Jun 8, 2016, 3:20 AM ]

こんにちは、最近モバイルに傾倒している清水です。2014年11月にAdobeを卒業し、またユーザー側に戻りました。

今回は、iOSアプリにAdobe Analytics(Adobe Mobile Service)のSDKを組み込み、行動データを送信する方法について具体的に紹介します。今回は最低限のライフサイクル系指標を取得する方法までです。

1. SDKをダウンロードする

Developerサイトからもダウンロードできますが、Mobileアプリ管理画面の下部に表示されるリンクからSDKをダウンロードすれば、ZIPファイルに含まれるconfigファイルに設定が反映された状態になるので便利です。バージョンアップでconfigファイルのフォーマットが変わることが多いので、手で編集することはなるべく避けましょう。

2. ファイルをXcodeのプロジェクトに追加する

ZIPを解凍して生成されるファイルのうち、必要なのは以下の3つ+αです。

「AdobeMobileLibrary」というフォルダごと、Xcodeのプロジェクトにドラッグ&ドロップして追加(コピー)します。

場所はプロジェクトの管理方針次第で。以下の例では「Supporting Files」フォルダに入れています。

3. 必要ライブラリを追加

Build Phasesタブに移動し、SDKが内部で利用するライブラリを二つ追加します。

必要なのは以下の3つです。

  • libsqlite3.dylib
  • SystemConfiguration.framework
  • AdobeMobileLibrary.a

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

4. 計測用のコードを追加

SDKを追加するだけでは、データは収集&送信されません。

まず、起動時に一度、起動関連のデータ(Lifecycleデータ)を送信するためのコードをAppDelegate.mファイルに追加します。

冒頭にimport文を追加

#import "ADBMobile.h"

デフォルトで存在する didFinishLaunchingWithOptions の中に一行追加

[ADBMobile collectLifecycleData];

たとえば以下のようになります。

5. データ送信を確認

これだけで最低限の計測はできます。データが実際に送信されるか、テストしてみましょう。

Mac OSXから送信されるHTTPリクエストを確認できるCharles Web Debugging Proxyをインストールして起動し、Proxyメニューの「Mac OS X Proxy」をONにしてから「/ss/」という文字列でフィルタしておきます。その後にiOS Simulatorでアプリを起動させ、以下のようにリクエストを確認できればokです。

「Request」タブに切り替えると、URLのパラメータとして送信されたデータを項目ごとに確認できます。

「internalaction=Lifecycle」を含むのが、上記で実装したLifecycle系のデータですね。このように起動時に一度データを送信するだけで、起動回数や起動頻度、OSバージョン、アプリバージョンなどがレポート画面に反映されるようになります。

アプリを前回に正常終了させなかった場合(アプリを起動させたままiOS Simulatorを終了させるなど)はクラッシュ扱いになるので、「前回はクラッシュだった」というリクエストが先に送信される点にご注意。

なお、Charlesは有料ソフトなので(未登録の場合は時間が経つと終了してしまう)、Adobeが提供するBloodhoudというテストツールを使うという方法もあります。SDKのテストに特化しているので、慣れるとこちらの方が便利かも。

6. Next Step

表示画面(Webでの「ページ」に相当)毎の計測や、重要アクション(ゲームクリア、チュートリアル終了、商品閲覧など)のコンバージョン計測をすると、分析の幅が広がります。さらに、アクション間の計測時間、スコアリングによるライフタイムバリュー値の記録、A/Bテスト、iBeacon検知、オプトアウト対応なども可能ですが、また改めて書きます。

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

Comments