実装テスト

始める前に

このドキュメントのテストを正常に完了するためには、以下が必要です:

iOS SDK実装テスト

テストは、以下で構成されています:

  1. ユーザーの広告クリックとアプリインストールのシミュレーション:
  2. インストールのコンバージョンデータを検証してください。

Apps that implement ATT

アプリに App Tracking Transparency (ATT) を実装する場合は、これらの手順に従ってください。
以下の条件を満たす場合、IDマッチングによって計測が発生します。

  • The attribution link contains the idfa parameter
  • ATTが実装されており:
    1. requestTrackingAuthorization is called before start (by utilizing waitForATTUserAuthorization)
    2. ユーザーの同意を得ている。

ステップ1:広告クリックのシミュレーション
計測リンク経由で広告クリックをシミュレートしてください。以下のように計測リンクを構成してください。

https://app.appsflyer.com/<app_id>?pid=<media_source>
&idfa=<registered_device_idfa>

場所:

  • app_id is your AppsFlyer app ID (including id suffix)
  • pid は、インストールが紐づくメディアソースです
  • idfa は、登録されたデバイスのIDFAです


If your app ID is id123456789, the attribution link might look like this:

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 is your AppsFlyer app ID (including id prefix)
  • pid は、インストールが紐づくメディアソースです


If your app ID is id123456789, the attribution link might look like this:

https://app.appsflyer.com/id123456789?pid=conversionTest1

ステップ2:アプリのインストール
デバッグモードを有効にして、任意のデバイスにアプリをインストールしてください。デバイスを登録するIDFAが利用できないため、デバイスを登録する必要はありません。

ステップ3:テストの実行
コンバージョンデータの検証に進んでください。

👍

ヒント

計測リンクを使用したテストは複数回行われることがよくあります。そのため、アトリビューションパラメータの1つを使用して、テストのバージョンを区別することをお勧めします。どのリンクがどのコンバージョンに紐づいているのかを簡単に把握することができます。

In the above example, the value of pid is conversionTest1. In consecutive tests, increment the value of pid to conversionTest2, conversionTest3, and so on.

Inspect conversion data

広告のクリックをシミュレートし、アプリをインストールした後、以下の手順でインストールのコンバージョンデータを検証してください。

ステップ1:インストールUIDの取得
Once the app is installed, In the Xcode terminal, search for conversions.appsflyer. Look for the uid parameter and copy its value.

2452

ステップ2:コンバージョンデータの検証
コンバージョンデータテストAPIへ進み、必要な項目を入力してください。

  1. app-id:アプリID
  2. device_id: paste the value of uid from step 1.
  3. devkey - Application's devkey. Learn here how to get it.

その後、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
    

The 404 error indicates that the SDK is unable to find the app in your account.

  • 間違った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がアプリに設定されていますが、インストールが計測できません。

よくあるエラー要因
The SDK is not initiated correctly. Make sure to call the start method in applicationDidBecomeActive:

    - (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”と表示されます。

よくあるエラー要因

The dev key is not set. Make sure to set it in appDelegate in the didFinishLaunchingWithOptions method:

[AppsFlyerLib shared].appsFlyerDevKey = @"<YOUR_DEV_KEY>";
AppsFlyerLib.shared().appsFlyerDevKey = "<YOUR_DEV_KEY>"

インストールが常にオーガニックとして計測される

シナリオ
計測リンクを使用したテストをしています。SDKコンバージョンリスナーを実装しましたが、ログではインストールが全てオーガニックであると表示されます。管理画面上でも非オーガニックインストールが記録されていません。

よくあるエラー要因

  1. 利用している計測リンクが間違っています。計測リンクガイドを参照してください。
  2. テストに使用している端末がテスト端末に登録されていることをご確認ください。

収益が正しく計測できていない

シナリオ
収益値を含むアプリ内イベントのテストをしています。イベントは管理画面に表示されますが、収益値は計測されません。

よくあるエラー要因
収益パラメータの形式が正しくありません。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のアクティブなコンパイル状態を利用して、デバッグ用アプリとプロダクション用アプリを切り替えることができるようになります。

📘

注意

本番用データとテスト用トラフィックが混在しても構わない場合は、実装テストに進んでください。すべてのテストは、本番アプリとデバッグアプリの両方で行うことができます。

This is achieved by configuring a User-Defined Setting in your project's Build Settings and exposing it via an info.plist property.

ステップ1:AppsFlyerにデバッグアプリを追加する
Add a new pending iOS app to AppsFlyer or ask a team member with dashboard access to add it. Choose any available app ID–You will need it in step 3. Make sure the ID is 9 digits and starts with four 1s, for example, 111167538.

ステップ2:ユーザー定義の設定を追加

  1. Xcodeのファイルナビゲータービューで、プロジェクトルートを選択し、Build Settingsへ進みます。
  2. Click + in the toolbar and select Add User-Defined Setting. In this case, we name it AF_APP_ID.
  3. 新たに作成した User-Defined Setting を展開してください。
    • Debug Conditional Setting をテストアプリのアプリIDに設定してください(ステップ1で記述)。
    • Release Conditional Setting を本番アプリのアプリIDに設定してください。
987

ステップ3: info.plist でアプリIDを公開
Go to the project's info.plist and add a new property (called AFAppID in this case). Set its value to $(AF_APP_ID) (based on the User-Defined Setting name in step 2).

971

ステップ4:アプリIDを取得し設定
To access and use app ID during SDK initialization, add the following code to didFinishLaunchingWithOptions in your AppDelegate:

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ビルドの設定によるアプリの実行
アクティブビルドの設置を変更する方法:

  1. go to Product > Scheme > Edit Scheme....
  2. Run を選択して、必要に応じて Build configurationDebug または Release に変更してください。
945

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