移动富媒体广告

Google 移动广告 SDK 现在已在 Beta 版中支持 MRAID v3,并以对 MRAID v2 的现有支持为基础,使广告客户能够向 Ad Manager 发布商投放 MRAID v3 广告素材。本指南阐明了 MRAID v3 规范中不明确且可供解读的 MRAID 实现细节。本指南面向 MRAID v3 广告素材作者。

前提条件

发布商必须运行:

  • Google Play 服务 15.0.0 或更高版本(适用于 MRAID v3)
  • 对于 MRAID v2,需要使用 Google Play 服务 7.8 或更高版本

实用的入门信息

如果您不熟悉 MRAID,可以访问 IAB MRAID 页面了解详情。您还可以下载 MRAID v3 定义文档,其中详细介绍了下文讨论的所有参数,以及 IAB 关于 MRAID v3 的博文。

MRAID v3(Beta 版)实现详情

可见度 - exposureChange 事件

此事件受支持,我们建议您使用新 exposureChange 事件的监听器,而不是已弃用的 viewableChange 事件。方法 mraid.isViewable() 也已弃用。不过,为了保持向后兼容性,这些已废弃的方法仍会继续受到支持。

每当广告视图发生变化时,系统都会调度 exposureChange 事件定义。该 SDK 具有轮询机制,可避免生成过多的事件。 广告注册监听器后,系统会异步发送初始状态。该回调包含 exposed_percentage 参数,这是一个介于 0.0 和 100.0 之间的浮点数。

如需查看使用示例,请参阅 MRAID v3 规范。

MRAID 检测和初始化以及 MRAID_ENV 属性

该 SDK 符合 MRAID v3 规范中定义的初始化协议。

在 MRAID_ENV 对象中,SDK 不会发送 IDFA、limitAdTracking、应用 ID 或 COPPA(这些都是可选的)。它在 MRAID_ENV 对象中提供所有必需的变量,包括 MRAID 版本、SDK 名称和 SDK 版本。

可听性衡量

引入了一个新事件 (audioVolumeChange),用于确定是否可以听到音频以及音量何时发生变化。

audioVolumeChange 事件只有一个参数:volume_percentage。该值是最大音频播放音量的百分比。这是一个介于 0.0 和 100.0 之间的浮点数(如果不允许播放,则为 0.0),如果无法确定音量,则为 null。

如需查看使用示例,请参阅 MRAID v3 规范。

mraid.getLocation()

由于不支持 mraid.getLocation(),因此该方法始终返回 -1。

mraid.unload()

此方法可在任何时间调用,SDK 会通过关闭广告、释放资源做出响应,然后移除 WebView 或将其替换为其他文档或新广告。

当广告素材调用 unload() 时,原生层会针对不同的广告素材类型做出如下响应:

类型 unload() 行为
横幅广告 使用与当前广告相同的请求参数发出新的广告请求。
插页式广告 关闭插页式广告。

VPAID(视频播放器-广告间接口定义)

Google 移动广告 SDK 不支持 VPAID。mraid.supports('vpaid') 返回 false。

mraid.useCustomClose()

mraid.useCustomClose() 可能不受支持,具体取决于广告素材格式和广告类型。

MRAID v2 实现详情

mraid.getVersion()

在广告素材加载完毕之前,mraid.getVersion() 不会返回 2.0。当 mraid.getState() 返回 loading 时,不检查 MRAID 版本。

mraid.resize()

调用 mraid.resize() 时,原始横幅会被横幅的屏幕截图替换。如果调整大小后的广告未覆盖原始广告空间,则此问题会很明显。

调整大小后的广告也不会遵循原始横幅框架。如果横幅广告放置在滚动视图中,则调整大小后的广告不会随横幅广告一起滚动。

mraid.setResizeProperties()

对 mraid.setResizeProperties() 的所有调用都应包含必需属性的完整列表。如果调整大小属性无效,系统会将其恢复为默认值,并且在再次使用有效参数调用 mraid.setResizeProperties() 之前,对 mraid.resize() 的所有后续调用都会失败。

mraid.getMaxSize()

mraid.getMaxSize() 仅应用于确定调整大小后的广告的最大尺寸。如需确定展开式广告的尺寸,请使用 mraid.getScreenSize()。

mraid.setOrientationProperties()

使用 allowOrientationChange 属性设置为 true 的 mraid.setOrientationProperties() 进行调用时,设置 forceOrientation 属性不会有任何作用。 想要强制设置屏幕方向的广告素材应将 allowOrientationChange 设置为 false。

mraid.isViewable()

如果视图遮盖了原本可见的广告,mraid.isViewable() 仍会返回 true。应用内容不得遮盖可见的广告。

mraid.getCurrentPosition()

当两段式展开式广告处于展开状态时,对第一段调用 mraid.getCurrentPosition() 将返回屏幕尺寸。

mraid.storePicture()

如需让应用支持 mraid.storePicture(),应用需要包含 android.permission.WRITE_EXTERNAL_STORAGE 权限。