このガイドは、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 から作成されたもので、上部にコンテンツ動画が再生され、その下にコンパニオン広告が表示されています。