Audience Networkの実装をテストする

モバイルウェブサイトやアプリにFacebook Audience Networkを統合するときは、展開前に物理デバイスで実際の広告を使用して実装をテストする必要があります。統合する際は、最新のAudience Network SDKを使用して、最新の不具合の修正と改善点を反映させてください。以降のセクションでは、アプリやモバイルウェブサイトでAudience Network広告の統合をテストする手順を詳しく説明します。

ステップ1:実際の広告を使用してテストする

ステップ2:実際の広告リクエストのエラーコードをチェックする

ステップ3: Audience Networkリクエストデバッガーを使用して広告リクエストを診断する

ステップ4:テスト広告を使用してテストする

ステップ5: Audience Network広告の統合のチェックリスト

テストデバイスを使用する

ステップ1:実際の広告を使用してテストする

実際の広告を使用したテストは2段階の手順で行います。まず、ビジネス設定ページにテスターを追加し、アプリの承認前でも実際の広告が表示されるように設定します。次に、割り当てられたテスターがFacebookにログインして、アプリやモバイルウェブサイトを操作します。

アプリにテスターを追加する

テストを実施する人を何らかの役割でFacebookに追加すれば、アプリやモバイルウェブサイトを物理デバイスで実際の広告を使用してテストできます。アプリにテスターを追加する場合は、次の方法をおすすめします。

  1. [ビジネス設定]に移動します。
  2. 左にある[ユーザー]タブで[+追加]をクリックします。
  3. ビジネスマネージャのアカウントに追加するテスターのメールアドレスを入力します。ここには複数の人を入力できます。
  4. テスターに役割を割り当てることも、[スキップ]をクリックしてビジネスマネージャのアカウントへの追加のみを実行することもできます。

メディエーション層を使用する場合は、メディエーション層からAudience Networkにリクエストが送信されることを確認してください。メディエーション層でのテストを有効にしている場合は、Facebookのサーバーにはリクエストが送信されません。

モバイルアプリをテストする

  1. 適切な配信方法を利用してテスターのデバイスにアプリを配信し、テスターがビジネスマネージャの設定ページに追加されていることを確認します。
  2. 追加した各テスターは、自分のデバイスにFacebookアプリをインストールし、テスターの役割に追加されたFacebookユーザーIDを使用してアプリにログインする必要があります。Facebookがテスターをあなたのビジネス内の人として認識し、広告を返すようにするには、このログイン処理が必須です。
  3. これで、テスターがアプリを起動し、テストする広告配置をトリガーできるようになりました。実際の広告が表示されることを確認します。

広告の配置のテストの際には、Facebookがリクエストの20%に対して意図的に広告を表示しません。それにより、広告が掲載されないケースをアプリやモバイルサイトがどのように処理するのかをテストできます。

Testflightを使用してアプリを配信、テストする場合、テストビルドには実際の広告は表示されません。その場合は、テストを以下のように設定して、Audience Networkから広告を取得する必要があります。 Testflightで配信されるアプリが広告主ID (IDFA)をリクエストすると、取得するIDFAは毎回変わります。 通常、IDFAは利用者が手動でリセットしない限り機器ごとに固定されますが、 TestflightビルドがオペレーティングシステムからのIDFAをリクエストする際に取得するのは実際のIDFAではなく、アプリからリクエストがある度に変化するダミーのIDFAになります。

この問題を解決するには、テストモードをオンにして、テスト広告を表示するようにします。



ステップ2:実際の広告リクエストのエラーコードをチェックする

Facebook Audience Networkの実装のテスト時には、リクエストを行ったときにいずれかのエラーコードが表示されることがあります。エラーコードには次のようなものがあります。

1000 - Network Error

サーバーレスポンス SDKドキュメント

