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