快应用广告植入

入门参考:https://bbs.quickapp.cn/forum.php?mod=viewthread&tid=3678

郑重声明:快应用调试器预览版不提供广告展示

方法:可以在合适的手机快应用调试器上去找不是预览版的版本进行广告调试

一、广告的分类

1.1 分类:

  • banner广告
  • 插屏广告
  • 原生广告(部分厂家支持原生渲染2.0,版本兼容问题看版本兼容)
  • 激励视频广告

1.2 版本兼容

厂商 最低支持引擎版本 说明
vivo 1052+ 激励视频广告1061+ vivo 流量联盟平台
OPPO 1044+ 激励视频广告1060+ OPPO 营销平台
华为 1075+ 华为广告接入服务
小米 1062+ 暂不支持原生广告 小米移动广告联盟

友情提醒:看到的不一定是真的~(小米其实是可以支持原生广告)

二、各种广告的使用方法

基础方法参考各大官网以及快应用平台官网,下文主要阐述的是细节!细节

2.1 banner广告

话不多说我们直接上例子,例子都来自官网

2.1.1 完整代码

代码实例

<template><div class="wrap"><text class="btn" οnclick="showAd">点击显示广告</div></div>
</template>
<script>import device from "@system.device";export default {data() {return {adUnitId: "",ad: null};},onInit() {this.switchAdUnitIdByBrand();},async switchAdUnitIdByBrand() {// 这个方法的作用是适配不同厂商的adUnitIdconst res = await device.getInfo();const brand = res.data.brand;switch (brand) {case "vivo":this.adUnitId = "278eae7418b04abbb5926847ed42271e"; // 这个id是vivo的com.quickapp.center创建的,需要修改manifest的package才能预览出效果break;case "oppo":this.adUnitId = "oppo-adUnitId";break;case "xiaomi":this.adUnitId = "xiaomi-adUnitId";break;case "huawei":this.adUnitId = "huawei-adUnitId";break;default:console.warn("此设备不支持广告组件!");}},initAd() {try {this.ad = require('@service.ad').createBannerAd({  // 使用require方式避免在不支持的广告接口的厂商运行是报错adUnitId: this.adUnitId,style:{left: 0,top: 800,width: 1080}})} catch (e) {console.log(e)}},showAd() {if(this.ad) {this.ad.show();} else {this.initAd();}}};
</script>
<style lang="less">.wrap {background-color: #cccccc;flex-direction: column;.btn {height: 50px;width: 200px;border-radius: 25px;color: #FFFFFF;background-color: #456fff;text-align: center;}}
</style>

这里不谈样式,原生广告可能会细讲。

2.1.2 方法详解

data

data() {return {adUnitId: "",ad: null};
},

为什么要说道data这个方法,因为里面有两个非常重要的属性,也是广告植入的关键!

adUnitId :必须要有都是靠他接入广告的,他不对就没广告

**获取方式:**可以从各大平台去申请。部分平台可能没有测试id,需要先进行app发布验证才能拿到(如果需要的人多,我可以再写一篇如何申请各大id的正式id的文章

ad:通过adUnitId来生成的广告对象。

switchAdUnitIdByBrand()

async switchAdUnitIdByBrand() {// 这个方法的作用是适配不同厂商的adUnitIdconst res = await device.getInfo();const brand = res.data.brand;switch (brand) {case "vivo":this.adUnitId = "278eae7418b04abbb5926847ed42271e"; // 这个id是vivo的com.quickapp.center创建的,需要修改manifest的package才能预览出效果break;case "oppo":this.adUnitId = "oppo-adUnitId";break;case "xiaomi":this.adUnitId = "xiaomi-adUnitId";break;case "huawei":this.adUnitId = "huawei-adUnitId";break;default:console.warn("此设备不支持广告组件!");}
}

这个方法主要就是针对不同机器的adUnitId适配性操作,很通俗的switch语句。

device.getInfo(); 通过这个方法去拿到设备信息

const brand = res.data.brand;通过设备信息去锁定设备的品牌从而去下面找到你设置的adUnitId

device需要提前导入import device from "@system.device";

initAd()

通过内部给出的代码去创建banner广告

require('@service.ad').createBannerAd:具体代码看完整代码(里面填写id和banner的广告的样式即可)

2.1.3 其它方法

参考:https://quickapp.vivo.com.cn/quickapp-ad-api-gide/#toc-7

bannerAd 对象
方法 参数 描述
bannerAd.show() - 加载展示banner广告,出错的时候回调 onError,分为加载和展示两个阶段,加载成功回调onLoad
bannerAd.hide() - 隐藏 banner 广告
bannerAd.onError() function callback 监听 banner 广告错误事件
bannerAd.offError() function callback 移除 banner 广告错误监听
bannerAd.onLoad() function callback 监听 banner 广告加载事件,多个素材,每次加载新素材,都会进入这个回调
bannerAd.offLoad() function callback 移除 banner 广告展示监听
bannerAd.onClose() function callback 监听 banner 广告关闭事件
bannerAd.offClose() function callback 移除 banner 广告关闭事件
bannerAd.onResize() function callback 监听 banner 广告尺寸变化事件
bannerAd.offResize() function callback 取消监听 banner 广告尺寸变化事件
bannerAd.destroy() - 销毁 banner 广告

2.2 插屏广告

因为形式类似,所以这里不多赘述,直接看demo

2.2.1 完整代码

<script>import device from "@system.device";export default {data() {return {adUnitId: "fc7c15870c7740da94d88c650c939be4", // 这个id是vivo的com.quickapp.center创建的,需要修改manifest的package才能预览出效果ad: null};},onInit() {this.initAd();},initAd() {try {this.ad = require('@service.ad').createBannerAd({  // 使用require方式避免在不支持的广告接口的厂商运行是报错adUnitId: this.adUnitId,})this.ad.onLoad(() => {this.ad.show();})} catch (e) {console.log(e)}}};
</script>

2.2.2 其它方法

interstitialAd对象
方法 参数 描述
interstitialAd.show() - 插屏广告组件默认是隐藏的,调用 show 方法展示广告。
interstitialAd.hide() - 隐藏插屏广告
interstitialAd.onError() function callback 监听插屏广告出错事件
interstitialAd.offError() function callback 移除插屏广告出错监听
interstitialAd.onLoad() function callback 监听插屏广告加载成功事件
interstitialAd.offLoad() function callback 移除插屏广告加载成功监听
interstitialAd.onClose() function callback 监听插屏广告隐藏事件
interstitialAd.offClose() function callback 移除插屏广告隐藏监听
interstitialAd.destroy() - 销毁插屏广告

2.3 激励视频

2.3.1 完整代码

同理一样调用

讲一些细节问题:

1.demo的激励视频中show方法是通过OnLoad方法去调用的。

2.每次运行时都会调用一次load方法,不需要写出来也会自动执行一次。

<script>import device from "@system.device";export default {data() {return {adUnitId: "236d05c1e2564e85bf289f63c1e42c29", // 这个id是vivo的com.quickapp.center创建的,需要修改manifest的package才能预览出效果ad: null};},onInit() {this.initAd();},initAd() {try {this.ad = require('@service.ad').createRewardedVideoAd({  // 使用require方式避免在不支持的广告接口的厂商运行是报错adUnitId: this.adUnitId,})this.ad.onLoad(() => {this.ad.show();})this.ad.onClose((res) => {if (res && res.isEnded) {console.log("正常播放结束,可以下发奖励");} else {console.log("播放中途退出,不下发奖励");}})this.ad.load();} catch (e) {console.log(e)}}};
</script>

2.3.2 其它方法

rewardedVideoAd对象
方法 参数 描述
rewardedVideoAd.show() - 激励视频广告组件默认是隐藏的,调用 show 方法展示广告,失败回调 onError
rewardedVideoAd.load() - 手动拉取广告,用于刷新广告,成功回调 resolved Promise,失败回调 onError
rewardedVideoAd.onError() function callback 监听激励视频广告出错事件
rewardedVideoAd.offError() function callback 移除激励视频广告出错监听
rewardedVideoAd.onLoad() function callback 监听激励视频广告加载成功事件
rewardedVideoAd.offLoad() function callback 移除激励视频广告加载监听
rewardedVideoAd.onClose() function callback 监听激励视频广告关闭事件。只有在用户主动关闭激励视频广告时,广告才会关闭。
rewardedVideoAd.offClose() function callback 移除激励视频广告关闭监听
rewardedVideoAd.destroy() - 销毁激励视频广告组件

2.4 原生广告

这块最为复杂,首先你要知道虽然快应用可以在多个平台发布,但是每个平台对广告的兼容性却是不一样的。

所以原生广告被折腾成了1.0和2.0。

2.4.1 个人开发经验

2.0 最为兼容vivo平台(oppo中也可以使用)

1.0 兼容三大平台(oppo、华为、小米)

2.4.2 原生广告1.0

<script>import device from "@system.device";export default {data() {return {adUnitId: "9d66217c88614253bd68a291c273f8d5", // 这个id是vivo的com.quickapp.center创建的,需要修改manifest的package才能预览出效果ad: null};},onInit() {this.initAd();},initAd() {try {this.ad = require('@service.ad').createNativeAd({  // 使用require方式避免在不支持的广告接口的厂商运行是报错adUnitId: this.adUnitId,})this.ad.onLoad((data) => {console.log('Native ad resources!', data); // 广告加载成功,返回原生广告资源,根据但是资源自行渲染展现})this.ad.load();} catch (e) {console.log(e);}}};
</script>

这里他没有前端,前端需要你去自己写。具体得到的参数可以查看onLoad中的data

2.4.3 原生广告2.0

https://dev.vivo.com.cn/documentCenter/doc/499#w2-48198661

官方的介绍,其实并没有告诉你具体的写法

这里推荐去查看Apex-UI中关于ad2.0的案例

https://vivoquickapp.github.io/apex-ui-docs/guide/ad2.html

最好的下载从里面的代码去理解

三、错误码大全

3.1基础错误码

通用

代码 异常情况
1000 后端错误,调用失败
1001 参数错误
1002 广告单元无效
1003 内部错误
1004 无合适的广告
1005 广告组件审核中
1006 广告组件被驳回
1007 广告能力被封禁
1008 广告位的广告能力已关闭
1009 广告加载超时
1100 过于频繁调用相关的API
1101 广告在加载后,长时间没有展示,广告信息已过期
1102 调用了不支持的方法
1103 环境监测失败,如应用无权限等
1104 网络错误
1105 广告未加载成功
1106 广告展示失败
2000 未知错误

小米

code 含义 备注
300001 广告位不存在 请确认广告位是否是开启状态
300002 广告位在米盟SSP被暂停 开发者关闭了广告位
300003 upId不存在
300004 广告位被加入黑名单 通常是因为有作弊嫌疑,请联系米盟解决
300005 应用在米盟SSP被暂停 开发者暂停了应用下所有广告位
300006 应用被加入黑名单 通常是因为有作弊嫌疑,请联系米盟解决
300007 应用不存在 确认广告位的应用信息是否正确
300009 应用未上架
100401 被联盟投放限制过滤 根据开发者在SSP后台设置的屏蔽策略屏蔽广告
100402 请求包名与注册包名不一致 请求包名与注册包名不一致将不返回广告
101101 广告位内部解析错误 内部错误 请联系米盟解决
101102 内部错误 请联系米盟解决
101103 内部错误 请联系米盟解决
101104 内部错误 请联系米盟解决
300215 频控限制 更换调试设备解决
300216 请联系米盟解决 请联系米盟解决
300217 请联系米盟解决 请联系米盟解决
300218 请联系米盟解决 请联系米盟解决
300220 请联系米盟解决 请联系米盟解决
300221 请联系米盟解决 请联系米盟解决
300222 请联系米盟解决 请联系米盟解决
300223 请联系米盟解决 请联系米盟解决
300224 请联系米盟解决 请联系米盟解决
300225 请联系米盟解决 请联系米盟解决
300226 请联系米盟解决 请联系米盟解决
300227 请联系米盟解决 请联系米盟解决
300228 请联系米盟解决 请联系米盟解决
300217 请联系米盟解决 请联系米盟解决

四、各大平台的测试id

4.1 小米

广告类型 测试广告位ID
横幅 802e356f1726f9ff39c69308bfd6f06a
插屏半屏图片(横版) 1d576761b7701d436f5a9253e7cf9572
插屏半屏图片(竖版) 67b05e7cc9533510d4b8d9d4d78d0ae9
插屏半屏视频(横版) b7c62fa1f3db17b661e3adc650414f41
插屏半屏视频(竖版) 7844b678553cc3f3b9b9048a48f145a4
插屏半屏图片和视频(横版) 7b6435ad4d1e6d87ddba2415de6ba65b
插屏半屏图片和视频(竖版) eda5f9bcf641d588758b27b290d8b4f1
全屏插屏视频(横版) 9b31b19c061a4db0d5f4f004cf16c92d
全屏插屏视频(竖版) ea7b05ddc1a85d3d04ab0231b3b5e4bb
激励视频广告(横版) 17853953c5adafd100f24cd747edd6b7
竖版激励视频(竖版) 92d90db71791e6b9f7caaf46e4a997ec
横版开屏 94f4805a2d50ba6e853340f9035fda18
原生模板-上文下图 4966931579570a31c70269f560e9577e
原生模板-左文右图 e8cad3a962d8f5ccb3e42a5c2427107d
原生模板-左图右文(A版) 4cc5ca1fa86d05c3c9dbec05ce5bb1b8
原生模板-左图右文(B版) 8577377ac0a045a5187a5506f3cf6ba6
原生模板-上图下文(大图) 8f02fd1f100b57f536da160a84fa95a6
原生模板-上图下文(组图) 9d72e47b9640044d1f6bcbd4d3277d19
原生模板-横版视频模板 ffc009779b4a62177fffe3d594bb35ff
自渲染大图(仅图片) 702b6a3b2f67a52efd3bdbf51fbef5fe
自渲染大图(仅视频) 737fd8fce83832ffac1da2244d24add5
自渲染——大图(图片+视频混出) 270c1630710a858d633aaf752025eae2
自渲染——小图 60d2a98004f3a2a3625a1665796e0ebb
自渲染——组图 c020c2cbc40301a2a18fe32977bddcaa

4.2 vivo

看demo中的测试id

https://quickapp.vivo.com.cn/quickapp-ad-api-gide/#toc-10

4.3 OPPO

暂无

4.4 华为

看demo中的测试id:

https://developer.huawei.com/consumer/cn/doc/development/quickApp-Guides/quickapp-access-ads-kit-0000001126445969#section525115250248

快应用广告开发、各大手机平台测试id、错误码汇总相关推荐

  1. 摩托罗拉等六厂商联手 开发通用Linux手机平台

    摩托罗拉等六厂商联手 开发通用Linux手机平台 关键词: 摩托罗拉等六厂商联手 开发通用Linux手机平台 本周四,手机厂商摩托罗拉.NEC .松下.三星,以及手机运营商NTT DoCoMo.沃达丰 ...

  2. android 充电 测试,谁最快? Android Authority带来的手机充电测试

    原标题:谁最快? Android Authority带来的手机充电测试 [安卓中文网]现在快充已经是新一代手机的标配了,不少厂商在发布新机的时候多多少少都会提到这一点. Android Authori ...

  3. OpenHarmony/HarmonyOS卡片开发错误码汇总

    卡片开发的过程中会遇到一些错误,下面是针对卡片开发的错误码汇总 作者:坚果 组织:坚果团队 欢迎加入坚果团队 16500001 内部错误 错误信息 Internal Error. 错误描述 Mallo ...

  4. VIP会员也得看广告!两大视频平台回应...

    前段时间,各大视频平台相继宣布停止VIP会员的超前点播服务,网友们都拍手叫好,一致受到大家的好评.但近日,仍有不少视频网站会员表示,交了会员费后,广告仍时不时跳出来.虽然会员可跳过片头长达 1 分钟的 ...

  5. 精益开发——税务大数据平台建设效能提升的倍增器

    2020年阿里巴巴的研发效能峰会上,阿里资深技术专家何勉做了"ALPD--阿里创新能力背后的精益产品开发体系"的分享,它是阿里正在实践和持续打造的产品开发方法,目的是帮助组织提升精 ...

  6. 安卓底层linux开发教程,Android手机平台移植与底层开发 PDF

    支持Android的热门ARM硬件平台简介 ARMv7架构SOC l TI OMAP系列,2009年OMAP3和OMAP4关注度较高 l Freescale i.MX51系列 l Qualcomm 8 ...

  7. python测试开发自学教程-自动化平台测试开发:Python测试开发实战_PDF电子书

    因资源下载地址容易失效,请加微信号359049049直接领取,直接发最新下载地址. 前言 ======================================================= ...

  8. python测试开发自学教程-自动化平台测试开发- Python 测试开发实战

    适读人群 :本书适合从事自动化测试开发技术的广大开发和测试人员使用,也可供产品测试开发管理人员参考. 自动化测试平台测试开发是指开发一个平台系统,结合相关的开源自动化框架进行集成,如 Selenium ...

  9. 大数据平台应用 17 个知识点汇总

    一.大数据中的数据仓库和Mpp数据库如何选型? 在Hadoop平台中,一般大家都把hive当做数据仓库的一种选择,而Mpp数据库的典型代表就是impala,presto.Mpp架构的数据库主要用于即席 ...

  10. 大数据平台测试-软件测试常见面试回答(持续更新)

    面试造航母,入职拧螺丝.面试,讲点面试官想听的... 1.你有过漏测的经历吗? 答:这道题肯定是回答有.然后展开描述.就类似面试官问 你印象比较深的一个bug... 测试无穷尽,质量也并非测试一个岗位 ...

最新文章

  1. R语言Logistic回归模型案例:低出生婴儿体重的影响因素分析(列线图、校准曲线)
  2. 利用Java生成静态HMTL页面的方法收集
  3. 塑料壳上下扣合的卡扣设计_一种塑料件卡扣结构制造技术
  4. Windows XP英文版安装中文语言包来解决无法显示中文的方法(转载)
  5. H5页面跳转微信小程序
  6. (Inside Out)Web地图坐标系——谷歌的无奈
  7. matlab 线性方程 lu分解法_数值计算笔记-LU分解
  8. ECharts+Vue实现数据可视化
  9. mysql latch_MySQL8.0 - InnoDB里的Latch定义-阿里云开发者社区
  10. 「击败星际争霸II职业玩家」的 AlphaStar是在作弊?
  11. 热敏打印机 图片指令打印图片
  12. 《区块链助力粤港澳大湾区一体化发展报告(2022)》发布
  13. Python爬虫代理IP(代理池)——加载和使用
  14. 【日常】FIFA世界杯和历史事件
  15. win10总出现繁体字怎么关闭
  16. 信托专替卖家刷淘宝信用 制造虚假交易赚人
  17. Redis 之布隆过滤器,增强版,布谷鸟过滤器
  18. 模拟时钟(AnalogClock)
  19. Unit 4 关系代名词
  20. 使用ffmpeg常见的错误及解决方案

热门文章

  1. 【历史上的今天】8 月 24 日:Windows 95 问世;乔布斯辞任苹果 CEO;库克上台
  2. HTML5生日祝福网页代码【粉色生日快乐模板】HTML+CSS+JavaScript
  3. VisualRoute for Mac OS 体验
  4. java NumberFormat数字格式化
  5. stm32烧写序列号
  6. Esri中国社区 » GIS大讲堂:ArcGIS Server .Net ADF中的AJAX
  7. 天涯明月刀最新服务器,天涯明月刀最新开服时间表 | 手游网游页游攻略大全
  8. oa系统怎么安装服务器配置,OA系统安装配置及维护手册-金蝶在线服务中心.DOC
  9. 教育OA系统该如何选择?
  10. bjui刷新当前页签