变现利器!一文带你学会应用内添加「贴片广告」
Posted 华为移动服务
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了变现利器!一文带你学会应用内添加「贴片广告」相关的知识,希望对你有一定的参考价值。
什么是贴片广告
贴片广告是一种在视频播放过程中插入的视频或图片广告。视频广告一般是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、应用内添加贴片广告
>>访问华为广告服务官网,获取华为广告服务开发指导文档
关注我们,第一时间了解华为移动服务最新技术资讯~
以上是关于变现利器!一文带你学会应用内添加「贴片广告」的主要内容,如果未能解决你的问题,请参考以下文章