Force Operation X (以下F.O.X)は、スマートフォンにおける広告効果最適化のためのトータルソリューションプラットフォームです。アプリケーションのダウンロード、ウェブ上でのユーザーアクションの計測はもちろん、スマートフォンユーザーの行動特性に基づいた独自の効果計測基準の元、企業のプロモーションにおける費用対効果を最大化することができます。
本ドキュメントでは、スマートフォンアプリケーションにおける広告効果最大化のためのF.O.X SDK導入手順について説明します。
F.O.X SDKをアプリケーションに導入することで、以下の機能を実現します。
- インストール計測
広告流入別にインストール数を計測することができます。
- LTV計測
流入元広告別にLife Time Valueを計測します。主な成果地点としては、会員登録、チュートリアル突破、課金などがあります。各広告別に登録率、課金率や課金額などを計測することができます。
- アクセス解析
自然流入と広告流入のインストール比較。アプリケーションの起動数やユニークユーザー数(DAU/MAU)。継続率等を計測することができます。
- プッシュ通知
F.O.Xで計測された情報を使い、ユーザーに対してプッシュ通知を行うことができます。例えば、特定の広告から流入したユーザーに対してメッセージを送ることができます。
以下のページより最新のSDKをダウンロードしてください。
既にアプリケーションにSDKが導入されている場合には、最新バージョンへのアップデートについてをご参照ください。
ダウンロードしたSDK「FOX_iOS_SDK_.zip」を展開し、以下ファイルをXcodeの任意の場所にコピーを行い、アプリケーションのプロジェクトに組み込んでください。
各ファイルの説明は以下の通りです。
機能名 | 必須? | ファイル名 |
---|---|---|
ライブラリ本体 | 必須 | libAppAdForce.a |
インストール計測 | 必須 | AdManager.h |
LTV計測 | オプション | Ltv.h |
アクセス計測 | オプション | AnalyticsManager.h |
プッシュ通知 | オプション | Notify.h |
- フレームワーク設定
次のフレームワークをプロジェクトにリンクしてください。
フレームワーク名 | Status |
---|---|
AdSupport.framework | Optional |
iAd.framework | Required |
Security.framework | Required |
StoreKit.framework | Required |
SystemConfiguration.framework | Required |
AdSupport.frameworkはiOS 6以降で追加されたフレームワークのため、アプリケーションをiOS 5以前でも動作させる(iOS Deployment Targetを5.1以下に設定する)場合にはweak linkを行うために”Optional”に設定してください。
- SDK設定
SDKの動作に必要な設定をplistに追加します。「AppAdForce.plist」というファイルをプロジェクトの任意の場所に作成し、次のキーと値を入力してください。
Key | Type | Value |
---|---|---|
APP_ID | String | Force Operation X管理者より連絡しますので、その値を入力してください。 |
SERVER_URL | String | Force Operation X管理者より連絡しますので、その値を入力してください。 |
APP_SALT | String | Force Operation X管理者より連絡しますので、その値を入力してください。 |
APP_OPTIONS | String | 何も入力せず、空文字の状態にしてください。 |
CONVERSION_MODE | String | 1 |
ANALYTICS_APP_KEY | String | Force Operation X管理者より連絡しますので、その値を入力してください。 アクセス解析を利用しない場合は設定の必要はありません。 |
初回起動のインストール計測を実装することで、広告の効果測定を行うことができます。プロジェクトのソースコードを編集し、Application Delegateのapplication:didFinishLaunchingWithOptions:に次の通り実装を行ってください。
#import "AdManager.h"
// - (BOOL)application:(UIApplication *)application
// didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[AppAdForceManager sharedManager] sendConversionWithStartPage:@"default"];
[[AppAdForceManager sharedManager] setUrlSchemeWithOptions:launchOptions];
// }
sendConversionWithStartPage:の引数には、通常は上記の通り@"default"という文字列を入力してください。
sendConversionWithStartPage:の詳細
また、URLスキーム経由の起動を計測するために、application:openURL:にsetUrlScheme:メソッドを実装します。
// - (BOOL)application:(UIApplication *)application
// openURL:(NSURL *)url
// sourceApplication:(NSString *)sourceApplication
// annotation:(id)annotation {
[[AppAdForceManager sharedManager] setUrlScheme:url];
// }
会員登録、チュートリアル突破、課金など任意の成果地点にLTV計測を実装することで、流入元広告のLTVを測定することができます。LTV計測が不要の場合には、本項目の実装を省略できます。
#import "Ltv.h"
// ...
AppAdForceLtv *ltv = [[[AppAdForceLtv alloc] init] autorelease];
[ltv sendLtv:{成果地点ID}];
LTV計測を行うためには、各成果地点を識別する成果地点IDを指定する必要があります。sendLtvの引数に発行されたIDを指定してください。
課金計測を行う場合には、課金が完了した箇所で以下のように課金額と通貨コードを指定してください。
#import "Ltv.h"
// ...
AppAdForceLtv *ltv = [[[AppAdForceLtv alloc] init] autorelease];
[ltv addParameter:LTV_PARAM_PRICE:@"9.99"];
[ltv addParameter:LTV_PARAM_CURRENCY:@"USD"];
[ltv sendLtv:{成果地点ID}];
_currencyにはISO 4217で定義された通貨コードを指定してください。
自然流入と広告流入のインストール数比較、アプリケーションの起動数やユニークユーザー数(DAU/MAU)、継続率等を計測することができます。アクセス解析が不要の場合には、本項目の実装を省略できます。
アプリケーションの起動、及びバックグラウンドからの復帰を計測するために、application:didFinishLaunchingWithOptions:およびapplicationWillEnterForegroundにコードを追加します。
#import "AnalyticsManager.h"
// - (BOOL)application:(UIApplication *)application
// didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[ForceAnalyticsManager sendStartSession];
//}
// - (void)applicationWillEnterForeground:(UIApplication *)application {
[ForceAnalyticsManager sendStartSession];
//}
sendStartSessionは必ず上記二カ所に実装を行ってください。
マーケットへの申請までに、SDKを導入した状態で十分にテストを行い、アプリケーションの動作に問題がないことを確認してください。
インストール計測の通信は、起動後に一度のみ行わるため、続けて効果測定テストを行いたい場合には、アプリケーションをアンインストールし、再度インストールから行ってください。
- テスト手順
- テスト用端末にテストアプリがインストールされている場合には、アンインストール
- テスト用端末の「設定」→「Safari」→「Cookieとデータを消去」によりCookieを削除
- 弊社より発行したテスト用URLをクリック
- マーケットへリダイレクト
- テスト用端末にテストアプリをインストール
- アプリを起動、ブラウザが起動
ここでブラウザが起動しない場合には、正常に設定が行われていません。設定を見直していただき、問題が見当たらない場合には弊社へご連絡ください。 - LTV地点まで画面遷移
- アプリを終了し、バックグラウンドからも削除
- 再度アプリを起動
弊社へ3、6、7、9の時間をお伝えください。正常に計測が行われているか確認いたします。弊社側の確認にて問題がなければテスト完了となります。
テスト用URLは必ず標準のSafari上でリクエストされるようにしてください。Chromeなどの3rd partyブラウザ、メールアプリやQRコードアプリを利用されそのアプリ内WebViewで遷移した場合には計測できません。
テストURLをクリックした際に、遷移先がなくエラーダイアログが表示される場合がありますが、疎通テストにおいては問題ありません。
管理画面上に登録したバンドルバージョンに応じた処理の振り分け
iOSでは、バンドルバージョンと呼ばれるものには具体的に以下の二つがあります。
- CFBundleVersion
- CFBundleShortVersionString
F.O.Xでは、上記のうちCFBundleShortVersionStringの値を管理の目的で利用します。
インストール計測のsendConversionWithStartPage:が起動直後ではない箇所に実装されている場合に、その地点に到達する前に離脱したユーザーは計測漏れが発生します。
sendConversionWithStartPage:は、特に理由がない限りはapplication:didFinishLaunchingWithOptions:内に実装してください。それ以外の箇所に実装された場合にはインストール数が正確に計測できない場合があります。
application:didFinishLaunchingWithOptions:に実装していない状態でインストール成果型の広告を実施する際には、必ず広告代理店もしくは媒体社の担当にその旨を伝えてください。正確に計測が行えない状態でインストール成果型の広告を実施された際には、計測されたインストール数以上の広告費の支払いを求められる恐れがあります。
Cookie計測を行うために外部ブラウザを起動した後に、元の画面に戻すためにはURLスキームを利用してアプリケーションに遷移させる必要があります。この際、独自のURLスキームが設定されている必要があり、URLスキームを設定せずにリリースした場合にはこのような遷移を行うことができなくなります。
環境によって、URLスキームの大文字小文字が判別されないことにより正常にURLスキームの遷移が行えない場合があります。URLスキームは全て小文字で設定を行ってください。
iOSにおいて、複数のアプリに同一のURLスキームが設定されていた場合に、どのアプリが起動するかは不定です。確実に特定のアプリを起動することができなくなるため、URLスキームは他社製アプリとはユニークになるようある程度の複雑性のあるものを設定してください。
iOSには、アプリ起動時に一定時間以上メインスレッドがブロックされるとアプリケーションを強制終了する仕様があります。起動時の初期化処理など、メインスレッド上でサーバーへの同期通信を行わないようにご注意ください。リワード広告などの大量のユーザーを短時間で獲得した結果、サーバーへのアクセスが集中し、通信のレスポンスが非常に悪くなることでアプリケーションの起動に時間がかかり、起動時に強制終了され正常に広告成果が計測できなくなった事例がございます。
以下の手順で、こうした状況をテストすることができますので、以下の設定でアプリケーションが正常に起動するかをご確認ください。
iOS「設定」→「デベロッパー」→「NETWORK LINK CONDITIONER」
- 「Enable」をオン
- 「Very Bad Network」をチェック