【快应用】快应用广告学习之激励视频广告

news2024/9/24 1:25:40

【关键词】
快应用、激励视频广告、广告接入

【介绍】
一、关于激励视频广告

  1.  定义:用户通过观看完整的视频广告,获得应用内相关的奖励。
  2. 适用场景:游戏/快游戏的通关、继续机会、道具获取、积分等场景中,阅读、影音等应用的权益体系也有相关使用。
  3. 支持格式:横版视频、竖版视频。

二、实现流程

  1. 调用ad.getProvider()判断是否支持广告服务,如果返回空字符串,则无法使用广告服务。
  2. 通过 const rewardedVideoAd=ad.createRewardedVideoAd()创建广告。
  3. 调用rewardedVideoAd.load()拉取广告数据,成功拉取广告数据后再显示广告的播放入口。成功执行rewardedVideoAd.onLoad()回调。失败执行rewardedVideoAd.onError回调。
  4. 调用rewardedVideoAd.show()上报广告曝光。
  5. 调用rewardedVideoAd.onClose()监听激励视频广告的关闭。
  6. 关闭广告前调用rewardedVideoAd.load()获取下一次广告的数据。
  7. 当应用页面销毁时,调用rewardedVideoAd.destory()销毁激励视频广告。

【代码实现】

这里通过一个简单的在阅读中通过观看激励视频广告解锁章节的demo来加深一下对这块的掌握。

<template>
  <!-- Only one root node is allowed in template. -->
  <div class="container">
    <div>
      <text class="title">第{{titleNum}}章</text>
      <text class="title">{{title}}</text>
    </div>
    <div class="cont">
      <div style="flex-direction: column" show="{{!nextSection}}">
        <text class="content">这一段写啥?我想写啥就写啥?啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥啥</text>
        <text class="content">这一段写设什么?我也不知道写啥,那怎么办,写一颗菠菜吧,菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜菜</text>
        <text class="content">我是一个苹果,果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果</text>
        <text class="content">我是一个栗子,栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗栗</text>
      </div>
      <div style="flex-direction: column" show="{{nextSection}}">
        <text class="content">我是一个有信仰的梨子,梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨梨</text>
        <text class="content">最后一段了,来个水果大集合吧,果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果果</text>
      </div>
    </div>
    <div style="width: 100%; display: flex; justify-content: space-between; margin: 0 20px">
      <text class="title" show="{{nextSection}}" onclick="backClick">上一章</text>
      <text class="title next" onclick="nextClick" show="{{!nextSection}}">下一章</text>
    </div>
  </div>
</template>

<style>
    .container {
      flex-direction: column;
    }
    .clickStyle {
      height: 100px;
      width: 100%;
      background-color: #00bfff;
      color: #4b0082;
      font-size: 50px;
      font-weight: 500;
    }
    .img {
      width: 100%;
      height: 300px;
    }
    .title {
      font-size: 36px;
      font-weight: bold;
      margin-right: 20px;
      color: #4a90e2;
    }
    .next {
      left: 550;
    }
    .content {
      font-size: 36px;
      letter-spacing: 2px;
      text-indent: 2em;
    }
    .cont {
      width: 100%;
    }
</style>

