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广告相关推荐

  1. MRAID3.0_翻译

    移动富媒体互动广告标准(MRAID) VERSION3.0 7月 2017 移动富媒体互动广告标准 (MRAID) 版本3.0 MRAID 版本 3.0 (MRAID 3.0) 具有重要的新功能, 可 ...

  2. [Mugeda HTML5技术教程之8]添加行为

    上一节我们已经在新建的作品中添加了元素和动画,如果我们想要作品能够和用户互动,就需要给元素添加动作行为.在舞台上选中一个要添加动作的元素,在属性栏的动作下拉列表中选择一个动作.可选类别有链接.表单.行 ...

  3. 移动网页广告引入mraid.js使用指南

    在网上找mraid相关资料,相对比较少,大多都是API介绍,概念介绍等,没有一份详细的移动端网页广告使用教程,经过自己两天的摸索,完成了开发的移动端网页版的广告加入mraid功能. 背景: 我开发了移 ...

  4. 移动端网页广告引入 mraid.js 使用指南

    在网上找mraid相关资料,相对比较少,大多都是API介绍,概念介绍等,没有一份详细的移动端网页广告使用教程,经过自己两天的摸索,完成了开发的移动端网页版的广告加入mraid功能. 背景 我主要负责开 ...

  5. html广告sdk,腾讯社交联盟广告

    [优量汇]试玩广告接入文档 [此文档针对广告主开发者接入] 一.关于试玩广告 1.1 介绍 试玩广告是一种新型的交互式广告,互动性强,相比于传统广告,它可以让用户在未下载APP的前提下抢先体验APP内 ...

  6. Android开发之集成MoPub广告详细流程。

    前言 看文档写的,文档集成和初始化和布局文件的代码都不在一起,找的我乱七八糟的,头大!记录一下这个流程吧. 关于moPub账户的注册,以及新建程序我就不一一贴出来了,费劲,只把代码贴出来.也足够Dem ...

  7. Android 项目中 Mopub 广告基础使用(插屏和横幅)

    1.下载 MoPub Android SDK repositories {mavenCentral() // MoPub SDK is now available in Maven Central.. ...

  8. Unity Android接入MoPub聚合广告SDK

    这里只总结前端接入流程和注意事项,后台配置请参考官方详细文档 mopub广告有以下类型 Bananer(横幅) Interstitial(插屏) Rewarded Video(激励视频) Reward ...

  9. 发布到FaceBook试玩广告,FaceBook要求要一个Html文件

    Facebook 试玩广告具体要求: 试玩广告参数是创建试玩广告素材时要满足的要求. 试玩素材应为 HTML5 格式. 试玩广告素材不应使用 mraid.js 格式. 包含所有素材的试玩广告的单个 H ...

最新文章

  1. 提花原理与计算机,电脑提花袜的设计原理与方法:提花女袜
  2. C库函数-perror()
  3. 1.2.1 分层结构 协议 接口 服务
  4. Git错误:fatal: Not a git repository (or any of the parent directories)解决方法
  5. 深入解析PHP中逗号与点号的区别
  6. 信息检索及DM必备知识总结:luncene
  7. 周末总是被工作打扰_如何在不打扰任何人的情况下问为什么在工作中
  8. rds 数据库营销报告_《营销自动化从入门到精通》第五章 集成营销自动化工具与CRM...
  9. Pandas DataFrame loc []访问一组行和列
  10. 都在这儿了!Flink Forward Asia 最佳参会指南
  11. [C#] 控制系统音量-第一章
  12. 除了php云和骑士还有什么_PHP云人才系统 VS 骑士cms人才系统
  13. html动态生成表格源码,JavaScript动态生成表格的示例
  14. 【渝粤题库】陕西师范大学165104 组织行为学原理 作业(高起专)
  15. 陶哲轩实分析 习题6.6.5
  16. 智慧灯杆智能网关喷雾降尘系统
  17. 二叉树、B树(B-树)、B+树、B*树详解,以及为什么MySQL选择B+树做索引
  18. CSS面试须知--显示模式及三大特性
  19. 【分享贴】教师资格证高中数学笔试经验分享贴
  20. C++的atof()

热门文章

  1. C库函数中一些常用的常量值
  2. Java遍历Map集合,获取key、value等方式
  3. 各种驱动安装方法详细介绍
  4. vmware 无法打开u盘
  5. 创始人专访 | Kimi:因为自己淋过雨,所以总想给别人撑把伞
  6. 05-lao-JavaScript基础
  7. uoj#344. 【清华集训2017】我的生命已如风中残烛(计算几何)
  8. Python—pandas对Excel的筛选功能的一个大坑(ValueError)
  9. JAVA毕业设计建材公司管理系统计算机源码+lw文档+系统+调试部署+数据库
  10. java编程定义一个表示学生信息的类student_要求如下_用JAVA定义一个学生类Student来表示学生信息,学生类中包含成员有学号(id)、姓名(name)、年龄和成绩...