イベントの追跡とエラー


イベントの追跡とエラー

このページの内容は、以下のとおりです。

イベントの追跡

アプリ起動の追跡の詳細については、アプリダウンロードコンバージョンを参照してください。

APIには、広告のライフサイクルイベントを追跡できるAdListenerインターフェイスが含まれています。このリスナーを使用すると、Amazon広告ビューの現在の状態に基づいてアクションを実行できます。以下の例は、AdLayoutAdListenerインスタンスを割り当てる方法を示しています。

例:

AdLayout adLayout = new AdLayout();
adLayout.setListener(myAdListener);

重要: リスナーのイベントはメインUIスレッドの一部です。したがって、時間のかかるタスクはすべてAsyncTaskで実行してください。

AdListenerインターフェイスの一部のイベントは、特定の広告タイプには適用されません。このインターフェイスを実装する代わりに、組み込みのDefaultAdListenerを拡張して独自のカスタムリスナーを作成し、必要なコールバックのみをオーバーライドすることを推奨します。DefaultAdListenerを拡張するカスタムリスナーの作成および使用方法を示す例については、インタースティシャル広告のサンプルなどのサンプルアプリを参照してください。AdListenerを実装するよりもDefaultAdListenerを拡張することが推奨される主な理由の1つは、将来、AdListenerに新しいコールバックが追加された場合にコードを修正する必要がないことです。

広告が読み込まれた

このコールバックは、広告が正常に読み込まれるたびに呼び出されます。このコールバックを利用して広告の表示回数に関する指標を記録し、初期統合に役立てることができます。読み込まれた広告の詳細情報は、AdPropertiesオブジェクトから取得できます。

イベント:

public interface AdListener
{
    ...

    public void onAdLoaded(Ad ad, AdProperties adProperties);
}

広告がエクスパンドされた

ユーザーがリッチメディア広告をクリックし、そのリッチメディア広告がエクスパンドすると、このコールバックが呼び出されます。このコールバックを使用すると、広告がエクスパンドしたときに、アプリやオーディオを一時停止するなどの処理を実行できます。

注: このコールバックは、全画面のインタースティシャル広告には適用されません。

イベント:

public interface AdListener
{
    ...  

    public void onAdExpanded(Ad ad);
}

広告が折りたたまれた

エクスパンドされたリッチメディア広告の閉じるボタンをユーザーがクリックし、その広告が折りたたまれた直後に、このコールバックが呼び出されます。このコールバックを使用すると、アプリやオーディオの再生の再開などの処理を実行できます。

注: このコールバックは、全画面のインタースティシャル広告には適用されません。

イベント:

public interface AdListener
{
    ...

    public void onAdCollapsed(Ad ad);
}

広告の読み込みが失敗した

広告の取得に失敗した場合は必ず、AdListener.onAdFailedToLoadイベントが呼び出され、エラーコードとエラーメッセージを含むAdErrorオブジェクトが返されます。広告が失敗する理由は数多くありますが、一時的なエラーと一時的でないエラーに分類できます。一時的なエラーの場合は、再試行アルゴリズムに基づいて、または条件が変化した(ネットワークが使用可能になったなど)ときに、広告を読み込むための呼び出しを再度実行する必要があります。一時的でないエラーの場合は、エラーのログを記録し、アプリが広告を正常に取得できなかった理由を調べる必要があります。

イベント:

public interface AdListener
{
    ...  

    public void onAdFailedToLoad(Ad ad, AdError error);
}

広告が非表示になった

インタースティシャル広告の閉じるボタンをユーザーがクリックし、その広告が終了した直後に、このコールバックが呼び出されます。このコールバックを使用すると、アプリやオーディオの再生を再開したり、新しいアクティビティを開いたりするなどの処理を実行できます。

注: このコールバックは、バナー広告には適用されません。

イベント:

public interface AdListener
{
    ...

    public void onAdDismissed(Ad ad);
}

エラー