<script>
    import ad from '@service.ad'
    import prompt from '@system.prompt';
    let rewardedVideoAd
    module.exports = {
        data: {
            componentName: 'ad',
            provider: '',
            title: `我是一个有信仰的水果`,
            titleNum: 1,
            imgSrc: '/Common/logo.png',
            componentData: {},
            nextSection: false,
            adStyle: {
                backgroundColor: '#4A90E2'
            },
            rewarded: {
                adUnitId: "testx9dtjwj8hp",
                errStr: ""
            }
        },
        onInit() {
            // this.$page.setNavigationBar({visible: false})
            this.$page.setTitleBar({
                text: 'adExample',
                textColor: '#ffffff',
                backgroundColor: '#007DFF',
                backgroundOpacity: 0.5,
                menu: true
            })
        },
        onReady(options) {
            this.loadRewardAd();
        },
        loadRewardAd() {
            // 判断是否支持广告服务,如果返回空字符串,则无法使用广告服务
            this.provider = ad.getProvider(); 
            console.log("getProvider : " + this.provider)
            if (this.provider !== "huawei") {
                console.info("the device does not support ad.");
                return;
            }
            // 创建广告
            rewardedVideoAd = ad.createRewardedVideoAd({
                adUnitId: this.rewarded.adUnitId
            });
            // 拉取广告成功
            rewardedVideoAd.onLoad(() => {
                this.rewarded.errStr = "";
                console.log("onRewardedLoaded")
            });
            // 拉取广告失败
            rewardedVideoAd.onError(e => {
                console.error("load rewarded video ad error:" + JSON.stringify(e));
                this.rewarded.errStr = JSON.stringify(e);
            });
            // 监听激励视频广告的关闭
            rewardedVideoAd.onClose(res => {
                console.log("rewarded ad onClose is watch end: " + res.isEnded);
                if (res.isEnded) {
                    var that = this
                    that.titleNum = that.titleNum + 1
                    that.title = '民族有希望'
                    this.nextSection = true
                    prompt.showToast({
                        message: "成功解锁章节!",
                        duration: 2000,
                        gravity: "center"
                    });
                }
                //下一次广告预加载
                rewardedVideoAd.load();
            });
            // 拉取广告数据
            rewardedVideoAd.load();
        },
        backClick() {
            this.nextSection = false
        },
        nextClick(e) {
            console.log(e, '---->')
            if (!this.nextSection) {
                prompt.showDialog({
                    title: '观看视频免费解锁下一章节',
                    message: '当前免费章节已试读完毕,观看视频免费解锁下一章节!',
                    buttons: [
                        {
                            text: '确定',
                            color: '#4a90e2'
                        },
                        {
                            text: '取消',
                            color: 'red'
                        }
                    ],
                    success: function (data) {
                        console.log("handling callback", data.index, data.index === 0);
                        if (data.index === 0) {
                            // 上报广告曝光
                            rewardedVideoAd.show();
                        } else {
                            console.log(rewardedVideoAd)
                            // 销毁激励视频广告
                            rewardedVideoAd && rewardedVideoAd.destroy();
                        }
                    }
                })
                return
            }
        }
    }
</script>

【效果展示】

cke_53534.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/890610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二、SQL,如何实现表的创建和查询

1、新建表格&#xff08;在当前数据库中新建一个表格&#xff09;&#xff1a; &#xff08;1&#xff09;基础语法&#xff1a; create table [表名]( [字段:列标签] [该列数据类型] comment [字段注释], [字段:列标签] [该列数据类型] comment [字段注释], ……&#xff0c…

Spring Clould 服务间通信 - Feign

视频地址&#xff1a;微服务&#xff08;SpringCloudRabbitMQDockerRedis搜索分布式&#xff09; Feign-基于Feign远程调用&#xff08;P30&#xff09; 先来看我们以前利用RestTemplate发起远程调用的代码&#xff1a; 存在下面的问题&#xff1a; 代码可读性差&#xff0c…

字符设备驱动分布注册

驱动文件&#xff1a; 脑图&#xff1a; 现象&#xff1a;

初识Sentinel

目录 1.解决雪崩的方式有4种&#xff1a; 1.1.2超时处理&#xff1a; 1.1.3仓壁模式 1.1.4.断路器 1.1.5.限流 1.1.6.总结 1.2.服务保护技术对比 1.3.Sentinel介绍和安装 1.3.1.初识Sentinel 1.3.2.安装Sentinel 1.4.微服务整合Sentinel 2.流量控制 2.1.簇点链路 …

设计必备:6个免费PNG图片素材网站推荐

本文推荐了6个PNG图片素材网站,种类繁多、质量上乘,完全免费下载。这些网站收录了海量经过抠图处理的PNG图片,设计师无需操心抠图,直接搜索下载需要的图片进行创作,可以极大地提高工作效率,节约时间成本。获取这些高质量的PNG图片素材,你就可以无后顾之忧地进行创作设计了。不用…

Hive的窗口函数与行列转换函数及JSON解析函数

1. 系统内置函数 查看系统内置函数&#xff1a;show functions ; 显示内置函数的用法&#xff1a; desc function lag; – lag为函数名 显示详细的内置函数用法: desc function extended lag; 1.1 行转列 行转列是指多行数据转换为一个列的字段。 Hive行转列用到的函数 con…

内网穿透——使用Windows自带的网站程序建立网站

文章目录 1.前言2.Windows网页设置2.1 Windows IIS功能设置2.2 IIS网页访问测试 3. Cpolar内网穿透3.1 下载安装Cpolar3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5.结语 1.前言 在网上各种教程和介绍中&#xff0c;搭建网页都会借助各种软件的帮助&#xff0c;比如…

什么是骨传导耳机?骨传导耳机伤耳膜吗?骨传导耳机科普来了!

骨传导耳机是一种以骨骼为传导介质的耳机&#xff0c;因为佩戴时候传音是通过骨骼来传递&#xff0c;骨传导耳机不会堵塞耳道&#xff0c;也不需要依赖耳膜传递声音&#xff0c;有效地保护听力。因此&#xff0c;骨传导耳机的问世为人们提供了全新的选择。 随着骨传导耳机被越来…

