什么是贴片广告

贴片广告是一种在视频播放过程中插入的视频或图片广告。视频广告一般是15s, 可以点跳过按钮直接进入视频播放界面,也可以等广告展示结束自动进入视频播放界面。

贴片广告的优势

相较于其他形式的广告位,贴片广告历史深远,是目前较为普遍的网络视频广告形式。只要用户观看视频,贴片广告就会出现,所以贴片广告的播放量较大,触达率较高。

华为广告服务能够帮助开发者接入包括贴片广告在内的6种广告位。接下来的文章会详细讲解开屏广告的开发步骤。示例代码已在相关社区进行开源,欢迎开发者关注、下载并提供宝贵意见:

Github官方地址:https://github.com/hms-core/hms-ads-demo-java

Gitee官方地址:https://gitee.com/hms-core/hms-ads-demo-java

前提条件

HUAWEI Ads SDK依赖HMS Core(APK)4.0.0.300及以上版本。如果设备上未安装HMS Core(APK)4.0.0.300及以上版本,则无法使用HUAWEI Ads SDK的相关接口。

在开发应用前需要在华为开发者联盟网站上注册成为开发者并完成实名认证,具体方法可参见帐号注册认证。

参见创建项目和在项目中添加应用完成应用的创建。

开发前准备

广告服务的集成需如下4个关键步骤,可以参考华为开发者联盟文档

1. 导入HUAWEI Ads SDK

2. 配置网络权限

3. 配置混淆脚本

4. 初始化SDK

开发关键步骤

1.1 创建InstreamAdLoader。

InstreamAdLoader类提供了InstreamAdLoader.Builder类,可用于设置广告位ID、设置自定义选项和创建InstreamAdLoader对象。

“Java”
// "testy3cglm3pj0"为测试专用的广告位ID,App正式发布时需要改为正式的广告位ID
InstreamAdLoader.Builder builder = new InstreamAdLoader.Builder(context, "testy3cglm3pj0");
// 设置贴片最大时长
InstreamAdLoader adLoader = builder.setTotalDuration(totalDuration) // 设置贴片返回的最大数量 .setMaxCount(maxCount) .setInstreamAdLoadListener(new InstreamAdLoadListener() { @Override public void onAdLoaded(List<InstreamAd> ads) { // 广告获取成功后调用 ... } @Override public void onAdFailed(int errorCode) { // 广告获取失败后调用 ... } }).build();

当获取广告成功后,SDK会调用InstreamAdLoadListener监听器的onAdLoaded()方法返回的InstreamAd对象列表。

当获取广告失败后,SDK会调用InstreamAdLoadListener监听器的onAdFailed()方法。

1.2 获取广告。

InstreamAdLoader提供loadAd()方法获取广告。

InstreamAdLoader.loadAd(new AdParam.Builder().build());

调用loadAd()后,SDK将对添加的监听器方法进行一次成功或失败的回调。

1.3 展示贴片广告。

获取到广告后在监听器的回调方法中展示贴片广告,需要在每个广告视图的一角展示“为什么看到此广告”的图标“i”或者“不再显示该广告”的图标“x”,并且必须展示广告标识。

以下是展示贴片广告的步骤:

定义贴片广告布局。

需要定义一个布局用于展示InstreamAd列表中的广告素材。

<RelativeLayout android:id="@+id/instream_ad_container" android:layout_width="match_parent" android:layout_height="200dp" android:visibility="gone"> <!-- 贴片广告视图 --> <com.huawei.hms.ads.instreamad.InstreamView android:id="@+id/instream_view" android:layout_width="match_parent" android:layout_height="match_parent" /> <!-- 跳过按钮视图 --> <TextView android:id="@+id/instream_skip" android:layout_width="wrap_content" android:layout_height="wrap_content" ... /> <!-- 倒计时视图 --> <TextView android:id="@+id/instream_count_down" android:layout_width="wrap_content" android:layout_height="wrap_content" ... /> <!-- 广告标识视图 --> <TextView android:id="@+id/instream_ad_flag" android:layout_width="wrap_content" android:layout_height="wrap_content" ... /> <!-- 为什么展示此广告视图 --> <ImageView android:id="@+id/instream_why_this_ad" android:layout_width="14dp" android:layout_height="14dp" ... /> <!-- 点击广告跳转按钮 --> <TextView android:id="@+id/instream_call_to_action" android:layout_width="wrap_content" android:layout_height="wrap_content" ... />
</RelativeLayout>
  • 注册广告到广告视图。

获取到InstreamAd对象列表后,需要将广告注册到广告视图。

instreamView.setInstreamAds(ads);
  • 监听广告状态。

贴片广告提供了InstreamMediaStateListener、InstreamMediaChangeListener和MediaMuteListener来监听贴片广告状态。

