首页 > 其他分享 >【快应用】快应用广告学习之激励视频广告

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

时间:2023-08-17 15:33:44浏览次数:45  
标签:视频 果果 栗栗 广告 应用 rewardedVideoAd 菜菜

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

 

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

  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>

 

【效果展示】

更多信息链接:激励视频参考​​

标签:视频,果果,栗栗,广告,应用,rewardedVideoAd,菜菜
From: https://www.cnblogs.com/mayism123/p/17637720.html

相关文章

  • 11.1 C++ STL 应用字典与列表
    C++STL标准模板库提供了丰富的容器和算法,这些模板可以灵活组合使用,以满足不同场景下的需求。本章内容将对前面学习的知识进行总结,并重点讲解如何灵活使用STL中的vector和map容器,以及如何结合不同的算法进行组合。通过灵活组合使用这些容器和算法,能够满足不同场景下的需求,实现高......
  • 摄像头的RTSP视频如何用H5 来播放
    随着各行各业安防系统的建设,激增了摄像头视频web播放的需要。为此需要一个web播放器来播放摄像头的视频。想做好一个能兼容所有浏览器和所有摄像头编码的web播放器存在很多冲突点。支持h5的浏览器只支持h264和aac编码,而摄像头存在各种编码;摄像头获取流是通过rtsp或GB28181协议,而浏......
  • 11.1 C++ STL 应用字典与列表
    C++STL标准模板库提供了丰富的容器和算法,这些模板可以灵活组合使用,以满足不同场景下的需求。本章内容将对前面学习的知识进行总结,并重点讲解如何灵活使用STL中的vector和map容器,以及如何结合不同的算法进行组合。通过灵活组合使用这些容器和算法,能够满足不同场景下的需求,实现高......
  • 安防视频监控EasyCVR视频汇聚平台关于智能居家的应用方案
    一、方案背景随着现代信息社会的发展,人民的生活水平不断提高,对人身和财产安全的需求也越来越高。在家带孩子的老人现象普遍存在,年轻人在工作之余常常担心家里的状况。有时候出门时忘记关火或带东西等问题,只能返回家中处理,浪费时间。传统的家庭防盗监控系统存在误报率高的问题,无法......
  • 安防监控视频汇聚平台EasyCVR视频平台调用iframe地址无法播放的问题解决方案
    安防监控视频汇聚平台EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供视频监控直播、云端录像、视频云存储、视频集中存储、视频存储磁盘阵列、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、AI算法中台智能分析无缝对接等功能。为了便于用户......
  • 安防监控视频汇聚平台EasyCVR视频平台调用iframe地址无法播放的问题解决方案
    安防监控视频汇聚平台EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供视频监控直播、云端录像、视频云存储、视频集中存储、视频存储磁盘阵列、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、AI算法中台智能分析无缝对接等功能。为了便于用户二......
  • 常见应用的docker-compose.yml配置
    MYSQLversion:"3"services:db:image:mysql:5.7.35privileged:truerestart:alwaysenvironment:MYSQL_ROOT_PASSWORD:CREC_2021TZ:Asia/Shanghaicommand:--lower_case_table_names=1--max_connecti......
  • OTA升级应用缓存不更新
    表现为,ota升级后应用没有更新,比如新内置应用不出现,需要恢复出厂设置才行,这里提供一种办法强制刷新缓存修改PackageManagerService.java这是因为国内版本为了过GMS版本后还能修改版本不让谷歌发现所以把fingerprint锁住了,PMS会在每次开机时根据fingerprint值在/data/system/package_......
  • 构建跨平台的移动应用程序:Xamarin入门
    介绍:在移动应用开发领域,跨平台的解决方案变得越来越受欢迎。Xamarin是一种流行的跨平台移动应用开发框架,它允许开发者使用C#语言来构建同时运行在iOS和Android平台上的应用程序。本篇博客将带您入门Xamarin开发,展示如何构建跨平台的移动应用程序。步骤1:安装和设置环境在开始之前,......
  • LVS专访阿里云席明贤,从视频云2.0到“数能生智”的超长畅谈
    这是一篇人物专访,源自LiveVideoStack与阿里云视频云负责人席明贤(花名右贤)的对话。面对风云变幻的内外环境,阿里云在视频云赛道是坚定向前的,右贤没有回避多媒体当下行业面临的困难以及业务面临的挑战,作为多媒体圈的新人,他用了很多时间调研了解市场和客户,他坚定地选择ToB作为突破口,......