イベントの追跡


イベントの追跡

APIには、広告のライフサイクルイベントの追跡に必要なプロトコルメソッドの仕様に従って実装するためのデリゲートとして、AmazonAdViewDelegateおよびAmazonAdInterstitialプロトコルが含まれています。これらを使用すると、広告の現在の状態に基づいてアプリがアクションを実行できます。AmazonAdViewDelegateによりバナー広告のプロトコルメソッドが、AmazonAdInterstitialによりインタースティシャル広告のプロトコルメソッドが定義されます。

AmazonAdViewDelegate

モーダルビューのViewController

アプリのViewControllerは、このプロトコルメソッドを実装する必要があります。AmazonAdViewは、このメソッドを利用して、モーダルビュー(ユーザーが広告をタップしたときに表示されるアプリ内ブラウザビューなど)の表示/非表示にどのビューコントローラーが使用されているかを判断します。広告が正常に読み込まれるたびに呼び出されます。

- (UIViewController *)viewControllerForPresentingModalView

広告が読み込まれた

広告が正常に読み込まれるたびに、このコールバックが呼び出されます。このコールバックを利用して広告の表示回数に関する指標を記録し、初期統合に役立てることができます。

コールバック:

- (void)adViewDidLoad:(AmazonAdView *)view

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

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

コールバック:

- (void)adViewWillExpand:(AmazonAdView *)view

広告が折りたたまれた

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

コールバック:

- (void)adViewDidCollapse:(AmazonAdView *)view

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

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

コールバック:

- (void)adViewDidFailToLoad:(AmazonAdView *)view withError:(AmazonAdError *)error

AmazonAdInterstitialDelegate

インタースティシャル広告が読み込まれた

インタースティシャル広告が正常に読み込まれ、適切なタイミングで表示する準備が整った場合に呼び出されます。このコールバックを利用して広告の表示回数に関する指標を記録し、初期統合に役立てることができます。

コールバック:

- (void)interstitialDidLoad:(AmazonAdInterstitial *)interstitial

インタースティシャル広告の読み込みが失敗した

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

コールバック:

- (void)interstitialDidFailToLoad:(AmazonAdInterstitial *)interstitial withError:(AmazonAdError *)error

インタースティシャル広告を表示する

インタースティシャル広告が画面に表示される直前に呼び出されます。この時点で、すべてのアニメーション、タイマー、その他のユーザーのインタラクションを想定するアクティビティを一時停止し、アプリの状態を保存する必要があります。ユーザーはインタースティシャル広告内で、ホームボタンを押すか、iTunesなどの他のアプリへのリンクをタッチして、アプリから移動する場合があります。

コールバック:

- (void)interstitialWillPresent:(AmazonAdInterstitial *)interstitial

インタースティシャル広告が表示された

インタースティシャル広告が画面に表示されているときに呼び出されます。

コールバック:

- (void)interstitialDidPresent:(AmazonAdInterstitial *)interstitial

インタースティシャル広告を非表示にする

インタースティシャル広告が画面から非表示になる直前に呼び出されます。アプリ、およびインタースティシャル広告の表示に使用されたビューコントローラーが復元されます。この時点で、interstitialWillPresentで一時停止したすべてのフォアグラウンドアクティビティを再開する必要があります。

コールバック:

- (void)interstitialWillDismiss:(AmazonAdInterstitial *)interstitial

インタースティシャル広告が非表示になった

ユーザーがインタースティシャル広告を閉じて、広告が画面から消えた場合に呼び出されます。

コールバック:

- (void)interstitialDidDismiss:(AmazonAdInterstitial *)interstitial

エラー

広告の読み込みに失敗すると、-[AmazonAdViewDelegate adViewDidFailToLoad:withError:]および-[AmazonAdInterstitalDelegate interstitialDidFailToLoad:withError:]の両方から、エラーコードと説明的なレスポンスメッセージを含むAmazonAdErrorオブジェクトが返されます。Amazonモバイル広告APIには、再試行ロジックは組み込まれていません。エラーが発生した場合は、返されるエラーコードに基づいて、広告を再度読み込むかどうかを判断する必要があります。以下に、返される可能性があるエラーコードとその意味を示します。

  • AmazonAdErrorNetworkConnection ネットワーク接続に問題があり、広告リクエストが失敗しました。接続が回復したら再試行してください。
  • AmazonAdErrorNoFill 広告リクエストは正常に実行されましたが、使用可能な広告がありません。すぐに再試行しないでください。
  • AmazonAdErrorInternalServer サーバー側にエラーがあり、広告リクエストが失敗しました。再試行してください。ただし、再試行回数を制限する必要があります。
  • AmazonAdErrorRequest 広告リクエストパラメーターに問題があります。再試行しないでください。エラーメッセージを確認し、それに応じてアプリを更新してください。

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

エラーコード エラーメッセージの例 説明
AmazonAdErrorNetworkConnection インターネット接続がオフラインになっています。 ネットワーク接続を使用できません。再試行してください。
AmazonAdErrorNoFill SDKメッセージ: 広告が見つかりません。 サーバーから広告が返されませんでした。
AmazonAdErrorInternalServer 構成を読み込むことができませんでした。 広告を読み込む前に構成が読み込まれていません。再試行してください。
AmazonAdErrorInternalServer サーバーメッセージ: DISABLED_APP サーバーが広告リクエストを拒否しました。このアプリに初めて広告を統合したのが最近である場合は、登録情報が処理されるまでにもう少し時間がかかる可能性があります。
AmazonAdErrorInternalServer サーバーメッセージ: INVALID_APPID アプリキーが認識されていません。Amazonからアプリキーを受け取り、そのキーを正しく構成していることを確認してください(クイックスタートガイドの手順3を参照)。
AmazonAdErrorRequest サーバーメッセージ: 無効なインタースティシャルリクエストが送信されました。 広告の読み込みに使用された "AmazonAdOptions" の値が正しく設定されていることを確認し、再試行してください。