Mraid JsTag广告
1.jsTag:使用mraid扩展协议 v1和v2,来编写js脚本
2.js页面通过webview来加载广告
3.有些需要通过js桥来监控内部的方法,有些则不需要
4.监听open,playvideo,等等可以加载 banner、插屏、视频广告。
5.广告样式有很多,有些试玩广告,有些交互广告等等。
一:MRAID是什么
MRAID是IAB为移动富媒体广告定义的一套通用API规范,APP可通过支持这些API来增加广告的富媒体特性。这是一组标准化的指令集.
IAB中MRAID的地址:Mobile Rich Media Ad Interface Definitions (MRAID)
现在有Mraid v1,Mraid v2,Mraid v3,但是现在行业主流的是Mraid v2
2.如何使用MRAID广告
如果要使用 MRAID 功能,设计的网页必须先将 mraid.js 导入到相应广告素材。所以网页需要引入<script src="mraid.js">。然后,我们Dap Sdk需要兼容 MRAID广告,Dap sdk 会在该广告素材中找到此代码,并会将其替换为指向 MRAID 实施的实际网址。之后通过WebView将网页加载出来,同时按照Mraid v2规范,Sdk从Js Tag中找到需要的方法然后做相应的操作。
举个例子:
2.1下面是Mraid的Banner广告
<script src="mraid.js"></script>
<div id="adContainer" style="width:320px;margin:0px;padding:0px;background-color:#ffffff;"><div id="normal" style="display:none;width:320px;height:50px;margin:auto;position:relative;top:0px;left:0px;"><img width="320" height="50" src="http://admarvel.s3.amazonaws.com/demo/mraid/320x50_click_to_expand.png" onclick="javascript:expand();"/></div><div id="expanded" style="display:none;width:320px;height:250px;margin:auto;position:relative;top:0px;left:0px;"><img width="320" height="250" style="position:absolute;top:0px;left:0px;" src="http://admarvel.s3.amazonaws.com/demo/mraid/320x250.png" /><img width="37" height="37" style="position:absolute;top:90px;left:56px;" src="http://admarvel.s3.amazonaws.com/demo/mraid/Html_37x37.png" onclick="javascript:openSite('http://www.opera.com');" /><img width="37" height="37" style="position:absolute;top:90px;left:113px;" src="http://admarvel.s3.amazonaws.com/demo/mraid/Location_37x37.png" onclick="javascript:openSite('https://maps.google.com/maps?q=1875+S+Grant+St,+San+Mateo,+CA&hl=en&sll=46.238212,6.864936&sspn=0.135592,0.222816&oq=1875+S&hnear=1875+S+Grant+St,+San+Mateo,+California+94402&t=m&z=17&iwloc=A')" /><img width="37" height="37" style="position:absolute;top:90px;left:170px;" src="http://admarvel.s3.amazonaws.com/demo/mraid/Download_37x37.png" onclick="javascript:openSite('https://itunes.apple.com/us/app/opera-mini-web-browser/id363729560?mt=8&ign-mpt=uo%3D4');" /><img width="37" height="37" style="position:absolute;top:90px;left:227px;" src="http://admarvel.s3.amazonaws.com/demo/mraid/Video_37x37.png" onclick="javascript:playVideo('http://admarvel.s3.amazonaws.com/demo/mraid/OMW_SOUND_VIDEO_RENEW.iPhoneSmall.mp4');" /><img width="37" height="37" style="position:absolute;top:147px;left:56px;" src="http://admarvel.s3.amazonaws.com/demo/mraid/SMS_37x37.png" onclick="javascript:sendSMS('16502122336');" /><img width="37" height="37" style="position:absolute;top:147px;left:113px;" src="http://admarvel.s3.amazonaws.com/demo/mraid/Photo_37x37.png" onclick="javascript:storePicture('http://admarvel.s3.amazonaws.com/demo/mraid/320x50.png')" /><img width="37" height="37" style="position:absolute;top:147px;left:170px;" src="http://admarvel.s3.amazonaws.com/demo/mraid/Calendar_37x37.png" onclick="javascript:createCalendarEvent()" /><img width="37" height="37" style="position:absolute;top:147px;left:227px;" src="http://admarvel.s3.amazonaws.com/demo/mraid/Call_37x37.png" onclick="javascript:callNumber('16502122336');" /></div>
</div>
<style type="text/css">
body
{background-color:#FFFFFF;
}
</style>
<script>
// Expanded Click Action Functions
function openSite(url)
{mraid.open(url);
}
function sendSMS(number)
{if (!mraid.supports("sms")){alert("MRAID says SMS is not supported on this device.");}else{mraid.open("sms://" + number);}
}function callNumber(number)
{if (!mraid.supports("tel")){alert("MRAID says calling is not supported on this device.");}else{mraid.open("tel://" + number);}
}
function playVideo(url)
{mraid.playVideo(url);
}
function storePicture(url)
{if (!mraid.supports("storePicture")){alert("MRAID says storePicture is not supported on this device.");}else{mraid.storePicture(url);}
}function createCalendarEvent()
{if (!mraid.supports("calendar")){alert("MRAID says calendar is not supported on this device.");}else{var calendarObject = {description:"Mayan Apocalypse/End of World", location:"everywhere", start:"2013-12-21T00:00-05:00", end:"2013-12-22T00:00-05:00"};mraid.createCalendarEvent(calendarObject);}
}
// Core Ad Functions
function collapse()
{mraid.close();
}
function mraidIsReady()
{mraid.removeEventListener("ready", mraidIsReady); showMyAd();
}
function showMyAd()
{var el = document.getElementById("normal");el.style.display = '';mraid.addEventListener("stateChange", updateAd);
}
function expand()
{ mraid.setOrientationProperties({"allowOrientationChange":false, "forceOrientation":"portrait"});mraid.expand();
}
function updateAd(state)
{ if (state == "expanded"){toggleLayer('normal', 'expanded');}else if (state == "default"){toggleLayer('expanded', 'normal');}
}
function toggleLayer(fromLayer, toLayer)
{var fromElem = document.getElementById(fromLayer);fromElem.style.display = 'none';var toElem = document.getElementById(toLayer);toElem.style.display = '';
}
function setupViewport(width)
{var element = document.querySelector("meta[name=viewport]");if (!element){element = document.createElement("meta");element.name = "viewport";element.content = "width=" + width + ", user-scalable=no";document.getElementsByTagName('head')[0].appendChild(element);}else{element.content = "width=" + width + ", user-scalable=no";}
}
setupViewport(320);
function doReadyCheck()
{ if (mraid.getState() == 'loading'){ mraid.addEventListener("ready", mraidIsReady); }else{ showMyAd(); }
}
doReadyCheck();
</script>
1.里面引用了mraid.js
文章出处:https://blog.csdn.net/pangzaifei/article/details/70213731
2.定义了一些function和event,例如:
Methods Used
- expand
- close
- addEventListener
- removeEventListner
- open//打开手机浏览器
- getState
- playVideo //播放视频
- supports
- storePicture
- createCalendarEvent
Events Used
- ready
- stateChange
- sizeChange
效果图:
2.2:Banenr二级联动广告,不需要重新加载页面
js Tag:http://admarvel.s3.amazonaws.com/demo/mraid/MRAID_v2_simple_resize.txt
效果:
点击banner->
点击video播放视频->
3.插屏类广告,类似Banner,只贴几张效果图
插屏+视频: 插屏+图片:
4.用下面的Js Tag可以帮你来快速验证你的Js Brige是否有效
Js Tag:http://admarvel.s3.amazonaws.com/demo/mraid/MRAID_v2_diagnostics.txt
ps:点击open:打开浏览器 点击play video:播放视频等等
4.试玩类广告
5.Mraid提供的部分方法解释:
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()
如果在将 allowOrientationChange
属性设置为 true
时调用 mraid.setOrientationProperties()
,设置 forceOrientation
属性将不会执行任何操作。想要强制屏幕方向的广告素材应将 allowOrientationChange
设置为 false
。
mraid.isViewable()
如果某个视图覆盖了原本可见的广告,mraid.isViewable()
仍会返回 true
。应用内容不应覆盖可见的广告。
mraid.getCurrentPosition()
当两片式展开式广告处于展开状态时,对第一片广告调用 mraid.getCurrentPosition()
将返回屏幕的大小。
Mraid JsTag广告相关推荐
- MRAID3.0_翻译
移动富媒体互动广告标准(MRAID) VERSION3.0 7月 2017 移动富媒体互动广告标准 (MRAID) 版本3.0 MRAID 版本 3.0 (MRAID 3.0) 具有重要的新功能, 可 ...
- [Mugeda HTML5技术教程之8]添加行为
上一节我们已经在新建的作品中添加了元素和动画,如果我们想要作品能够和用户互动,就需要给元素添加动作行为.在舞台上选中一个要添加动作的元素,在属性栏的动作下拉列表中选择一个动作.可选类别有链接.表单.行 ...
- 移动网页广告引入mraid.js使用指南
在网上找mraid相关资料,相对比较少,大多都是API介绍,概念介绍等,没有一份详细的移动端网页广告使用教程,经过自己两天的摸索,完成了开发的移动端网页版的广告加入mraid功能. 背景: 我开发了移 ...
- 移动端网页广告引入 mraid.js 使用指南
在网上找mraid相关资料,相对比较少,大多都是API介绍,概念介绍等,没有一份详细的移动端网页广告使用教程,经过自己两天的摸索,完成了开发的移动端网页版的广告加入mraid功能. 背景 我主要负责开 ...
- html广告sdk,腾讯社交联盟广告
[优量汇]试玩广告接入文档 [此文档针对广告主开发者接入] 一.关于试玩广告 1.1 介绍 试玩广告是一种新型的交互式广告,互动性强,相比于传统广告,它可以让用户在未下载APP的前提下抢先体验APP内 ...
- Android开发之集成MoPub广告详细流程。
前言 看文档写的,文档集成和初始化和布局文件的代码都不在一起,找的我乱七八糟的,头大!记录一下这个流程吧. 关于moPub账户的注册,以及新建程序我就不一一贴出来了,费劲,只把代码贴出来.也足够Dem ...
- Android 项目中 Mopub 广告基础使用(插屏和横幅)
1.下载 MoPub Android SDK repositories {mavenCentral() // MoPub SDK is now available in Maven Central.. ...
- Unity Android接入MoPub聚合广告SDK
这里只总结前端接入流程和注意事项,后台配置请参考官方详细文档 mopub广告有以下类型 Bananer(横幅) Interstitial(插屏) Rewarded Video(激励视频) Reward ...
- 发布到FaceBook试玩广告,FaceBook要求要一个Html文件
Facebook 试玩广告具体要求: 试玩广告参数是创建试玩广告素材时要满足的要求. 试玩素材应为 HTML5 格式. 试玩广告素材不应使用 mraid.js 格式. 包含所有素材的试玩广告的单个 H ...
最新文章
- 提花原理与计算机,电脑提花袜的设计原理与方法:提花女袜
- C库函数-perror()
- 1.2.1 分层结构 协议 接口 服务
- Git错误:fatal: Not a git repository (or any of the parent directories)解决方法
- 深入解析PHP中逗号与点号的区别
- 信息检索及DM必备知识总结:luncene
- 周末总是被工作打扰_如何在不打扰任何人的情况下问为什么在工作中
- rds 数据库营销报告_《营销自动化从入门到精通》第五章 集成营销自动化工具与CRM...
- Pandas DataFrame loc []访问一组行和列
- 都在这儿了!Flink Forward Asia 最佳参会指南
- [C#] 控制系统音量-第一章
- 除了php云和骑士还有什么_PHP云人才系统 VS 骑士cms人才系统
- html动态生成表格源码,JavaScript动态生成表格的示例
- 【渝粤题库】陕西师范大学165104 组织行为学原理 作业(高起专)
- 陶哲轩实分析 习题6.6.5
- 智慧灯杆智能网关喷雾降尘系统
- 二叉树、B树(B-树)、B+树、B*树详解,以及为什么MySQL选择B+树做索引
- CSS面试须知--显示模式及三大特性
- 【分享贴】教师资格证高中数学笔试经验分享贴
- C++的atof()
热门文章
- C库函数中一些常用的常量值
- Java遍历Map集合,获取key、value等方式
- 各种驱动安装方法详细介绍
- vmware 无法打开u盘
- 创始人专访 | Kimi:因为自己淋过雨,所以总想给别人撑把伞
- 05-lao-JavaScript基础
- uoj#344. 【清华集训2017】我的生命已如风中残烛(计算几何)
- Python—pandas对Excel的筛选功能的一个大坑(ValueError)
- JAVA毕业设计建材公司管理系统计算机源码+lw文档+系统+调试部署+数据库
- java编程定义一个表示学生信息的类student_要求如下_用JAVA定义一个学生类Student来表示学生信息,学生类中包含成员有学号(id)、姓名(name)、年龄和成绩...