这里只总结了前端的调用方式,以及碰到的问题如何处理。
后台相关的内容以及如何上架,申请广告平台没有参与,不多赘述。

激励视频

首先页面要有一个按钮领取任务

<button :loading="loading"  @click="showFullScreenVideoAd">显示广告</button>
<script>export default {data() {return {rewardedVideoAd: null,//广告APItask_id: '', //领取任务广告idprovider: '', //广告商名称_isLoaded: false,//广告是否准备完成}},onReady() {// #ifdef APP-PLUSthis.showRewardedVideoAd();// #endif},methods: {//激励视频初始化showRewardedVideoAd() {this._isLoaded = false;this.rewardedVideoAd = uni.createRewardedVideoAd({adpid: '196****349',})this.rewardedVideoAd.onLoad(() => {this._isLoaded = true; // 广告准备完毕this.provider = this.rewardedVideoAd.getProvider(); // 获取广告商名称})this.rewardedVideoAd.onAdClicked((res) => {console.log('用户点击了视频中的广告,通知后台')this.$http.post("/api/task/addClickLog", {task_log_id: this.task_id,}).then(e => {console.log(e);})});this.rewardedVideoAd.onClose((res) => {console.log('播放完毕');if (res && res.isEnded) {// 正常播放结束this.$http.post("/api/task/taskComplete", {task_id: this.task_id,}).then(res => {console.log(res);if (res.code == 1) {this.task_id ='';}})} else {// 播放中途退出console.log('中途退出');}})// 错误信息this.rewardedVideoAd.onError((err) => {console.log('onError event', err)uni.showToast({icon: 'none',mask: true,title: err.errMsg,});})},//领取任务addTask() {// #ifdef APP-PLUSif (!this._isLoaded) {return uni.showToast({icon: 'none',title: '广告加载中',});}this.$http.post("/api/task/addTask", {task_id: 2,provider: this.provider,data: '',}).then(res => {if (res.code == 1) {this.task_id = res.data.id;console.log('领取任务id:' + this.task_id);if (this._isLoaded) {this.rewardedVideoAd.show().catch(() => {// 如果组件的某次自动拉取失败,那么之后调用的 show() 将会被 reject。//此时可以调用 RewardedVideoAd.load() 手动重新拉取广告。this.rewardedVideoAd.load().then(() => this.rewardedVideoAd.show()).catch(err => {console.log('激励视频 广告显示失败')})})}}})// #endif},}}
</script>

全屏广告

<template><view><u-button :loading="loading"  @click="showFullScreenVideoAd">显示广告</u-button></view>
</template>
<script>export default {data() {return {loading: false,fullScreenVideoAd:null,}},onReady() {// 创建广告实例this.createFullScreenVideoAd();},methods: {createFullScreenVideoAd() {var fullScreenVideoAd = this.fullScreenVideoAd = uni.createFullScreenVideoAd({adpid: '1507000611'});fullScreenVideoAd.onLoad(() => {// 广告数据加载成功this.loading = false;console.log("onLoad");});fullScreenVideoAd.onClose((e) => {// 用户点击了关闭或返回键(仅Android有返回键)console.log("onClose " + e.isEnded);});fullScreenVideoAd.onError((err) => {console.log("onError", JSON.stringify(err));// 广告数据加载失败this.loading = false;uni.showToast({title: `${err.code} : ${err.errMsg}`})});},showFullScreenVideoAd() {// 调用 fullScreenVideoAd.show(),如果数据正在加载中不会显示广告,加载成功后才显示// 在数据没有加载成功时,需要防止用户频繁点击显示广告if (this.loading == true) {return}this.loading = true;this.fullScreenVideoAd.show().then(() => {this.loading = false;}).catch((err) => {console.log(err.message);this.loading = false;uni.showToast({title: `${err.code} : ${err.errMsg}`})});}},onUnload() {this.fullScreenVideoAd.destroy()}}
</script>

插屏广告

<template><view><u-button :loading="loading" @click="showInterstitialAd">显示广告</u-button></view>
</template>
<script>export default {data() {return {loading: false,interstitialAd:null,}},onReady() {// 创建广告实例this.createInterstitialAd();},methods: {createInterstitialAd() {var interstitialAd = this.interstitialAd = uni.createInterstitialAd({adpid: '1111111113'});interstitialAd.onLoad(() => {this.loading = false;console.log("插屏 广告加载成功");});interstitialAd.onClose(() => {// 用户点击了关闭或返回键(仅Android有返回键)console.log("插屏 广告关闭");});interstitialAd.onError((err) => {this.loading = false;console.log("插屏 广告加载失败");});// 广告实例创建成功后默认会执行一次 load,加载广告数据// 如果界面有 "显示广告" 按钮,需要先禁用掉,防止用户点击,等待广告数据加载成功后在放开this.loading = true;},showInterstitialAd() {// 调用 interstitialAd.show(),如果数据正在加载中不会显示广告,加载成功后才显示// 在数据没有加载成功时,需要防止用户频繁点击显示广告if (this.loading == true) {return}this.loading = true;this.interstitialAd.show().then(() => {this.loading = false;});}},onUnload() {// 页面关闭后销毁实例this.interstitialAd.destroy()}}
</script>

内容联盟广告

<template><view><u-button :loading="loading"  class="btn" @click="showAd">显示广告</u-button></view>
</template>
<script>export default {data() {return {loading: false}},onLoad() {},methods: {showAd() {if (this.loading == true) {return;}this.loading = true;plus.ad.showContentPage({adpid: 1111111112}, (res) => {this.loading = false;}, (err) => {this.loading = false;console.log(err);});}}}
</script>

错误信息处理

激励视频碰到的错误:ks40003
解决:广告填充不足。多开通其他几个平台的广告
激励视频需要观看15秒或者30秒才能关闭,导致上架应用市场审核不通过
解决:先换成全屏广告审核。通过后在换成激励视频
激励视频碰到的错误:ks100010
解决:广告位创建20分钟后在使用

增强广告的正常审核时间是1-2个工作日,遇节假日顺延,请您及时关注后台变化。如果超过3个工作日还未审核成功,请联系我们:uniad@dcloud.io或者@管理员
APK安装风险提示解决方法:
首先用报毒的应用去以下网址检查是否有相关风险提示:
https://m.qq.com/security_lab/scans_online.jsp
https://www.virustotal.com/gui/
如果提示有风险,需要去申诉,申诉地址:
https://m.qq.com/complaint?code=44A1CDDF7C98542570D8CC28BE0FC843&state=mqq
如果申诉结果为误报,把邮件回复内容的截屏发给uniAD运营人员。
如果申诉结果不是误报,需要进行以下操作:
1.更换签名
2.更换包名(注:先可试更换签名,然后直接走3,4步骤,如果报毒就不用换包名)
3. 代码前端代码加密,HBuilderX中配置JS/NVUE文件原生混淆加密:https://ask.dcloud.net.cn/article/36437
4. APK加固。APK加固参考,市面上有360加固,爱加密加固可自行选择
做了以上4步后,需要再次确认新包是否还有相关风险提示,一般风险提示都会解决。确认无误后进行重新上架,以及广告的申请操作。
同时我们建议报毒APP开展的业务进行合规化操作,避免后续再次出现同类问题

uniapp:广告API使用总结相关推荐

  1. 亚马逊广告api v2版php扩展库

    概述 easy-amazon-advertising easy-amazon-advertising 是一个开源的非官方的亚马逊广告业务sdk. 环境需求 easy-amazon-advertisin ...

  2. 亚马逊广告API对接概述

    广告API对接总体流程>>> 下图中出现的相关URL,是以北美站为例 亚马逊广告各实体间关系>>> 1. 广告API对接准备 ​​​​​​​1.1 申请亚马逊开发者 ...

  3. 微信小程序支付(1)Uni-app平台API接口

    uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.Web(响应式).以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝).快 ...

  4. Uniapp之API promise化

    本次要点: 1.promise是什么? 2.promise怎么使用? 1.promise是什么? promise是一个对象,它代表了一个异步操作的最终完成或者失败. 2.promise怎么使用? 接下 ...

  5. uniapp的api文档

    https://uniapp.dcloud.io/api/#%E6%A0%87%E5%87%86-js-%E5%92%8C%E6%B5%8F%E8%A7%88%E5%99%A8-js-%E7%9A%8 ...

  6. 2022-09-09 uni-app学习笔记(六) uniapp常用API,使用uniapp常用API(uni.chooseImage等)实现聊天框的选择图片和input框发送文本信息功能

    文章目录 1. uniapp的js的API由两个部分组成 标准ECMAScript的jsAPI uniapp扩展的APi 2.uniapp常用的api(看官网) 3.使用uniapp常用的api完善模 ...

  7. uni-app mqtt api 详解(不包含5.0版本)

    MQTT中的QoS等级 MQTT设计了一套保证消息稳定传输的机制,包括消息应答.存储和重传.在这套机制下,提供了三种不同层次QoS(Quality of Service): QoS0,At most ...

  8. uniapp学习API之——推送、语音、实人认证、一键生成iOS通用链接

    推送 uni.getPushClientId(OBJECT) 获取客户端唯一的推送标识 uni.onPushMessage([callback,eventName]) 启动监听推送消息事件 uni.o ...

  9. uniapp学习API之——其他(授权、收货地址、发票抬头等)

    授权 uni.authorize(OBJECT) 提前向用户发起授权请求.调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口.如果用户之前已经同意授权, ...

  10. Uni-app开发App和插件以后如何开通广告盈利:uni-AD

    Uni-app 作为近些年国内逐渐兴起的跨平台开发架构,一次开发就可以完成小程序.iOS APP.安卓 APP. H5等平台的打包是受到关注的原因.于此同时,很多开发者也开始关注Uni-app架构之外 ...

最新文章

  1. IntelliJ IDEA 的Project structure说明
  2. 只因路由器密码太弱,IP被黑客利用发虐童图片,无辜夫妇:我们甚至想自杀...
  3. eclipse指定jdk版本启动,解决Version XXXX of the JVM is not
  4. MangosCfg文件中文说明
  5. 教大家白嫖图床,有的小伙伴跟我说图床不好整,太麻烦
  6. gRPC在C#中的未来属于grpc-dotnet
  7. 系统测试集成测试单元测试_单元和集成测试的代码覆盖率
  8. JaveScript运算符(JS知识点归纳三)
  9. 德国拜尔集团迎来人工智能专家--李飞飞
  10. 用谷歌浏览器来模拟手机浏览器
  11. Protel99SE教程(二)——PCB封装
  12. intel h61 linux驱动下载,intel h61主板驱动
  13. Unicode编码之显示定向重写
  14. 如何在服务器里面新建文件夹,怎么在云服务器新建文件夹
  15. iphone个系列尺寸_iphone各机型尺寸
  16. 转载:《游戏论(一)》——一篇有点意思的文章
  17. pug跳转到另一个pug_使用Pug减少多页HTML开发的负担
  18. 对比分析OSG与Cesium中模型LOD的异同
  19. STM32应用实例十四:利用光敏二极管实现光度测量
  20. [kpw] USBNetwork的网连模式

热门文章

  1. DB---数据模型的三要素
  2. python网站攻击-利用Python进行Web渗透测试(十):密码攻击
  3. SPSS李克特五点计分调查问卷的选项如何设置?【SPSS 066期】
  4. html文件超链接打不开,Excel中出现超链接打不开的解决方法
  5. Tomcat运行成功但是报500错误
  6. vue的echarts的折线图、柱状图、折线图的使用
  7. TypeError this.getOptions is not a function 的解决
  8. 简单理解数据库游标cursor
  9. Python 中文数字转英文阿拉伯数字
  10. 什么样的企业适合用EV证书呢?