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

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

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

前提条件

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

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

手順に沿って、コンパニオン広告スロットを追加し、アプリにコンパニオン広告を表示します。

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

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

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

<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 クラスのインスタンスを作成する必要があります。

public void createCompanionAdSlot(ViewGroup companionViewGroup) {
  ImaSdkFactory sdkFactory = ImaSdkFactory.getInstance();
  CompanionAdSlot companionAdSlot = sdkFactory.createCompanionAdSlot(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 拡張機能

public void setCompanionAdSlotExoPlayer(
    Context context, ArrayList<CompanionAdSlot> companionAdSlots) {
  ImaAdsLoader adsLoader =
      new ImaAdsLoader.Builder(context).setCompanionAdSlots(companionAdSlots).build();
}

その他の実装

public void setCompanionAdSlot(
    AdDisplayContainer adDisplayContainer, ArrayList<CompanionAdSlot> companionAdSlots) {
  adDisplayContainer.setCompanionSlots(companionAdSlots);
}

これで完了です。アプリケーションにコンパニオン広告が表示されるようになりました。

Fluid サイズのコンパニオン広告を表示する

IMA は Fluid サイズのコンパニオン広告をサポートしています。これらのコンパニオン広告は、 広告スロットのサイズに合わせてサイズを変更できます。親ビューの幅の 100% を埋め、 コンパニオンのコンテンツに合わせて高さを調整します。これらは、アド マネージャーで Fluid コンパニオン サイズを使用して設定します。この値を設定する場所については、次の画像をご覧ください。

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

Fluid サイズのコンパニオンに対応するように Android アプリを更新する

CompanionAdSlot.setSize() メソッドを更新して、両方のパラメータに CompanionAdSlot.FLUID_SIZE を指定することで、Fluid サイズのコンパニオン スロットを宣言できます。

companionAdSlot.setSize(CompanionAdSlot.FLUID_SIZE, CompanionAdSlot.FLUID_SIZE);

よくある質問

ガイドに沿って操作しましたが、コンパニオン広告が表示されません。どうすればよいですか?
まず、タグが実際にコンパニオンを返していることを確認します。これを行うには、ウェブブラウザでタグを開き、<CompanionAds> タグを探します。このタグが表示されたら、返されるコンパニオンのサイズが、CompanionAdSlotオブジェクトに渡すディメンションと同じサイズであることを確認します。
このガイドに沿って操作した場合、コンパニオン広告スロットはどのように表示されますか?

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

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