コンパニオン広告

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

前提条件

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

役立つプリマー

アプリに 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 Android BasicExample を使用している場合と、拡張機能を使用しない場合の IMA 実装の違いを示しています。

BasicExample

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

その他の実装

adsLoader.getAdDisplayContainer().setCompanionSlots(companionAdSlots);

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

フレキシブル コンパニオン広告を表示する

IMA で Fluid サイズのコンパニオン広告がサポートされるようになりました。これらのコンパニオン広告は、広告スロットのサイズに合わせてサイズを変更できます。親ビューの幅の 100% を占有し、コンパニオンのコンテンツに合わせて高さを変更します。アド マネージャーで 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 コンパニオン広告の例画像。