uni-app怎么接入穿山甲广告 uni-app激励视频广告实现方法【教程】

冬明酱_3603

冬明酱_3603

2026-03-24

1222人浏览

原创

uni.createrewardedvideoad需安装并启用穿山甲原生插件(如tt-ad),配置对应平台appid与激励视频广告位id,预加载后调用show(),并结合服务端验证rewardedvideoad.onclose的isended及播放时长兜底判断。

uni-app怎么接入穿山甲广告 uni-app激励视频广告实现方法【教程】

uni.createRewardedVideoAd 能用,但得先装对插件

直接调用 uni.createRewardedVideoAd 会报错“not a function”,不是 API 失效,而是穿山甲 SDK 根本没接入。UniApp 的广告能力是靠原生插件桥接的,uni.createRewardedVideoAd 只有在正确安装并启用穿山甲原生插件后才真正可用。

  • 必须从插件市场安装「字节跳动穿山甲广告」类插件(如 tt-adcsj-ad),不能只配 manifest.json 里的 ad 模块
  • 插件安装后,要在 manifest.json → App 原生插件配置 中手动勾选该插件,否则运行时不可见
  • Android 和 iOS 需分别配置:插件内部通常不自动区分平台,appid 必须按平台传对应值(后台创建应用时 Android/iOS 是两个独立条目)
  • 真机调试前必须「制作自定义基座」——普通云打包或标准基座不包含你装的原生插件

激励视频广告位 ID 不能乱填,要和初始化匹配

常见错误是把开屏广告位 ID 或 Banner 位 ID 直接塞进 uni.createRewardedVideoAd({adUnitId: 'xxx'}),结果一直加载失败或回调不触发。穿山甲要求广告位类型和 SDK 初始化、代码位 ID 三者严格一致。

  • 广告位必须在穿山甲后台明确选择「激励视频(Reward Video)」类型创建,不能复用其他类型代码位
  • 初始化 SDK 时传的 appid 必须与该广告位所属应用一致(一个 App ID 下可挂多个 Reward 视频位,但不能跨 App ID)
  • 部分插件(如较新版本 tt-ad)要求额外传 expressViewAcceptedSize 参数,例如 {width: 360, height: 240},漏掉会导致 onLoaded 不触发
  • 测试阶段务必用「测试设备 + 测试广告位 ID」,否则可能因审核未过或流量控制返回空广告

onClose 回调里 isEnded 不可靠,得加兜底判断

rewardedVideoAd.onClose 返回的 res.isEnded 看似是发放奖励的唯一依据,但在实际机型(尤其低端 Android)或网络波动下,它可能为 true 却没播完,也可能为 false 但用户确实看完了——这是穿山甲 SDK 的已知行为,不是你代码写错了。

  • 不要仅依赖 isEnded 发放核心奖励(如游戏货币、关卡解锁),应结合服务端验证:前端上报播放完成事件,服务端调用穿山甲「激励视频播放完成回调」接口二次确认
  • 前端可加简单时长兜底:用 videoAd.onLoad 记录时间戳,onClose 时计算播放时长,>= 15s 再视为有效(具体阈值参考穿山甲文档)
  • 用户快速划走、切后台、系统弹窗打断等情况,onClose 可能根本不会触发,需监听 onError 并做降级处理(如提示“广告异常,稍后重试”)

load() 和 show() 必须分开调用,且不能省略 catch

很多人图省事写成 ad.load().then(() => ad.show()),但一旦 load() 失败(比如网络超时、广告库存空),show() 就永远不会执行,用户点击按钮毫无反应,还查不出问题。

  • load() 应尽早调用(比如页面 onLoad 后),利用空闲时间预加载;show() 留到用户真实触发动作(如按钮点击)时再调
  • 每次 show() 都必须 .catch,捕获典型错误如 "ad not loaded""ad already showing",并给出明确反馈
  • 避免重复 load():广告实例加载成功后,可缓存并在下次 show() 前检查 ad.loaded(若插件支持)或自行标记状态
  • 激励视频广告有频控限制(如每 30 分钟最多展示 1 次),频繁调用 load() 可能被限流,建议本地记录上次成功展示时间
穿山甲激励视频真正的难点不在写几行 JS,而在于插件选型、平台 ID 对齐、测试环境隔离、以及对 SDK 行为边界的准确预判——尤其是 isEnded 和加载失败这两处,线上最容易出问题。
PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2023

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

4323

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

5430

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

4878

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

683

5

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

2026.09.21

0

20

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

2026.09.21

0

24

NumPy矩阵运算与线性代数计算
NumPy矩阵运算与线性代数计算

本专题整理 NumPy 矩阵运算与线性代数计算相关教程,覆盖矩阵乘法、dot 与 @ 运算符、逆矩阵、行列式、特征值与特征向量、SVD、线性方程组、欧氏距离、矩阵分解和大规模矩阵性能优化等内容,帮助读者掌握 np.linalg 与矩阵计算实战。

2026.09.21

0

20

NumPy广播机制数学运算与统计分析
NumPy广播机制数学运算与统计分析

本专题整理 NumPy 广播机制、数组数学运算与统计分析相关教程,覆盖广播规则、维度对齐、矩阵与数组加减除法、向量化计算、均值方差、分位数、中位数、直方图和 unique 频次统计等场景,帮助读者掌握 ndarray 高效计算与统计处理方法。

2026.09.21

0

17

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.1万人学习