Redis监听Key的过期事件

前言 试想一个业务场景&#xff0c;订单超过30分钟未支付需要做自动关单处理,修改订单状态&#xff0c;库存回退等&#xff0c;你怎么实现&#xff1f;方案一&#xff1a;可以使用定时任务扫表&#xff0c;通过支付状态和下单时间来判断是否支付过期。但是这样的方案是非常消耗…

ctfshow-web9

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 拿到一个站的时候一定要看robots.txt文件 访问一下 看到一个phps&#xff0c;然后下载一下 看到md5&#xff0c;参考这个https://blog.csdn.net/HAI_WD/article/details/132345156?spm1001.2014.3001.5501 …

CS5523原理图|CS5523设计电路图|MIPI转eDP信号转换方案|替代LT8911芯片方案

CS5523设计MIPI转eDP信号转换方案&#xff0c;应用DSI转eDP信号转接方案&#xff0c;使用单个1.8V电源&#xff0c;节省了成本并优化了板空间。适用于多个细分市场和显示应用&#xff0c;主板、双面板显示器和车载显示器等。CS5523设计电路图 &#xff1a; 目前市场上主流的高清…

音视频FAQ(三):音画不同步

摘要 本文介绍了音画不同步问题的五个因素&#xff1a;编码和封装阶段、网络传输阶段、播放器中的处理阶段、源内容产生的问题以及转码和编辑。针对这些因素&#xff0c;提出了相应的解决方案&#xff0c;如使用标准化工具、选择强大的传输协议、自适应缓冲等。此外&#xff0…

〔010〕Stable Diffusion 之 VAE 篇

✨ 目录 🎈 什么是VAE🎈 开启VAE🎈 下载常见的VAE🎈 对比不同VAE生成的效果🎈 什么是VAE VAE:是 Variational Auto-Encoder 的简称,也就是变分自动编码器可以把它理解成给图片加滤镜,现在的很多大模型里面已经嵌入了 VAE,所以并需要额外添加 VAE如果你发现生成的…

【第二讲---初识SLAM】

SLAM简介 视觉SLAM&#xff0c;主要指的是利用相机完成建图和定位问题。如果传感器是激光&#xff0c;那么就称为激光SLAM。 定位&#xff08;明白自身状态&#xff08;即位置&#xff09;&#xff09;建图&#xff08;了解外在环境&#xff09;。 视觉SLAM中使用的相机与常见…

Android Hook技术学习——常见的hook技术方案

一、前言 最近一段时间在研究Android加壳和脱壳技术&#xff0c;其中涉及到了一些hook技术&#xff0c;于是将自己学习的一些hook技术进行了一下梳理&#xff0c;以便后面回顾和大家学习。 本文第二节主要讲述编译原理&#xff0c;了解编译原理可以帮助进一步理解hook技术 本文…

基于springboot的企业进销存管理系统/进销存管理系统/库存管理系统

摘 要 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括企业进销存管理系统的网络应用&#xff0c;在外国企业进销存管理已经是很普遍的方式&#xff0c;不过国内的企业进销存管理可能还处于起步阶段。企业进销存管理系统具有…

图论相关问题

1. 拓扑排序bitset 第一次使用bitset&#xff0c;复杂度&#xff1a;N/32&#xff0c;比N小 所以总的时间复杂度为O(N*(NM)/32) #include <iostream> #include <bitset> #include <queue> using namespace std; const int N 3e420; bitset<N> f[N];…

高教杯数学建模2020C题总结

&#x1f9e1;1. 前言&#x1f9e1; 跟队友花了三天模拟2020C题&#xff0c;现在整理一下一些数据处理的代码&#xff0c;以及在模拟中没有解决的问题。方便以后回溯笔记。 &#x1f9e1;2. 数据处理&#x1f9e1; 2.1 导入数据&#xff0c;并做相关预处理 import pandas a…

Java课题笔记~ 自定义拦截器实现权限验证

实现一个权限验证拦截器。 1、修改web.xml文件中请求路径 2、将所有的页面放入WEB-INF目录下 3、开发登录FirstController 4、开发拦截器 5、配置springmvc.xml文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.spri…

TDD(测试驱动开发)?

01、前言 很早之前&#xff0c;曾在网络上见到过 TDD 这 3 个大写的英文字母&#xff0c;它是 Test Driven Development 这三个单词的缩写&#xff0c;也就是“测试驱动开发”的意思——听起来很不错的一种理念。 其理念主要是确保两件事&#xff1a; 确保所有的需求都能被照…