広告の読み込みに失敗すると、AdListener.onAdFailedToLoadイベントから、エラーコードと説明的なレスポンスメッセージを含むAdErrorオブジェクトが返されます。Amazonモバイル広告APIには、再試行ロジックは組み込まれていません。エラーが発生した場合は、返されたエラーコードに基づいて、AdLayout.loadAdを再度呼び出すかどうかを判断する必要があります。以下に、返される可能性があるエラーコードとその意味を示します。

  • NETWORK_ERROR ネットワーク接続に問題があり、広告リクエストが失敗しました。接続が回復したら再試行してください。
  • NETWORK_TIMEOUT 必要なデータをすべて取得する前に、広告サーバーとの接続がタイムアウトしました。再試行してください。
  • NO_FILL 広告リクエストは正常に実行されましたが、広告を使用できませんでした。すぐに再試行しないでください。
  • INTERNAL_ERROR サーバー側にエラーがあり、広告リクエストが失敗しました。再試行してください。ただし、再試行回数を制限する必要があります。
  • REQUEST_ERROR 広告リクエストパラメーターに問題があります。再試行しないでください。エラーメッセージを確認し、それに応じてアプリを更新してください。

具体的なエラーメッセージの説明については、以下の表を参照してください。

エラーコードエラーメッセージの例説明
NETWORK_ERROR広告サーバーからデータを読み取る際にネットワークエラーが発生しました。サービスを一時的に使用できません。再試行してください。
NETWORK_ERROR不明なエラーが発生しました。ネットワーク接続を使用できません。再試行してください。
NETWORK_TIMEOUT広告サーバーとの接続がタイムアウトしました。アプリが、適切な時間内にサーバーから完全なレスポンスを取得できませんでした。再試行してください。
NO_FILLSDKメッセージ:結果なし。X秒後に再試行してください。次のX秒間は広告を使用できません。
NO_FILLサーバーメッセージ:結果なし。このリクエストに対する広告がサーバーにありませんでした。
NO_FILLサーバーメッセージ:結果なし。X秒後に再試行してください。このリクエストに対する広告がサーバーにありませんでした。次のX秒間は、これ以降の呼び出しが結果なしで即座に返されます。
INTERNAL_ERROR有効なクリエイティブタイプが見つかりません。返された広告にクリエイティブタイプ属性が設定されていません。再試行してください。
INTERNAL_ERRORSDKメッセージ: DISABLED_APP広告リクエストが拒否されました。このアプリに初めて広告を統合したのが最近である場合は、登録情報が処理されるまでにもう少し時間がかかる可能性があります。
INTERNAL_ERRORサーバーメッセージ: DISABLED_APPサーバーが広告リクエストを拒否しました。このアプリに初めて広告を統合したのが最近である場合は、登録情報が処理されるまでにもう少し時間がかかる可能性があります。
INTERNAL_ERRORサーバーメッセージ: INVALID_APPIDアプリキーが認識されていません。Amazonからアプリキーを受け取り、そのキーを正しく構成していることを確認してください([クイックスタートガイドの手順3][mobile-ads/mb-quick-start] を参照)。
INTERNAL_ERROR広告サーバーからのレスポンスをパースできません。返された広告が無効でした。再試行してください。
REQUEST_ERROR"com.amazon.device.ads.AdActivity"がアクティビティとしてAndroidManifest.xmlで正しく宣言されていない場合は、広告を読み込むことができません。詳しくは、オンラインマニュアルを参照してください。アプリのAndroidManifest.xmlファイルへのAdActivityの追加について詳しくは、[クイックスタードガイドの手順2][mobile-ads/mb-quick-start] を参照してください。
REQUEST_ERROR広告の自動サイズ設定パラメーターが無効であるため、広告リクエストが失敗しました。広告ビューが小さすぎるため、サイズが自動設定される広告を現在のデバイスで受信できません。適切なサイズの広告ビューの作成に関するガイドラインについては、[広告の自動サイズ設定][mobile-ads/mb-overview] セクションを参照してください。
REQUEST_ERRORレイアウトパラメーターが空白であるため、広告を読み込むことができません。setLayoutParams()を使用して、このAdLayoutの寸法を指定してください。AdLayoutが画面外のメモリ内に作成されている場合は、広告を読み込む前に必ず、AdLayoutの幅および高さのレイアウトパラメーターを設定してください。
REQUEST_ERRORビューサイズを決定できないため、広告を読み込むことができません。広告ビューが、広告ビューによる広告の読み込み方法と互換性のない方法で設定されています。広告を画面外に読み込む場合は、表示可能なビュー階層への追加が完了してからAdLayoutに親ビューが設定されるようにしてください。広告の自動サイズ設定を使用している場合は、代わりに、サイズの手動設定が必要になることがあります。