実装テスト
始める前に
このドキュメントのテストを正常に完了するためには、以下が必要です。
iOS SDK実装テスト
テストは、以下で構成されています。
- ユーザーの広告クリックとアプリインストールのシミュレーション:
- インストールのコンバージョンデータを検証してください。
Apps that implement ATT
アプリに App Tracking Transparency (ATT) を実装する場合は、これらの手順に従ってください。
以下の条件を満たす場合、IDマッチングによって計測が発生します。
- 計測リンクに
idfa
パラメーターが含まれている - ATTが実装されており:
requestTrackingAuthorization
は、start
の前に呼び出されます(waitForATTUserAuthorization
を使用)。- ユーザーの同意を得ている。
ステップ1:広告クリックのシミュレーション
計測リンク経由で広告クリックをシミュレートしてください。以下のように計測リンクを構成してください。
https://app.appsflyer.com/<app_id>?pid=<media_source>
&idfa=<registered_device_idfa>
場所:
app_id
は、あなたのAppsFlyerアプリIDです(id
サフィックスを含む)pid
は、インストールが紐づくメディアソースですidfa
は、登録されたデバイスのIDFAです
例
アプリIDが id123456789
の場合、計測リンクは次のようになります:
https://app.appsflyer.com/id123456789?pid=conversionTest1&idfa=1A2B3C4D-9128-4597-1234-
04E23D654321
ステップ2:アプリのインストール
デバッグモードを有効にして、登録したテストデバイスにアプリをインストールしてください。
ステップ3:テストの実行
コンバージョンデータの検証に進んでください。
Apps that don't implement ATT
ステップ1:広告クリックのシミュレーション
計測リンク経由で広告クリックをシミュレートしてください。以下のように計測リンクを構成してください。
https://app.appsflyer.com/<app_id>?pid=<media_source>
場所:
app_id
は、あなたのAppsFlyerアプリIDです(id
プレフィックスを含む)pid
は、インストールが紐づくメディアソースです
例
アプリIDが id123456789
の場合、計測リンクは次のようになります:
https://app.appsflyer.com/id123456789?pid=conversionTest1
ステップ2:アプリのインストール
デバッグモードを有効にして、任意のデバイスにアプリをインストールしてください。デバイスを登録するIDFAが利用できないため、デバイスを登録する必要はありません。
ステップ3:テストの実行
コンバージョンデータの検証に進んでください。
ヒント
計測リンクを使用したテストは複数回行われることがよくあります。そのため、アトリビューションパラメータの1つを使用して、テストのバージョンを区別することをお勧めします。どのリンクがどのコンバージョンに紐づいているのかを簡単に把握することができます。
上記の例では、
pid
の値はconversionTest1
です。連続したテストでは、pid
の値をconversionTest2
、conversionTest3
のように増やしていきます。
Inspect conversion data
広告のクリックをシミュレートし、アプリをインストールした後、以下の手順でインストールのコンバージョンデータを検証してください。
ステップ1:インストールUIDの取得
アプリがインストールされたら、Xcodeターミナルで、conversions.appsflyer
を検索してください。uid
パラメーターを探し、その値をコピーしてください。


ステップ2:テストの実行とレスポンスの確認
コンバージョンデータの取得へ進み、必要な項目を入力してください:
app-id
:アプリIDdevkey
:AppsFlyer Devキーdevice_id
:ステップ1からuid
の値を貼り付けてください


