コンパニオン広告のサポートを追加

プラットフォームを選択: HTML5 Android iOS

このガイドは、Android IMA 実装にコンパニオン広告を追加することに関心のあるパブリッシャー様を対象としています。

前提条件

  • IMA SDK が統合された Android アプリケーション。SDK が統合されたアプリをまだお持ちでない場合は、BasicExample をご覧ください。アプリに IMA SDK を実装するうえでサポートが必要な場合は、IMA SDK を設定するをご覧ください。
  • コンパニオン広告を返すように設定された広告タグ。サンプルが必要な場合は、よくある質問をご覧ください。

アプリにコンパニオン広告を追加する

コンパニオン広告スロットを追加して、アプリにコンパニオン広告を表示する手順は次のとおりです。

コンパニオンを表示する ViewGroup を作成する

コンパニオンをリクエストする前に、レイアウトにコンパニオン用のスペースを作成する必要があります。レイアウト XML に ViewGroup 要素を追加します。この例では LinearLayout を使用しています。後のステップで、この要素への参照を AdDisplayContainer に渡します。

BasicExample アプリに統合する場合は、videoPlayerContainer の下の activity_my.xml ファイルにこのコードを追加します。

activity_my.xml

<LinearLayout
  android:id="@+id/companionAdSlot"
  android:layout_width="match_parent"
  android:layout_height="250dp"
  android:layout_gravity="center_horizontal"
  android:gravity="center"
  android:orientation="vertical"
  android:textAlignment="center" />

CompanionAdSlot を作成する

次のステップでは、CompanionAdSlot オブジェクトをビルドし、ArrayList<CompanionAdSlot> インスタンスに追加します。AdDisplayContainer インターフェースはコンパニオン広告スロットのリストを受け取るため、複数のコンパニオン広告を一度に表示できます。CompanionAdSlot オブジェクトを作成するには、ImaSdkFactory クラスのインスタンスを作成する必要があります。

ImaSdkFactory sdkFactory = ImaSdkFactory.getInstance();
ViewGroup companionViewGroup = (ViewGroup) findViewById(R.id.companionAdSlot);

CompanionAdSlot companionAdSlot = sdkFactory.createCompanionAdSlot();
companionAdSlot.setContainer(companionViewGroup);
companionAdSlot.setSize(300, 250);
ArrayList<CompanionAdSlot> companionAdSlots = new ArrayList<CompanionAdSlot>();
companionAdSlots.add(companionAdSlot);

アプリで表示するコンパニオンのサイズごとにコンパニオン広告スロットを作成します。IMA SDK は、ビューの高さと幅に一致するディメンションを持つ VAST レスポンスのコンパニオンをコンパニオン広告スロットに挿入します。IMA SDK は、Fluid サイズのコンパニオンの使用にも対応しています。companionAdSlots を作成したら、AdsLoader に追加します。次の例は、Exoplayer-IMA 拡張機能を使用しているか、拡張機能を使用しない他の IMA 実装を使用しているかに応じて、この処理を行う方法を示しています。

Exoplayer-IMA 拡張機能

adsLoader = new ImaAdsLoader.Builder(this).setCompanionAdSlots(companionAdSlots).build();

その他の実装

adsLoader.getAdDisplayContainer().setCompanionSlots(companionAdSlots);

これで操作は完了です。これで、コンパニオン広告がアプリに表示されるようになります。

Fluid コンパニオン広告を表示する

IMA は、Fluid サイズのコンパニオン広告に対応しています。コンパニオン広告は、広告スロットのサイズに合わせてサイズ変更できます。親ビューの幅いっぱいに広がり、コンパニオンのコンテンツに合わせて高さが調整されます。コンパニオンのサイズは、アド マネージャーの Fluid で設定します。この値を設定する場所については、次の図をご覧ください。

アド マネージャーのコンパニオン広告の設定を示す画像。コンパニオンのサイズ オプションがハイライト表示されています。

流動的なコンパニオンのための Android アプリの更新

CompanionAdSlot.setSize() メソッドを更新して、両方のパラメータとして CompanionAdSlot.FLUID_SIZE を受け取るようにすることで、流動的なコンパニオン スロットを宣言できます。

ImaSdkFactory sdkFactory = ImaSdkFactory.getInstance();
ViewGroup companionViewGroup = (ViewGroup) findViewById(R.id.companionAdSlot);

CompanionAdSlot companionAdSlot = sdkFactory.createCompanionAdSlot();
companionAdSlot.setContainer(companionViewGroup);
companionAdSlot.setSize(CompanionAdSlot.FLUID_SIZE, CompanionAdSlot.FLUID_SIZE);
ArrayList<CompanionAdSlot> companionAdSlots = new ArrayList<CompanionAdSlot>();
companionAdSlots.add(companionAdSlot);

よくある質問

ガイドに沿って設定しましたが、コンパニオン広告が表示されません。必要な対策
まず、タグがコンパニオンを返していることを確認します。これを行うには、ウェブブラウザでタグを開き、<CompanionAds> タグを探します。このエラーが表示された場合は、返されるコンパニオンのサイズが、CompanionAdSlot オブジェクトに渡しているサイズと同じであることを確認してください。
このガイドに沿ってコンパニオン広告スロットを作成すると、どのような表示になりますか?

次の画像は BasicExample から作成されたもので、コンテンツ動画が上に再生され、コンパニオン広告が下に表示されています。

IMA Android コンパニオン広告の例の画像。