SDK実装テストとデバッグ
AppsFlyerのSDKの実装はとても簡単です。 アプリをアプリストアに送信する前に実装テストをすることを強くお勧めします。
重要!
AppsFlyer SDKは、AndroidベースのスマートテレビやApple TV (tvOS)と互換性があります。
このガイドの手順を使用して、AndroidおよびApple TV向けに開発されたアプリのSDK実装をテストすることができます。
未公開のtvOSアプリについては、公開前のtvOSの実装テストを参照してください。
AmazonのFire TV向けに開発されたアプリについては、ストア外のトラッキングをテストするを参照してください。
なぜデバッグとテストをすべきですか?
注意深くテストされた実装は、正確で包括的なデータ収集を確実にします。
SDKの実装をテストすることで、インストールとアプリ内イベントがトラッキングされ、正しいキャンペーンに割り当てられます。
SDK実装をテストしてデバッグする方法は?
SDKの実装をテストしてデバッグするには、2つの方法があります。
基本的なテスト - トラッキングリンクを使用した実装テスト
AppsFlyerのアトリビューションモデルはトラッキングリンクを使用します。 トラッキングリンクを使用してテストを行うことを強くお勧めします。
トラッキングリンクを使用してSDKの実装をテストすると、AppsFlyerの帰属モデルを詳細に把握できます。 それに代えて、AppsFlyerの帰属モデルと帰属表示機能について知ることで、マーケティングの運用と分析を最適化する機会が与えられます。
アドバンステスト - 開発環境からの直接デバッグ
SDK実装テストセクションでは、限られた一連機能のテストのみが行われます。 購入確認、変換データ、SDK設定のエラーについては扱いません。 デバッグログの助けを借りて開発環境でこれらをテストすることができます。
ヒント
もし自分が広告ネットワークで、AppsFlyerまたは広告主との実装テストをする場合は、広告ネットワーク実装テストに関するガイドをご覧ください。
テストアプリを使用したSDKの実装テスト
重要!
このセクションでは、テストデータを実際のデータから分離するためにテストアプリを作成する方法について説明します。 テストアプリを必要としない場合や、テストデータと実際のデータを混在させても構わない場合は、このセクションを飛ばすことができます。
トラッキングリンクを使用してテストを実行すると、データがアプリの管理画面に追加されます。 データがアプリの管理画面に追加されると、削除することはできません。 テストデータをライブアプリに関連付けたくない場合は、テストアプリを使用してSDK実装テストができます。
テストアプリの背後にあるアイデアは、Google PlayやApple Storeで公開されているアプリの正確なコピーであるということです。 テストアプリでSDK実装テストを実行することで、テストデータが実際のデータと混ざらないようにすることができます。
テストアプリは、以下の3つの主な側面で、プロダクションアプリとは異なります。:
- テストアプリのアプリIDが異なる
- テストアプリには独自の管理画面がある
- テストアプリはアプリストアには公開されていない
Androidのテストアプリを作成する
Androidアプリを複写する
- Androidプロジェクトフォルダのコピーを作成し、名前を変更する
- Androidスタジオで新しくコピーしたプロジェクトを開く
- Android Studioでは、パッケージに達するまでフォルダを展開する
- パッケージ名を右クリックし、リファクタを選択してから名前を変更する
- パッケージの名前を変更する
- アプリレベルbuild.gradeで、
applicationId
を新しいパッケージ名に変更する
AndroidテストアプリをAppsFlyer管理画面に追加する
手順に従って、AppsFlyerの管理画面に新しいアプリを追加します。 パッケージ名が、元のアプリのパッケージ名ではなく、新しく作成されたテストアプリのパッケージ名と同じであることを確認してください。また、アプリステータスを「承認待ち」または「未公開」に設定してください。
新しいテストアプリでテストを実行できるようになりました。
iOSのテストアプリを作成する
iOSアプリを複写する
- ファインダーでプロジェクトフォルダを開く
- フォルダを複製する
- XCodeで複製プロジェクトを開く
AppDelegate
クラスのdidFinishLaunchingWithOptions
メソッド内で、新しいアプリケーションIDを設定する:Objective C
Swift
注意
アプリIDは、アプリストアに公開されるとアプリに与えられるIDです。 ただし、これはテストアプリであるため、別のアプリで撮影していない限り、任意のIDを指定できます。 形式はid023412312でなければなりません。
重要!
id部分の後ろの数字は常に0で開始してください。 上記のIDの例を参照してください。 iTunesは0から始まるIDを決して割り当てません。0で始まるアプリIDを設定すると、iTunesでアプリに割り当てられている既存のIDとの競合を防ぎます。
AppsFlyerの管理画面にiOSテストアプリを追加する
手順に従って、AppsFlyerの管理画面に新しいアプリを追加します。 アプリIDが新しく作成されたテストアプリのアプリIDと同じであることを確認します。 また、アプリステータスを「承認待ち」または「未公開」に設定してください。
新しいテストアプリでテストを実行できるようになりました。
トラッキングリンクを使用したテスト
AppsFlyerのSDKがアプリに完全に実装されると、実装テストを開始できます。 このセクションでは、リンクを追跡することによって実装をテストする方法を紹介します。
ヒント
アプリがまだ承認待ち(Google PlayやApple Storeに表示されていない)の状態でもSDKの実装をテストできます。
このセクションでは、次のトピックについて説明します。:
- インストールアトリビューションのテスト
- アプリ内イベントのテスト
- リターゲティングのテスト (リアトリビューションとリエンゲージメント)
インストール計測のテスト
インストールのテストでは、AppsFlyerのSDKがインストールをさまざまなメディアソースに正しく紐づけることができるかどうかを判断できます。
ステップ1:
以下のリンクをコピーしてください:
https://app.appsflyer.com/<app_id>?pid=Test&c=Test&advertising_id=<GAID>
https://app.appsflyer.com/<app_id>?pid=Test&c=Test&idfa=<IDFA>
app_id パラメータをAndroidアプリIDに変更します。
- c パラメータは、キャンペーンの名前を指定します。
- pid パラメータには、インストールが帰属するメディアソースの名前を指定します。
Android用の GAID またはiOS向けIDFAを追加します。
ステップ2:
リンクをコピーしてテストデバイスに送信し、ブラウザを使用してリンクに移動します。
- アプリが公開されている場合は、インストールに進みます。
- アプリが承認待ちの場合は、開発環境からアプリをインストールします。:
-- Androidの場合 - Android StudioまたはADBシェルからインストール
-- iOSの場合 - XCodeからインストール
ステップ3:
インストールがアプリの管理画面に表示されるまで2分ほどかかります。 キャンペーンテストのメディアソーステストに紐づけられるインストールが表示されます。
より精巧な検証のために、インストールローデータレポートをダウンロードできます。 アプリの管理画面で「データエクスポート」をクリックします。 「ローデータレポート」セクションで「インストール」のローデータレポートをダウンロードします。
詳細については、インストールローデータレポートに関する記事を参照してください。
アプリ内イベントのテスト
アプリ内イベントをテストし関連する収益を表示、それがインストールを生成するメディアソースに紐づけられていることを確認できます。
トラッキングリンクを使用してアプリをインストールしたら、いくつかのアプリ内イベントをトリガーします。管理画面にイベントが表示されるまでに最大2分間かかります。 アプリの管理画面を開き、左側のメニューの「イベント」をクリックします。
アプリ内イベント、収益(収益が関連している場合)、および関連するメディアソースが表示されます。
より詳細な確認を行うには、アプリ内イベントのローデータレポートをダウンロードできます。
アプリの管理画面で「データのエクスポート」をクリックします。 ローデータレポートセクションでは、アプリ内イベントローデータレポートをダウンロードします。
詳細については、アプリ内イベントのローデータレポートに関する記事をご覧ください。
OneLinkのテスト
OneLink™では、iOSとAndroidの両方に1つのトラッキングリンクを設定できます。 OneLinkはユーザーのデバイスを認識し、適切なアプリストアにリダイレクトします。
Iさらに、OneLinkはディープリンキングを可能にします。 ディープリンクを使用すると、カスタマイズしたコンテンツを配信しながら特定のアプリアクティビティでアプリを開くことができます。
詳細については、OneLink URLのテストに関するガイドを参照してください。
リターゲティングのテスト
リターゲティングテストの前提条件
- OneLinkテンプレート - OneLinkテンプレート設定を参照
- アプリ設定でリターゲティングを有効にする
Iアプリのダッシュボードで、「アプリ設定」をクリックし、「キャンペーンのリターゲット設定」を有効にします。
- ホワイトリストに登録されていないデバイス
テストのターゲット変更は簡単です。 OneLinkテンプレートからカスタムトラッキングリンクを作成します。 リターゲティングキャンペーンをオンに必ず切り替えてください。
カスタムトラッキングリンクが準備完了すると、次の画面が表示され、ロングURLバージョンを取得できます。:
ロングURLを取得する別の方法は、リンクマネージメントページを使用する方法です。
- 「リンクマネージメント」ページで、トラッキングリンクを見つけます。
- 右側の「[アクション」の下の3つの点をクリックします。
- リンク詳細表示をクリックします。
- ロングリンクをコピーする。
重要!
リターゲティング(リアトリビューションとリエンゲージメント)をテストするときは、デバイスID(GAIDまたはIDFA)をトラッキングリンクのURLに指定する必要があります。 デバイスをホワイトリストに登録するときに、デバイスIDを取得できます。
最終リターゲティングトラッキングリンクは次の通りです。:
https://go.onelink.me/2rAD?pid=Test&c=Test&is_retargeting=true&advertising_id=<GAID>
https://go.onelink.me/2rAD?pid=Test&c=Test&is_retargeting=true&idfa=<IDFA>
リアトリビューションのテスト
リアトリビューションをテストして、過去のある時点でアプリをアンインストールした後にアプリをリインストールしたユーザーのアプリのインストールをトラッキングできることを確認できます。
- テストデバイスがホワイトリストに登録されていないことを確認する
- デバイスからアプリをアンインストールする
- インストール計測をテストするために同じ手順を繰り返す - 上記のリンク形式を使用
- リターゲティングされたインストールがダッシュボードに表示されるまで最大2分間かかる
- アプリの管理画面を開き、左側のメニューで「リターゲティング」をクリックする
- キャンペーン名Testの下にメディアソーステストに紐づけられるリアトリビューションによるインストールが表示されます。
より詳細な確認を行うには、コンバージョンローデータレポートをダウンロードできます。
アプリの管理画面で、「データエクスポート」をクリックします。 レポートのリターゲティングセクションで、コンバージョンのローデータレポートをダウンロードします。
リエンゲージメントのテスト
リエンゲージメントは、アプリをインストールしているユーザーがリターゲティングキャンペーンを経てアプリを起動したときに発生します。
アプリ起動経由でリエンゲージメントをテストする
アプリ起動経由でリエンゲージするということは、ユーザーがアプリを開くボタンが表示されているアプリストアにリダイレクトされることを意味します。 開くボタンをクリックしてアプリを起動すると、リエンゲージメントが記録されます。
リエンゲージメントをテストするには、以下の手順に従ってください:
- アプリがテストデバイスにインストールされ、数回起動されていることを確認する
- アプリがインストールされたばかりの場合は、数分待つ
- リアトリビューションのテストに使用したものと同じOneLinkを使用する
- リンクにデバイスIDを追加し、モバイルデバイスに送信する
- ブラウザを使用してリンクに移動する
- ストアの「開く」ボタンまたはデバイスの起動パッドから手動でアプリを開く
キャンペーン名Testの下にメディアソーステストに紐づけられるリエンゲージメントが表示される
ディープリンクによるリエンゲージメントのテスト
ディープリンクによるリエンゲージメントでは、ユーザーがトラッキングリンクをクリックした直後にアプリを起動できます。 ディープリンクによるリエンゲージメントのメリット:
- より良いユーザーエクスペリエンス - ユーザーはストアにリダイレクトされず、アプリは自動的に起動される
- より良いキャンペーン - 特定のキャンペーン関連のアクティビティを開いて、この方法でリターゲティングキャンペーンの結果を最大化することができる
ディープリンクを使用してリエンゲージメントアトリビューションをテストできます。 これはトラッキングリンクによるリエンゲージメントのテストと同じ手順ですが、唯一の違いは、トラッキングリンクにはユーザーをアプリ内の特定のアクティビティにリダイレクトするパラメータaf_dp
が含まれていることです。
ディープリンクを使用してリエンゲージメントをテストするには、次の手順を実行します。:
- ディープリンク用にアプリを設定する
- アプリがテストデバイスにインストールされ、数回起動されていることを確認する
- アプリがインストールされたばかりの場合は、数分待つ
- バイスIDを使用してリターゲティングリンクを生成する
- Af_dpパラメータを追加し、手順1で設定したスキーマを追加する
- ブラウザを使用してリンクに移動する
- アプリがインストールされている場合、リンクはリンクで指定されたアクティビティでアプリを起動する
キャンペーン名TestのメディアソースTestに紐づけられるリエンゲージメントが表示されます。
ディープリンクのテストに関する詳細はこちらを参照してください。
その他のSDK実装テストの方法
SDKの実装をテストするには、さらに2つの方法があります。:
このセクションでは、SDKをデバッグする方法を説明します。 このセクションを参照して、高度なテストを行い、SDKの実装に関する問題のトラブルシューティングを行いましょう。
Androidのデバッグ
SDKをデバッグすると、アプリとどのように実装されているかを詳しく見ることができます。 デバッグを使用すると、アプリ内イベントトラッキング、コンバージョンデータ、購入確認などの問題を解決できます。
Android SDKのデバッグモードを有効にする
Android SDKのデバッグを開始するには、AFApplicationクラスに次の行を追加します。:
AppsFlyerLib.getInstance().setDebugLog(true);
警告!
デバッグは開発段階のみに限定する必要があります。 デバッグを有効にしたままアプリをアプリストアに配置しないでください。 これは、主要なセキュリティとプライバシーのリスクをもたらす。
デバッグ出力の表示
デバッグ出力を表示するには、AndroidスタジオでLogcat terminal を開きます。 デバッグ可能なプロセスとしてアプリのパッケージ名を選択し、ログレベルをDebugに設定し、 "AppsFlyer_"でフィルタします。
Android SDKの一般的な問題
インストールが常にオーガニックになる
状況
トラッキングリンクを使用して計測テストをしています。 SDKコンバージョンリスナーを実装しましたが、ログには常にインストールがオーガニックであることが示されています。 さらに、管理画面には非オーガニックなインストールは記録されません。
考えられる原因
- devキーが間違っている - 間違ったdevキーを指定すると、インストールは計測できません。
- 使用しているトラッキングリンクが正しくない。- トラッキングリンクに関するガイドを参照してください。
- テスト端末がホワイトリストに登録されていることを確認してください。
- マニフェストに不適切なチャネルが定義されていないか確認してください。
インストールが検出されなかった、または計測されなかった
状況
インストールトラッキングをテストしていますが、タイプ、初回起動などのインストールに関するデータはログに表示されません。
考えられる原因
startTracking
とinit
メソッドがAFApplication
クラスで呼び出されていることを確認してください。- テスト端末がホワイトリストに登録されていることを確認してください。
インストールまたはイベントトラッキングで404エラーが表示される
状況
アプリ内イベントをテストして、正しいメディアソースに紐づけられているかどうかを確認しています。 ただし、ログにはインストール時とアプリ内イベントを送信するときの両方で404エラーが表示されます。 インストールまたはアプリ内イベントは管理画面に表示されません。
考えられる原因
404エラーは、アプリIDが間違っていることを示します。 build.gradleファイルのapplicationId
パラメータのアプリIDが、管理画面のアプリIDと同じであることを確認してください。
収益が適切に追跡されない
状況
アプリ内購入イベントをでテストしています。 イベントは管理画面に表示されますが、収益は記録されません。
考えられる原因
収益パラメータの形式が正しくありません。 どのような方法でも収益額をフォーマットしないでください。 コンマ区切り記号、通貨記号、またはテキストは使用しないでください。 収益イベントは、例えば1234.56のようであるはずです。
ログに「AppFlyerのSDKはDevKeyの提供がないとイベントを送信できません」というメッセージが表示される
状況
ログ内のアプリ内イベントを表示しようとしています。 イベントをトリガーすると、「AppsFlyerのSDKはDevKeyの提供がないとイベントを送信できません」というログのみが表示されます。
考えられる原因
パラメータとしてdevキーを渡さずにstartTracking
メソッドを呼び出している。 メソッドにdevキーを渡す。
アプリ内イベントをテストするとログに、「まだデータを送信していません、DevKeyを待っています」というメッセージが表示される。
状況
ログ内のアプリ内イベントをテストしようとしています。 イベントをトリガーすると、ログに「まだデータを送信していません、DevKeyを待っています」というログだけが表示されます。
考えられる原因
init
を呼び出し、空の文字列としてDevKeyを渡す。 メソッドにDevKeyを渡す。
アプリ内イベントをテストすると400エラーになる
状況
ログ内のアプリ内イベントをテストしようとしています。 イベントをトリガーすると、ログ内の400エラーが表示されます。
考えられる原因
これはDevKeyの問題を示している可能性があります。DevKeyが正しいことを確認してください。 また、DevKeyは英数字のみであることを確認してください。
ログに「警告:Google Playサービスがありません」と表示される
状況
logcatに警告メッセージ「警告:Google Playサービスがありません」が表示されます。
考えられる原因
アプリにGoogle Playサービスの依存関係がありません。 これにより、計測で問題を発生させGAIDがSDKによって収集されなくなる可能性があります。
次の行を追加してください。:
implementation 'com.google.android.gms:play-services-base:15.0.1'
implementation 'com.google.android.gms:play-services-ads:15.0.1'
モジュール(アプリ)レベルのbuild.gradleファイル。
iOSのデバッグ
iOS SDKのデバッグモードを有効にする
iOS SDKのデバッグを開始するには、didFinishLaunchingWithOptions
ソッドに次の行を追加します。:
AppDelegate.mには次の行を追加します。:
[AppsFlyerTracker sharedTracker].isDebug = true;
AppDelegate.swiftには次の行を追加します。:
AppsFlyerTracker.shared().isDebug = true
警告!
デバッグは開発段階に限定する必要があります。 デバッグを有効にしてアプリストアにアプリを配置しないでください。 主要なセキュリティとプライバシーのリスクをもたらします。
デバッグ出力の表示
デバッグ出力を表示するには、XCodeでデバッグ端末を開き、 "AppsFlyer"でフィルタします。

iOS SDKの一般的な問題
インストールとアプリ内イベントが追跡されない
インストールとアプリ内イベントが追跡されない理由はいくつかあります。:
アプリケーションIDを間違った形式で指定すると、インストールとイベントは追跡されません。 デリゲートファイルにアプリIDを設定するときは、それが数字だけで構成されていることを確認してください。 AppsFlyer 管理画面のアプリ設定でDevKeyを見つけることができます。:
正しいフォーマット::
[AppsFlyerTracker sharedTracker].appleAppID = @"340954503";
間違ったフォーマット::
[AppsFlyerTracker sharedTracker].appleAppID = @"id340954503";
間違ったフォーマット:
[AppsFlyerTracker sharedTracker].appleAppID = @"com.appslyer.sampleapp";
App IDのフォーマットが間違っている場合、ログに次のエラーが表示されます。:
[ERROR] AppsFlyer: -[AppsFlyerTracker validateAppID] AppsFlyer Error: appleAppID should be a number!
アカウントに存在しないアプリケーションIDを指定すると、インストールとイベントは追跡されません。 ログに次のエラーが表示されます。
AppsFlyer: -[AppsFlyerHTTPClient sendRequestEventToServer:isRequestFromCache:appID:isDebug:
completionHandler:]_block_invoke sent information to server, status = 404
The 404 エラーは、SDKがお客様のアカウントでアプリを見つけられないことを示しています。
If you specify an incorrect dev key ID, installs and events are not tracked. The log shows the following error:
AppsFlyer: -[AppsFlyerHTTPClient sendRequestEventToServer:isRequestFromCache:appID:isDebug:completionHandler:]
_block_invoke sent information to server, status = 400
400エラーは、SDKがインストールおよびアプリ内イベントを追跡する要求を認証できないことを示します。 DevKeyが正しいことを確認してください。 また、DevKeyが英数字のみであることを確認してください。
アプリIDとDevKeyが正しいのにインストールが追跡されない
状況
アプリに正しいアプリIDとDevKeyが含まれていますが、インストールが追跡されません。
考えられる原因
- SDKが正しく起動されていません。
applicationDidBecomeActive
でtrackAppLaunch
メソッドを呼び出すようにしてください。:
- (void)applicationDidBecomeActive:(UIApplication *)application { [[AppsFlyerTracker sharedTracker] trackAppLaunch]; }
func applicationDidBecomeActive(application: UIApplication) { AppsFlyerTracker.shared().trackAppLaunch() }
ログに「AppsFlyerのDevKeyがない、または空です」と表示される
状況
インストールとアプリ内イベントがログに表示されるようにしようとしていますが、 ログに「AppsFlyerのDevKeyがない、または空です」と表示される。
考えられる原因
DevKeyが設定されていません。appDelegateの didFinishLaunchingWithOptions
メソッドに設定をする必要があります。
[AppsFlyerTracker sharedTracker].appsFlyerDevKey = @"YOUR_DEV_KEY";
AppsFlyerTracker.shared().appsFlyerDevKey = "YOUR_DEV_KEY"
インストールが常にオーガニックとして表示される
状況
トラッキングリンクを使用して計測テストをしています。 SDKコンバージョンリスナーを実装しましたが、ログには常にインストールがオーガニックであることが表示されています。 さらに、ダッシュボードには非オーガニックインストールは記録されません。
考えられる原因
- 使用しているトラッキングリンクが正しくありません。 トラッキングリンクに関するガイドを参照してください。
- テスト対象のデバイスがホワイトリストに登録されていることを確認してください。
収益が適切に追跡されない
状況
アプリ内購入イベントをテストしています。 アプリ内イベントはダッシュボードに表示されますが、収益が表示されません。
考えられる原因
収益パラメータの形式が正しくありません。 収益額をフォーマットしないでください。 コンマ区切り記号、通貨記号、またはテキストは使用しないでください。 アプリ内購入イベントは、例えば1234.56にのようであるはずです。
インストールまたはアプリ内イベントトラッキングで404エラーが表示される
状況
インストールとアプリ内イベントが正しいメディアソースに紐づけられるかをテストしています。 けれども、404エラーがインストールイベントとアプリ内イベントの両方に表示され、ダッシュボードには表示されません。
考えられる原因
404エラーは、アプリIDが間違っていることを示します。 「インストールとイベントは追跡されない」を参照してください。
インストールまたはアプリ内イベントトラッキングで400エラーが表示される
状況
ログ内のアプリ内イベントをテストしようとしています。 イベントをトリガーすると、ログ内の400エラーが表示されます。
考えられる原因
これは、DevKeyの問題である可能性があるため、DevKeyが正しいことを確認してください。 また、DevKeyは英数字のみであることを確認してください。 「インストールとアプリ内イベントが追跡されない」を参照してください。