移动富媒体广告

Google 移动广告 SDK 现在已对 MRAID v3 提供 Beta 版支持,此支持基于对 MRAID v2 的现有支持,使广告客户能够向 Ad Manager 发布商投放 MRAID v3 广告素材。本指南在 MRAID v3 规范中阐明了不明确且有待解读的 MRAID 实现细节。其目标受众群体是 MRAID v3 广告素材作者。

前提条件

发布商必须正在运行:

  • 适用于 iOS 7.30.0 或更高版本(适用于 MRAID v3)的 Google 移动广告 SDK
  • 适用于 iOS 7.4.0 或更高版本(适用于 MRAID v2)的 Google 移动广告 SDK

实用入门信息

如果您不熟悉 MRAID,可以在 IAB MRAID 页面中了解详情。您还可以下载 MRAID v3 定义文档(其中提供了有关以下讨论的所有参数的详细信息)以及有关 MRAID v3 的 IAB 博文

MRAID v3(Beta 版)实现详情

可见度 - visibilityChange 事件

此事件受支持,我们建议对新的 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.supports()

从 SDK 版本 7.11.0 开始,mraid.supports("storePicture")mraid.supports("calendar") 始终返回 false。根据 MRAID v2 规范,广告素材应能够处理这些方法不可用的情况。

mraid.storePicture()

当 MRAID 广告素材调用 mraid.storePicture() 时,应用会自动请求保存图片的权限。