その後、Try it! をクリックしてテストを実行してください。
期待される結果
ATTが実装されユーザーの同意が得られている場合、結果は以下のような200レスポンスです(読みやすく省略済):
{
...
"af_status" = "Non-organic";
...
"match_type" = id_matching;
"media_source" = conversionTest1;
...
}
そうでない場合は、計測は確率論的に実行され、その結果、次のような200レスポンスとなります(読みやすさのために切り捨てられています):
{
...
"af_status" = "Non-organic";
...
"match_type" = probabilistic;
"media_source" = conversionTest1;
...
}
インストールが計測されていない場合、結果は次のペイロードを含む200レスポンスです:
{
"af_message" = "organic install";
"af_status" = Organic;
"install_time" = "2021-08-23 06:59:51.194";
"is_first_launch" = 1;
}
注意
インストールが管理画面に表示されるまで最大30分かかる場合があります。
iOS SDK実装のトラブルシューティング
インストールとアプリ内イベントが計測されない
インストールとアプリ内イベントが計測されない理由はいくつかあります:
-
間違ったアプリIDの形式:アプリIDを間違った形式で指定すると、インストールとイベントは記録されません。delegateファイルにアプリIDを設定するときは、アプリIDが数字のみで構成されていることをご確認ください。アプリIDのフォーマットが間違っている場合、ログに次のエラーが表示されます:
\[ERROR\] AppsFlyer: -\[AppsFlyerTracker validateAppID\] AppsFlyer Error: appleAppID should be a number!
-
誤ったアプリID:アカウントに存在しないアプリIDを指定すると、インストールとイベントは記録されません。ログには次のエラーが表示されます:
AppsFlyer: -[AppsFlyerHTTPClient sendRequestEventToServer:isRequestFromCache:appID:isDebug: completionHandler:]_block_invoke sent information to server, status = 404
404
エラーは、SDKがアカウント内でアプリを見つけつることができなかったことを示します。
-
間違ったDevキー:正しくないDev キーを指定すると、インストールとイベントは記録されません。ログには次のエラーが表示されます:
AppsFlyer: -[AppsFlyerHTTPClient sendRequestEventToServer:isRequestFromCache:appID:isDebug:completionHandler:] _block_invoke sent information to server, status = 400
400エラーは、インストールやイベントを計測するためのリクエストをSDKで認証できないことを示します。正しいdev keyを設定しているかご確認ください。dev keyは英数字のみで構成されています。
正しいフォーマット:
[AppsFlyerLib shared].appleAppID = @"340954503";
間違ったフォーマット:
[AppsFlyerLib shared].appleAppID = @"id340954503";
間違ったフォーマット:
[AppsFlyerLib shared].appleAppID = @"com.appslyer.sampleapp";
アプリIDとDevKeyは正しいが、インストールが計測されない
シナリオ
正しいアプリIDとDevKeyがアプリに設定されていますが、インストールが計測できません。
よくあるエラー要因
SDKの初期化が正しく行われていません。applicationDidBecomeActive
で、start
メソッドを呼び出していることを確認してください:
- (void)applicationDidBecomeActive:(UIApplication *)application {
[[AppsFlyerLib shared] start];
}
func applicationDidBecomeActive(application: UIApplication) {
AppsFlyerLib.shared().start()
}
ログに"AppsFlyer dev key missing or empty. aborting”と表示される
シナリオ
ログ内でインストールとアプリ内イベントのテストを試みましたが、ログに"AppsFlyer dev key missing or empty. Aborting”と表示されます。
よくあるエラー要因
Devキーが設定されていません。 in the didFinishLaunchingWithOptions
メソッドの appDelegate でDevキーが設定されていることを確認してください。
[AppsFlyerLib shared].appsFlyerDevKey = @"<AF_DEV_KEY>";
AppsFlyerLib.shared().appsFlyerDevKey = "<AF_DEV_KEY>"
インストールが常にオーガニックとして計測される
シナリオ
計測リンクを使用したテストをしています。SDKコンバージョンリスナーを実装しましたが、ログではインストールが全てオーガニックであると表示されます。管理画面上でも非オーガニックインストールが記録されていません。
よくあるエラー要因
- 利用している計測リンクが間違っています。計測リンクガイドを参照してください。
- テストに使用している端末がテスト端末に登録されていることをご確認ください。
収益が正しく計測できていない
シナリオ
収益値を含むアプリ内イベントのテストをしています。イベントは管理画面に表示されますが、収益値は計測されません。
よくあるエラー要因
収益パラメータの形式が正しくありません。revenueの値にはどのようなフォーマットも適用しないでください。カンマ区切り、通貨記号、テキストなどを含めないでください。たとえば、収益の値は「1234.56」のように設定してください。
インストールまたはイベント計測で404エラーが表示される
シナリオ
インストールやアプリ内イベントが正しいメディアソースにアトリビュートされるかテストしようとしています。しかし、インストールもアプリ内イベントも404エラーが表示されます。インストールもアプリ内イベントも管理画面に表示されません。
よくあるエラー要因
404エラーは、アプリIDが正しくないことを示しています。インストールとイベントが計測されないを参照してください。
インストールまたはアプリ内イベントのテストをすると400エラーになる
シナリオ
ログ内のアプリ内イベントをテストしようとしています。イベントをトリガーすると、ログに400エラーが表示されます。
よくあるエラー要因
dev keyに問題がある可能性があります。正しいdev keyを設定しているかご確認ください。dev keyは英数字のみで構成されています。インストールとイベントが計測されないを参照してください。
インストール / アプリ内イベントのテストをすると、403のエラーレスポンスを受け取ってしまう
シナリオ
log内でインストールやアプリ内イベントのテストを行おうとしている場合、log内でそれらのイベントを発火させると403のエラーレスポンス(forbidden/禁止)が表示されます。
よくあるエラー要因
This might be because you have the Zero package, which does not include attribution data; only data on clicks and impressions. To start receiving attribution data, learn more about the different AppsFlyer packages, and update as needed. You can also contact our customer engagement team at [email protected] if you have questions about our packages.
iOSデバッグアプリの作成
オプション
Xcodeのコンパイル構成機能を利用して、使いやすい デバッグアプリを構成することができます。これにより、Xcodeのアクティブなコンパイル状態を利用して、デバッグ用アプリとプロダクション用アプリを切り替えることができるようになります。
注意
本番用データとテスト用トラフィックが混在しても構わない場合は、実装テストに進んでください。すべてのテストは、本番アプリとデバッグアプリの両方で行うことができます。
これは、プロジェクトのBuild SettingsでUser-Defined Settingを設定し、それをinfo.plist
プロパティで公開することで実現できます。
ステップ1:AppsFlyerにデバッグアプリを追加する
新規申請中のiOSアプリをAppsFlyerに追加するか、管理画面にアクセスできるチームメンバーに追加を依頼してください。利用できる任意のアプリIDを選択してください。これはステップ3で必要です。
ステップ2:ユーザー定義の設定を追加
- Xcodeのファイルナビゲータービューで、プロジェクトルートを選択し、Build Settingsへ進みます。
- ツールバーの + をクリックし、Add User-Defined Setting を選択してください。この場合、
AF_APP_ID
と名付けています。 - 新たに作成した User-Defined Setting を展開してください。
- Debug Conditional Setting をテストアプリのアプリIDに設定してください(ステップ1で記述)。
- Release Conditional Setting を本番アプリのアプリIDに設定してください。


ステップ3: info.plist でアプリIDを公開
プロジェクトの info.plist
に進み、新しいプロパティ(この場合 AFAppID
と呼ばれる)を追加してください。その値を $(AF_APP_ID)
に設定してください(ステップ2のユーザー定義の設定の名前に基づく)。


ステップ4:アプリIDを取得し設定
SDKの初期化時にアプリIDにアクセスに使用するには、次のコードを AppDelegate
の didFinishLaunchingWithOptions
に追加してください:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// ...
guard let appID : String = Bundle.main.object(forInfoDictionaryKey: "AFAppID") as? String else {
fatalError("Cannot find app ID")
}
AppsFlyerLib.shared().appleAppID = appID
// ...
return true
}
ステップ5:Debugビルドの設定によるアプリの実行
アクティブビルドの設置を変更する方法:
- go to Product > Scheme > Edit Scheme....
- Run を選択して、必要に応じて Build configuration を Debug または Release に変更してください。


これで、Debug設定を使用してアプリを構築した際に、ステップ2で設定したXcodeはデバッグアプリIDを使用します。
更新済 2か月前