什么是MRAID
MRAID(Mobile Rich Media Ad InterfaceDefinitions)是IAB为移动富媒体广告定义的一套通用API规范,APP可通过支持这些API来增加广告的富媒体特性。这是一组标准化的命令集,设计用于与HTML5及JavaScript一起配合使用,主要用于富媒体广告与APP之间进行通信的。
简单说就是利用H5的代码,可以调用移动手机本地的一些API,实现诸如:小变大扩展创意、摇一摇、重力感应游戏等等富媒体特效。
注:IAB中MRAID的地址(可点击文末“阅读原文”进入):
http://www.iab.com/guidelines/mobile-rich-media-ad-interface-definitions-mraid/
截至本文完稿时MRAID的正式版本为2.0,最新的MRAID3.0Draft刚提交审核,具体内容可参看如下URL:
http://www.iab.com/wp-content/uploads/2015/08/IAB_MRAID_v2_FINAL.pdf
https://www.iab.com/news/iab-tech-lab-releases-mraid-3-0-public-comment/
http://www.iab.com/wp-content/uploads/2016/11/MRAID-V3_Draft_for_Public_Comment.pdf
MRAID示例:点击动态扩展的banner广告,点击APP中的banner广告后,广告展开可进行全屏动态展示。再一次加强曝光,展示完后将直接跳转至landingpage页面。(期间不会弹出新浏览器页面,用户体验流畅。)
图5‑6 MRAID点击动态扩展banner广告示例截图
现以《MRAID-V3_Draft_for_Public_Comment.pdf》为例给大家概要性地介绍一下该技术接口协议,这些介绍也是让大家对该规范感性上有一个基本的认识。当然因为是技术规范,内容可能有些偏技术,大家不用太过深究,仅仅是为了让大家有个基本的感性概念(所以截图及部分内容尽量以原文档原文为主,若大家没有兴趣且将来会不涉及相关技术工作的,只要记住“MRAID是移动端富媒体交互广告规范”即可,可跳过下面的内容,直接继续后续阅读即可)。限于篇幅,详细的规范内容我们将不做展开,如果某些技术同学,出于工作需要及好奇,可依据上述提供的文档地址下载原始文档进行研究。,图5‑7所示为该规范文档的封面截图,放这个截图的目的也是为了让大家对该规范的正本有个感性认识(不至于受到一些“李鬼”的干扰。)。
图5‑7 MRAIDv3文档封面截图
注:MRAID 3引入了一些新功能,主要有:
1.先展示预加载的广告;只有当正式广告准备好才展示,确保广告正确无误地显示给用户,确保广告效果。
2.通过一个广告的可见性测量的接口,使得监测广告可见性成为可能。
3.充分整合VPAID允许视频富媒体交互体验,能在移动端加强广告MRAID的用户体验。
4.提供能够发现是否启用设备位置的访问接口,同时进一步提供有关位置的信息。
5.对广告程序提供了音频的测量接口,通过改接口广告程序可检测设备的声音是否启用、以及设置在什么音量。
6.在初始化时,监测MRAID规范兼容Web容器的相关属性是否达标,以确保广告展示的兼容性,确保更好的展示效果。
该协议首先介绍一些常用词,这些常用词会帮助我们理解MRAID,并运用好:
l host: 宿主,即移动App提供MRAID广告展示的容器,并支持MRAID的API。这个宿主的实现形式可以是一个广告SDK,也可以是具备这些功能特点的APP。
l MRAID Implementation: 实现MRAID协议并对广告提供的富媒体交互的功能。包括广告中的可监测MRAID能力、开启MRAID能力、并使用这些MRAID服务的JS代码。
l SDK: Software Development Kit(软件开发包)首字母缩写。对于MRAID,SDK指的是实现MRAID功能的代码及框架库。可以给到移动APP开发者直接使用的程序包(用于发布MRAID广告)。
l SDK provider: SDK提供者,简单说就是为移动APP开发者提供这套技术或者服务的供应商。
l ad container: 广告容器或广告位,即在App中用于展示广告的区域(容器)。App开发者可将该广告容器作为固定广告位展示,也可以同媒体内容混在一起展示。且App中同时可以放置多个这样的广告容器。
l webview: webview简单说就是App中可以嵌一个小浏览器,是移动端App中可以展示web内容,及运行JavaScript的技术。MRAID不一定必须使用webview(技术大牛完全可不使用webview,而自己来实现),但webview是一种典型的MRAID宿主。广告容器包含webview,webview用于解析广告素材的HTML内容,并在webview中将广告渲染展示出来。
l native layer: 即同本地App通讯及操作的层。因为MRAID提供的很多富媒体交互特效,都需要同手机底层API通讯。这些都需要广告容器支持MRAID来实现的。然后MRAID广告代码只要直接调用JS代码,即可实现对手机底层API的调用。
l ad: 广告文件包,在该协议中,ad泛指所有富媒体广告创意素材相关的类库、代码、图片等等。包括要在手机环境展示MRAID广告的所有MRAID的功能。
协议中描述了富媒体广告的交互过程,如图5-8所示,用一个最简单且典型MRAID的“可扩展广告”来展示MRAID整体运作流程:
图5‑8用最简单且典型MRAID的“可扩展广告”来展示MRAID整体运作流程示意图
1) 首先广告容器初始化并加载完广告文件,容器将状态变为“default”(广告代码可以读取容器的状态),向广告代码发送“ready”事件。广告代码可以在容器状态变化,或事件触发时完成一些特殊的特效,例如:视频广告加载即自动播放等等特效。
2) 用户交互触发广告扩展(这里支持可能的交互动作,可以是点一下广告、摇一摇、刮刮卡等等),广告代码调用“mraid.expand”方法,广告容器改变尺寸,最大可以是全屏,加载并显示“关闭按钮”,容器状态变更为“expanded”。
3) 广告代码可以根据需要侦听“stateChange”事件,实现一些特效。例如:广告展示完几秒后自动跳转到LandingPage等等。
4) 用户点击“关闭按钮”,广告代码调用“mraid.close”方法,通知广告容器将尺寸恢复原尺寸,容器将状态变为“default”。等待后续更多用户交互发生。
广告容器的状态主要有5个:
l loading:该状态说明广告容器还在初始化,及加载广告代码中,还不能正常完成交互特效。
l default:该状态说明广告容器处在缺省状态,即没有交互发生之前的状态,该状态下可正常进行交互特效。
l expanded:该状态说明广告容器已经发生交互特效,触发扩展变大。
l resized:该状态说明广告容器,是通过被MRAID2.0的resize()方法调用触发,而改变尺寸的。
l hidden:该状态说明插屏广告转变为关闭后的状态。
各状态间相互影响及转化的关系参见表5-1所列:
表格5‑1常见的几种代码方法对这些状态变化的影响
需注意,对于富媒体的广告特效需调用到手机本地API的特殊功能时,就需要手机本地支持的特性才行,例如:可使用“sms:”协议调起发短信界面、可使用“tel:”协议调起打电话界面、可在本机日历中创建一个日程、可存储图片、可在不全屏的情况播放视频(一般手机中缺省播放视频都全屏的)、支持VPAID的视频播放API、需要获取GPS位置信息、手机APP屏幕状态读取或设置:横屏/竖屏、屏幕角度等等、手机音量变化等等。
注意:原MRAIDv1中预留的本地扩展特性支持的:指南针、重力感应、震动器等等,在最新标准MRAID中已被去除。部分介绍说明如下:
设备传感器 (可选)
在HTML5的最新标准中已经定义了手机传感器的事件,但由于手机内置浏览器内核并不都可以支持最新的HTML5标准,基于此,本协议定义了另外一系列事件,用于给移动端更广泛的支持,设备传感器事件和方法都在MRAID协议基础上直接增加,不产生新的命名空间,由mraid.addEventListener(事件, 处理方法)监听。
事件列表:
shake:手机摇动触发
“tiltChange” ->function(x,y,z):x,y,z分别为对应轴的浮点型旋转向量;手机倾斜角度变化时触发
“headingChange” ->function(heading):heading取值为0-360整数角度,0为正北方向,顺时针累加;手机朝向变化触发
“networkChange” ->function(network):network - String 取值为unknown,offline,cell,wifi;手机网络状态变化触发
注:部分调试工具及样例参考地址如下:
MRAID系列工具包:
Webtester(在web页面中预览MRAID ad效果的工具):
http://webtester.mraid.org/
SDKtester(通过SDK嵌入APP中,调试在手机上体验MRAID ad效果的工具):
https://www.iab.com/guidelines/mobile-app-mraid-ads-sdk-tester/
部分效果实现指导文档及demo:
Single-PartExpandable Ad(单体扩展广告):
http://www.iab.com/wp-content/uploads/2015/08/MRAID_Test_Ad-Expandable.pdf
Two-PartExpandable Ad(点击扩展打开落地页广告):
http://www.iab.com/wp-content/uploads/2015/08/MRAID_Test_Ad-Two_Part_Expandable.pdf
Full-PageAd(全屏广告):
http://www.iab.com/wp-content/uploads/2015/08/MRAID_Test_Ad-Fullpage.pdf
Resize Ad(尺寸变化广告):
http://www.iab.com/wp-content/uploads/2015/08/MRAID_Test_Ad-Resize.pdf
Resize AdDesigned to Cause MRAID Errors(尺寸变化设计失误导致的MRAID的错误示例):
http://www.iab.com/wp-content/uploads/2015/08/MRAID_Test_Ad-Resize_Errors.pdf
VideoInterstitial Ad (视频插屏广告):
http://www.iab.com/wp-content/uploads/2015/08/MRAID_Test_Ad-Video_Interstitial.pdf
(转载请注明出处:微信订阅号:ad_automation)
文字表现力有限,欢迎参加《617线下大课堂》面对面为您答疑解惑讲透您关心的问题。
相关推荐阅读:
《2016合集目录【程序化广告实战】》
长按二维码加入私密圈子
同时备有微信互动群,需在加群前先加微信13121124046(伍刀刀),拉您入群。
6月17日15点机械工业出版社3号楼10层流水课通知:
“监测&移动”专题