随播广告

本指南适用于有意在 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 会获取随播广告位列表,因此您可以一次展示多个随播广告。您需要创建 ImaSdkFactory 实例才能创建 CompanionAdSlot

  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 还支持使用自适应尺寸的随播广告素材。 创建 companionAdSlots 后,需要将它们添加到 AdsLoader 中。以下示例展示了如何执行此操作,具体取决于您使用的是采用 Exoplayer-IMA 扩展程序IMA Android BasicExample,还是不使用该扩展程序的其他 IMA 实现。

BasicExample

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

其他实施

adsLoader.getAdDisplayContainer().setCompanionSlots(companionAdSlots);

这就是全部内容!您的应用现在正在展示随播广告。

展示自适应随播广告

IMA 现在支持自适应随播广告。这些随播广告可以调整尺寸以匹配广告位的尺寸。它们会填满父视图 100% 的宽度,然后调整其高度以适应随播广告素材的内容。您可以在 Ad Manager 中使用 Fluid 随播广告尺寸来设置这些尺寸。如需了解此值的设置位置,请参阅下图。

显示 Ad Manager 的随播广告设置的图片。突出显示随播广告素材尺寸选项。

针对自适应随播广告更新 Android 应用

要声明自适应随播广告位,您可以更新 CompanionAdSlot.setSize() 方法,将 CompanionAdSlot.FLUID_SIZE 作为这两个参数。

  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);

FAQ

我按照指南进行操作,但没有看到随播广告。该怎么做?
首先,请进行检查,确保您的代码确实会返回随播广告素材。为此,请在网络浏览器中打开该代码,并查找 CompanionAds 代码。如果您看到此错误消息,请检查并确保返回的随播广告素材尺寸与您传递到 CompanionAdSlot 对象的尺寸相同。
按照本指南中的说明操作后,我的随播广告位会是什么样子?
以下图片是根据 BasicExample 制作的,内容视频在上方与下方的随播广告一起播放。

IMA Android 随播广告示例图片。