移动富媒体广告

Google 移动广告 SDK 现已推出 MRAID v3 的 Beta 版支持,该支持以现有的 MRAID v2 支持为基础构建,可让广告客户向 Ad Manager 发布商投放 MRAID v3 广告素材。本指南阐明了 MRAID v3 规范中不明确且容易产生歧义的 MRAID 实现细节。 本指南的目标受众是 MRAID v3 广告素材作者。

前提条件

发布商必须运行以下服务:

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

实用入门知识

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

MRAID v3 (Beta 版) 实现细节

可见度 - exposureChange 事件

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

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

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

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

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

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

可听度衡量

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

audioVolumeChange 事件有一个参数:volume_percentage。该值是音频播放音量上限的百分比。它是一个 介于 0.0100.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.resize() 的所有后续调用都会失败,直到使用有效参数再次调用 mraid.setResizeProperties() 为止。

mraid.getMaxSize()

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

mraid.setOrientationProperties()

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

mraid.isViewable()

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

mraid.getCurrentPosition()

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

mraid.storePicture()

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