コンパニオン広告

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

前提条件

  • IMA SDK が統合された Android アプリSDK が統合されたアプリがまだない場合は、BasicExample をご覧ください。
  • コンパニオン広告を返すように設定された広告タグ。

参考情報

それでも IMA SDK をアプリに実装する必要がある場合は、スタートガイドをご覧ください。

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

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

コンパニオンをリクエストする前に、レイアウト内にコンパニオンのスペースを作成する必要があります。レイアウト XML に ViewGroup 要素を追加します。この例では LinearLayout を使用しています。後のステップで、この要素への参照を AdDisplayContainer に渡します。 BasicExample アプリに統合する場合は、com.google.android.exoplayer2.ui.PlayerView の下の 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);

アプリに表示するコンパニオンのサイズごとに、コンパニオン広告スロットを作成します。 ビューの高さと幅に一致するサイズを持つ VAST レスポンスのコンパニオンが、IMA SDK によってコンパニオン広告スロットに挿入されます。IMA SDK は、Fluid サイズ コンパニオンの使用もサポートしています。companionAdSlots を作成したら、それらを AdsLoader に追加する必要があります。次の例は、Exoplayer-IMA 拡張機能を使用する IMA Android BasicExample と、拡張機能を使用しない他の IMA 実装のどちらを使用するかに応じて、これを行う方法を示しています。

BasicExample

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

その他の実装

adsLoader.getAdDisplayContainer().setCompanionSlots(companionAdSlots);

これですべての設定が完了し、アプリにコンパニオン広告が表示されます。

流動的なコンパニオン広告の表示

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

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

Fluid コンパニオンの Android アプリを更新する

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

  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 コンパニオン広告のサンプル画像