Code=1000 “Network Error"

  • Error 1000 - Network Error。Audience Network SDKがfacebook.com (http://facebook.com/)に接続できませんでした
  • ネットワークが接続できるまで、アプリケーションから別のリクエストを行ってください。接続が再確立される、またはタイムアウトとして認識されるまで、インクリメンタルリクエストを実行することをおすすめします。

1001 - No Fill

テスト時によく見られるエラーであり、"No Fill"レスポンスに関連するものです。ユーザーがモバイルアプリのテスト時にFacebookアプリにログインしていない、またはモバイルウェブサイトのテスト時にFacebookモバイルウェブサイトにログインしていないことが、最もよくある原因です。

サーバーレスポンス SDKドキュメント

Code=1001 “No Fill”

  • Error 1001 - No Fill。次のいずれかの原因が考えられます。
  • ユーザーがモバイルデバイスでネイティブFacebookアプリにログインしていない
  • [追跡型広告を制限]がオンになっている(iOS)
  • [インタレストベース広告を表示しない]がオンになっている(Android)
  • 現在のユーザーに広告インベントリが設定されていない
  • テストを行うデバイスにはネイティブFacebookアプリケーションをインストールする必要があります。
  • 30秒後に、アプリケーションから別のリクエストを行ってください。

1002 - Ad Load Too Frequently

サーバーレスポンス SDKドキュメント

Code=1002 “Load Too Frequently”

  • 広告リクエストは次を組み合わせたものに基づいて行われます。
  • デバイスID
  • 配置ID
  • 表示フォーマット(バナー、インタースティシャル、ネイティブ)
  • 30分後に、アプリケーションから別のリクエストを行ってください。[再読込頻度]や[リクエスト頻度]も調整してみてください。

1011 - Display Format Mismatch

サーバーレスポンス SDKドキュメント

Code=1011 “Display Format Mismatch”

  • Error 1011 - Display Format Mismatch。原因:
  • 広告リクエストの表示フォーマットがこの配置に指定された表示フォーマットと一致しない。
  • 各配置は、1つの表示フォーマットでのみ使用できます。
  • 複数の配置を作成することで、さまざまな表示フォーマットを使用できます。

1203 - Not An App Admin, Developer or Tester

サーバーレスポンス SDKドキュメント

Code=1203 “Not An App Admin, Developer or Tester”

  • バンドルからの初回のリクエストは、アプリの管理者、開発者、テスターのいずれかから行う必要があります。

2000 - Server Error

サーバーレスポンス SDKドキュメント

Code=2000 “Server Error"

  • Error 2000 - Server Error。考えられる原因:
  • 配置IDが無効 - 配置とタイプは一意のIDを持ちます
  • サポートされていないSDKまたは古いバージョンのSDKを使用している。最新バージョンをダウンロードするか、Cocoa Podsを使用している場合はPodをアップデートしてください
  • loadAdメソッドの呼び出し/使用方法が不適切。loadAdおよび関連するメソッド/コールバックにはブレークポイントを設定することをおすすめします。
  • 30秒後に、アプリケーションから別のリクエストを行ってください。

2001 - Internal Error

サーバーレスポンス SDKドキュメント

Code=2001 “Internal Error”

  • Error 2001 - Internal Error。Audience Network SDKがfacebook.comからのレスポンスを処理できませんでした。
  • 30秒後に、アプリケーションから別のリクエストを行ってください。
  • この問題が続けて発生する場合は、バグレポートをFacebookにお送りください。


ステップ3: Audience Networkリクエストデバッガーを使用して広告リクエストを診断する

アプリでの配置を実装したら、Audience Network Requests Debuggerツールを使用して、アプリからのリクエストがFacebookに届いていることを確認できます。

  1. 収益化マネージャに移動します。
  2. [プロパティを管理]をクリックします。
  3. 右上の[プロパティ設定] > [リクエストデバッガー]の順にクリックします。
  4. [利用開始]をクリックして、アプリまたはウェブサイトからのリクエストをモニタリングします。

iOSやAndroidの実際のテストデバイスで、アプリを開いてAudience Network広告配置をトリガーします。広告リクエストがツールに表示されます。リクエストが正しい配置ID、バンドルパッケージ名などで送信されていることを確認します。

このリクエストを行うには物理的デバイスが必要であり、iOSシミュレーターやAndroidエミュレーターでは動作しません。

ツールがモニタリングするには、そのテストデバイスでFacebookアプリにログインしている必要があります。

ツールに広告リクエストが表示されない場合は、Facebookが想定どおりにリクエストを受け取っていないことを意味します。デバッグするには、以下の項目を確認してください。

  1. シミュレーター/エミュレーターではなく、物理的デバイスを使用している
  2. テストデバイスにFacebookアプリがインストールされている
  3. テスターがテストデバイス上でFacebookにログインしており、ビジネス内で役割を割り当てられている
  4. メディエーションを使用する場合は、メディエーション層がリクエストをFacebook Audience Networkに送信していることを確認してください


ステップ4:テスト広告を使用してテストする

アプリをテストするユーザーがアプリのビジネスマネージャの役割に追加されていることを確認してください。実機で実際の広告を表示できるので、テストにはこの方法を使用することをおすすめします。おすすめのテスト方法に関する詳細については、「実際の広告を使用してテストする」をご覧ください。

ただし、前のセクションで述べたように、アプリのUIビューで実際の広告のUIをテストできない場合もあります。さらに、アプリから受信する広告が画像広告、動画広告、カルーセル広告のどれになるかは保証できません。実際の広告をリクエストしても、広告のコンテンツとフォーマットが必ず返されるかどうかは保証されません。縦向き動画のコンテンツを含む広告を使用して、アプリのUIビューで正しく表示されることをテストする場合はどうすればよいでしょうか。

テスト広告をリクエストするには、任意のFacebook広告オブジェクトを初期化する際に、次のテスト広告タイプの文字列を使用して配置IDを「#」と結び付けます。テスト広告のリクエストで使用する配置IDテンプレートはTEST_AD_TYPE#YOUR_PLACEMENT_IDです。

このテストコードを使うとテスト広告しか表示されないため、アプリをこの状態で公開しないようにしてください。代わりに、DEBUGまたはTESTINGといったプリプロセッサマクロの後に#ifdefを使用して、テストビルドとリリースビルドを区別するようにしてください。

テスト広告タイプの表

テスト広告タイプ 説明 サポートされている広告形式

VID_HD_16_9_46S_APP_INSTALL

16x9のHD動画を使用した46秒の広告。アプリインストールのCTAオプション付き。

インタースティシャル、リワード動画、ネイティブ

VID_HD_16_9_46S_LINK

16x9のHD動画を使用した46秒の広告。リンクのCTAオプション付き。

インタースティシャル、リワード動画、ネイティブ

VID_HD_16_9_15S_APP_INSTALL

16x9のHD動画を使用した15秒の広告。アプリインストールのCTAオプション付き。

インタースティシャル、リワード動画、ネイティブ

VID_HD_16_9_15S_LINK

16x9のHD動画を使用した15秒の広告。リンクのCTAオプション付き。

インタースティシャル、リワード動画、ネイティブ

VID_HD_9_16_39S_APP_INSTALL

9x16のHD動画を使用した39秒の広告。アプリインストールのCTAオプション付き。

インタースティシャル、リワード動画、ネイティブ

VID_HD_9_16_39S_LINK

9x16のHD動画を使用した39秒の広告。リンクのCTAオプション付き。

インタースティシャル、リワード動画、ネイティブ

IMG_16_9_APP_INSTALL

16x9の画像広告。アプリインストールのCTAオプション付き。

バナー、インタースティシャル、ネイティブ

IMG_16_9_LINK

16x9の画像広告。リンクのCTAオプション付き。

バナー、インタースティシャル、ネイティブ

CAROUSEL_IMG_SQUARE_APP_INSTALL

正方形の画像を使ったカルーセル広告。アプリインストールのCTAオプション付き。

インタースティシャル、ネイティブ

CAROUSEL_IMG_SQUARE_LINK

正方形の画像を使ったカルーセル広告。リンクのCTAオプション付き。

インタースティシャル、ネイティブ

テスト広告タイプを使用して広告の配置をテストする際は、サポートされている広告形式に注意してください。例えば、リワード動画インスタンスを作成してIMG_16_9_APP_INSTALLのテスト広告タイプの広告をリクエストすると、エラーが返されます。

iOSデバイスのテスト広告をコードでリクエストする例

例えば、iOSアプリで、アスペクト比9:16の動画のテスト広告と、アプリインストールのCTAボタンをリクエストするには、次のコード行を追加してFBNativeAdオブジェクトを初期化する必要があります。

[FBNativeAd *nativeAd = [[FBNativeAd alloc] initWithPlacementID:@"VID_HD_9_16_39S_APP_INSTALL#YOUR_PLACEMENT_ID"];

上述のコードを実行して、Audience Network SDKのサンプルフォルダのNativeAdSampleプロジェクトのテスト広告をリクエストできます。

ランダムなコンテンツフォーマットでテスト広告をリクエストする必要がある場合は、Android物理デバイスでテストするときに、Logcatに次のようなメッセージが出力されます。

#ifdef DEBUG
[FBAdSettings setLogLevel:FBAdLogLevelLog];
[FBAdSettings addTestDevice:@"HASHED_ID"];
#endif

次のログメッセージが表示されます。

[FBAudienceNetworkLog/FBAdSettings:94] 
When testing your app with Facebook ad units,  
you must specify the device hashed ID to ensure the delivery of test ads, 
add the following code before loading an ad: `[FBAdSettings addTestDevice:@"HASHED_ID"]`
Test mode device hash: bd675f960298a92003630d76fa612b1706b745ab

HASHED_IDを上述のログに出力されたテストモードデバイスハッシュに置き換えます。

テストを終えたら、次のコード行を使用してテストデバイスの設定をクリアします。

[FBAdSettings clearTestDevice:[FBAdSettings testDeviceHash]]; 

Androidデバイスのテスト広告をコードでリクエストする例

Androidアプリで、アスペクト比9:16の動画のテスト広告と、アプリインストールのCTAボタンをリクエストするには、次のコード行を追加してNativeAdオブジェクトを初期化する必要があります。

nativeAd = new NativeAd(this, "VID_HD_9_16_39S_APP_INSTALL#YOUR_PLACEMENT_ID");

ランダムなコンテンツフォーマットでテスト広告をリクエストする必要がある場合、Android物理デバイスをテストするときに、Logcatに次のようなメッセージが出力されます。

ログ:テストモードデバイスハッシュ: HASHED_ID Log:デバイスのハッシュ化IDを指定する必要があるFacebookの広告ユニットを使用してアプリをテストするときは、広告を読み込む前に次のコードを追加します: AdSettings.addTestDevice("HASHED ID");

広告を読み込む前に次のコード行を追加することで、デバイスにテスト広告を掲載できます:

AdSettings.addTestDevice("HASHED ID");

複数のテストデバイスを追加する場合は、広告の読み込みの前に追加する文字列のリストを作成します:

List<String> testDevices = new ArrayList<>();
testDevices.add("HASHED_ID_1");
testDevices.add("HASHED_ID_2");
AdSettings.addTestDevices(testDevices);

テストを終えたら、次のコード行を使用してテストデバイスの設定をクリアします。

AdSettings.clearTestDevices();

メディエーションダッシュボードでテスト広告をリクエストする例

コードからテスト広告をリクエストする以外に、アプリでメディエーションを使用する場合は、メディエーションダッシュボードからテスト広告タイプとともに配置ID値を設定できます。例えば、アプリでMoPubを使用する場合は、Facebookネットワークを編集して、ネイティブ広告の配置ID値をVID_HD_9_16_39S_APP_INSTALL#YOUR_PLACEMENT_IDに設定できます。アプリは9:16アスペクト比の動画のテスト広告とアプリインストールのCTAボタンを受け取ります。



ステップ5: Audience Network広告の統合のチェックリスト

  1. テストデバイスにFacebookアプリをインストールしてログインします。
  2. Audience Network広告をテストするユーザーを、ビジネスマネージャのアカウントに追加します。
  3. 広告インスタンスの初期化には、ビジネスマネージャで作成した配置IDを使用します。スタートガイドのステップをご覧ください。
  4. Audience Networkの実際の広告が、アプリにより正しくリクエストされたかどうかを確認します。診断には、Audience NetworkのエラーコードAudience Networkリクエストデバッガーを使用します。
  5. 広告全体がアプリのユーザーに適切に表示されていることをチェックします。
  6. 広告のテストに従って、広告の統合によるエクスペリエンスをチェックします。アプリストアに公開する前に、テスト広告のコードスニペットを必ず削除してください。削除されていないと、実際のアプリでテスト広告のみが表示されます。

テストデバイスを使用する

チームで専用のテストデバイスを使用してAudience Networkの統合をテストする場合は、テスト工程で役に立つテストデバイスの機能があります。この機能を使用するには、次のようにします。

  1. ビジネスマネージャに管理者としてログインしていることを確認します。
  2. 収益化マネージャの[ビジネスの概要]ページに移動します。
  3. 右上にある[収益化設定]ドロップダウンメニューをクリックします。
  4. [test device settings]をクリックしてテストデバイスの設定ページに移動します。

次のページが表示されます。

このページでは、デバイスのリストをテストデバイスグループに追加して、それらのデバイスの設定を行うことができます。次の2つのオプションがあります。

  • Testing enabled:このオプションを使用すると、テストデバイスグループが有効になります。このボタンをオフにすると、テストデバイスの設定全体が無効になり、テストデバイスは広告システムで通常ユーザーのデバイスとして扱われます。
  • Use real advertiser content:このオプションを使用すると、テスト中のテストデバイスに実際のAudience Network広告が表示されますが、インプレッションやクリックから収益は発生しません。Facebookシステムによってさまざまな広告素材タイプ(動画、画像、カルーセル)やロケールが異なる広告のリストがサンプリングされるため、実際の広告が統合でどのように表示されるかを確認できます。

テストデバイスリストにデバイスを追加するには、デバイスを手動で入力するか、CSV形式のテンプレートに従って複数のデバイスを同時にアップロードします。

テストデバイスに使用するIDは、Identifier for Advertising (IDFA) for iOS devicesおよびGoogle Advertising ID (AAID) for Android devicesです。デバイス名は、自分が参照するために使います。自分のモバイルデバイスのIDを見つけるには、次のような方法があります。

  • Google PlayストアまたはApp Storeで検索したAAIDまたはIDFAを表示するユーティリティを使用します。
  • このAPIを使用して、プログラム的にAndroidまたはiOSのこれらのIDを取得します。
  • ほとんどのAndroidでは、Settings -> Google -> AdsにアクセスするとAAIDが表示されます。

デバイスをリストに追加し、テストデバイスリストのテストを有効にした後で、テストデバイスから広告リクエストを送信すると、対応するテスト広告が返され、統合テストを行いやすくなります。