instreamView.setInstreamMediaChangeListener(new InstreamMediaChangeListener(){ @Override public void onSegmentMediaChange(InstreamAd ad) { // 广告媒体切换 ... }
}); instreamView.setInstreamMediaStateListener(new InstreamMediaStateListener() { @Override public void onMediaProgress(int percent, int playTime) { // 播放过程 ... } @Override public void onMediaStart(int playTime) { // 播放开始 ... } @Override public void onMediaPause(int playTime) { // 播放暂停 ... } @Override public void onMediaStop(int playTime) { // 播放停止 ... } @Override public void onMediaCompletion(int playTime) { // 播放完成 ... } @Override public void onMediaError(int playTime, int errorCode, int extra) { // 播放错误 ... }
}); instreamView.setMediaMuteListener(new MediaMuteListener() { @Override public void onMute() { // 贴片广告静音 ... } @Override public void onUnmute() { // 贴片广告取消静音 ... }
});

销毁广告。

当贴片广告展示结束时,应将贴片广告视图销毁。

instreamView.destroy();

更多应用内广告形式操作指南:

1、应用内添加Banner广告位

2、应用内添加激励广告

3、应用内添加原生广告

4、应用内添加开屏广告

5、应用内添加插屏广告

6、应用内添加贴片广告

>>访问华为广告服务官网,获取华为广告服务开发指导文档

>>请戳华为开发者联盟官网、开发指导文档,了解更多相关内容

>>华为移动服务开源仓库地址:GitHub、Gitee

原文链接:developer.huawei.com/consumer/cn…

原作者:胡椒

变现利器!一文带你学会应用内添加「贴片广告」相关推荐

  1. 一文带你玩转设计模式之「责任链」

    前言 对于已经工作了的小伙伴,你应该是见过"责任链"这种面向对象的设计模式的,还在上学的小伙伴也不用着急,你迟早会接触到的.本文旨在让小白同学和不太熟悉责任链的朋友能够迅速对这一设 ...

  2. 一文带你学会linux系统 史上最全linux命令大全

    一文带你学会linux系统 史上最全linux命令大全 文章目录 linux系统简介 linux命令 1.启动网络命令 2.pwd命令 2.ls命令 3.cd命令 4.mkdir命令 5.rmdir命 ...

  3. 一文带你学会AB实验最佳流程

    如果你对数据分析感兴趣,希望学习更多的方法论,希望听听经验分享, 欢迎移步公众号「小火龙说数据」,更多精彩原创文章与你分享! 「经验」带你掌握AB实验最佳流程https://mp.weixin.qq. ...

  4. 【文末送5本书】与「韦神」齐名,35岁刁晗生任教清华!18岁一战成名,数学界颜值巅峰...

      视学算法报道   编辑:桃子 文末包邮送5本价值百元的高质量技术书籍 [新智元导读]除「韦神」外,北大还有一位和韦东奕并驾齐驱的数学天才.他就是刁晗生,18岁在第46届IMO上一战成名,还一手集齐 ...

  5. java环境变量的配置_一文带你学会Java环境变量配置(小白向)

    很多人初学Java的时候,因为Java环境变量的配置卡的心烦意乱. 又有很多人百度上翻来翻去,得到的答案五花八门,让你头晕眼花. 你肯定也在想,不就是个环境变量的配置吗?为什么搜了那么多答案,依然不能 ...

  6. python绘制饼状图图例_Python图表绘制很简单,一文带你学会如何生成带图例的饼图...

    matplotlib库,作为Python数据可视化的常用库和经典库,咱们已经探讨了多次,并了解了内部多个函数的使用,上次咱们聊了如何在图表中添加各种样式的图例,今天呢,咱们接着上次的内容继续深入聊聊, ...

  7. 一文带你学会0编程基础做木马免杀

    更多渗透技能 ,10余本电子书及渗透工具包,搜公众号:白帽子左一 作者:掌控安全-骚骑 背景 之前分享了个免杀入门文,很浅显,比较适合小白看- 文章在社区,地址我放在这了,有兴趣可以一戳: https ...

  8. 一文带你学会java的jvm精华知识点

    前言 本文分为20多个问题,通过问题的方式,来逐渐理解jvm,由浅及深.希望帮助到大家. Java类实例化时,JVM执行顺序? 正确的顺序如下: 1父类静态代码块 2父类静态变量 3子类静态代码块 3 ...

  9. 一文带你学会基于SpringAop实现操作日志的记录

    前言 大家好,这里是经典鸡翅,今天给大家带来一篇基于SpringAop实现的操作日志记录的解决的方案.大家可能会说,切,操作日志记录这么简单的东西,老生常谈了.不! 网上的操作日志一般就是记录操作人, ...

最新文章

  1. python下载百度网盘文件-python通过百度云api的方式上传或下载文件
  2. [深入理解MySQL系列] - sort_buffer
  3. Springfox-swagger使用详解
  4. openssl rsa密钥
  5. git-工作区与暂存区
  6. android之隐藏状态栏、图标、布局
  7. 前端使用 geetest 行为验证 web-部署教程
  8. python语言字符串逆转顺序_Python字符串逐字符或逐词反转方法
  9. 接口测试流程及测试点
  10. Buck电源设计和电感电容参数介绍
  11. layabox 位移动画旋转动画
  12. Java基础——时间和日期
  13. 计算机研究生期末汇报,研究生学期总结ppt.doc
  14. php完美pdo类封装,PDO类的封装
  15. win10下装mysql-5.7.18-winx64
  16. 2018上期Android学期总结
  17. 可穿戴设备,朝“超人”迈进
  18. 用计算机制作多媒体作品使用的素材都必须,多媒体技术(选择题).doc
  19. C++面经汇总(二)
  20. CDA_Level1_学习笔记1

热门文章

  1. 掌握这些Java 后端面试题,20K妥妥的,400多人在学习
  2. font-spider 压缩字体文件 html vue
  3. 微信公众号通过图片选取接口上传到阿里oss
  4. [转载]傅立叶变换在图像处理中的作用
  5. 软件工程师的薪资为何如此之高
  6. 【华人学者风采】李曙光 中国地质大学(北京)
  7. 私密视频误发到微信群,如何避免视频扩散?
  8. 什么是云原生(cloud native)架构?
  9. Elasticsearch学习(四) - 查询①
  10. java绘制杨辉三角