移动富媒体广告

Google 移动广告 SDK 现在已在测试阶段支持 MRAID v3,并以对 MRAID v2 的现有支持为基础,使广告客户能够向 Ad Manager 发布商投放 MRAID v3 广告素材。本指南阐明了 MRAID v3 规范中不明确且可解释的 MRAID 实现细节。本指南的目标受众群体是 MRAID v3 广告素材作者。

前提条件

发布商必须运行:

  • 对于 MRAID v3,需要使用 Google Play 服务 15.0.0 或更高版本
  • 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.setResizeProperties() 之前,对 mraid.resize() 的所有后续调用都会失败。

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 权限。