-
Notifications
You must be signed in to change notification settings - Fork 46
3.5 激励视频广告
luyao edited this page Dec 21, 2021
·
3 revisions
集成最佳实践:
- 适用场景:激励视频广告在游戏 APP 使用较多,比如通关失败后通过观看激励视频广告,用户可获取复活机会。此外,一些非游戏类 APP,也可通过植入 5-15 秒(甚至更长)的激励视频广告,让用户通过主动观看来享受到一些福利奖励、付费功能/权限等——比如网盘类 APP 通过观看激励视频广告来获取空间;视频、音频、音乐类 APP 通过观看激励视频广告来获取视频/音频/音乐免费观看或收听特权;图片类 APP 通过观看激励视频广告来获取图片下载特权;阅读类 APP 通过观看激励视频广告来获取书籍/漫画阅读特权等。
- 常见尺寸:激励视频广告常见为竖屏,比例 9:16,尺寸 720x1280;也有些 APP 采用横版样式,比例 16:9,尺寸 1280x720。
- 一些建议:广告植入密度不要过于频繁,以免拉低媒体调性和用户好感度; 将广告植入在既能刺激用户主动观看,同时又兼顾不对用户正常使用体验产生影响的位置。
- 激励达成事件请在广告激励回调
onAdReward
中进行,如需服务器回调,需要翻阅个平台中文档说明来了解,本SDK不参与服务端回调功能。 - 支持提前加载广告(注意控制时机,不可过早提前),但要注意,一次展示需对应一个广告实例,切忌复用广告实例。
加载广告核心方法,详细请参考demo中代码:
public class RewardVideoActivity extends BaseActivity {
EasyAdRewardVideo rewardVideo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_reward_video);
}
public void onLoad(View view) {
rewardVideo = new EasyADController(this).initReward("reward_config.json");
rewardVideo.loadOnly();
}
public void onShow(View view) {
if (rewardVideo != null) {
rewardVideo.show();
} else {
EasyADController.logAndToast(this, "需要先调用loadOnly()");
}
}
public void loadAndShow(View view) {
new EasyADController(this).initReward("reward_config.json").loadAndShow();
}
}
EasyADController中相关处理代码:
/**
* 加载并展示激励视频广告。
* 也可以选择性先提前加载,然后在合适的时机再调用展示方法
*/
public EasyAdRewardVideo initReward(String jsonFileName) {
//必须:核心事件监听回调
EARewardVideoListener listener = new EARewardVideoListener() {
@Override
public void onAdSucceed() {
logAndToast(mActivity, "广告加载成功");
}
@Override
public void onAdExposure() {
logAndToast(mActivity, "广告展示");
}
@Override
public void onAdFailed(EasyAdError error) {
logAndToast(mActivity, "广告加载失败 code=" + error.code + " msg=" + error.msg);
}
@Override
public void onAdClicked() {
logAndToast(mActivity, "广告点击");
}
@Override
public void onVideoCached() {
logAndToast(mActivity, "广告缓存成功");
}
@Override
public void onVideoComplete() {
logAndToast(mActivity, "视频播放完毕");
}
@Override
public void onVideoSkip() {
}
@Override
public void onAdClose() {
logAndToast(mActivity, "广告关闭");
}
@Override
public void onAdReward() {
logAndToast(mActivity, "激励发放");
}
@Override
public void onRewardServerInf(EARewardServerCallBackInf inf) {
//优量汇和穿山甲支持回调服务端激励验证信息,详见RewardServerCallBackInf中字段信息
logAndToast(mActivity, "onRewardServerInf" + inf);
}
};
//初始化,注意需要时再初始化,不要复用。
EasyAdRewardVideo easyRewardVideo = new EasyAdRewardVideo(mActivity, listener);
baseAD = easyRewardVideo;
//必须:设置策略信息
easyRewardVideo.setData(getJson(mActivity, jsonFileName));
return easyRewardVideo;
}
- EasyAdRewardVideo
方法名 | 方法介绍 |
---|---|
EasyAdRewardVideo(Activity activity, EARewardVideoListener listener) | 构造方法 |
setYlhVolumeOn(boolean vo) | 优量汇特有设置,是否开启声音,默认false不开启 |
setYlhSSVO(ServerSideVerificationOptions options) | 优量汇特有设置,设置服务器检验选项,具体参考优量汇官方说明文档 |
setCsjOrientation(int csjOrientation) | 穿山甲特有设置,设置广告展示的屏幕方向,默认竖屏 |
setCsjMediaExtra(String mediaExtra) | 穿山甲特有设置,媒体补充信息,用于和服务端检验使用 |
setCsjUserId(String userId) | 穿山甲特有设置,用户id |
setCsjRewardName(String rewardName) | 穿山甲特有设置,穿山甲奖励名称 |
setCsjRewardAmount(int rewardAmount) | 穿山甲特有设置,穿山甲奖励数量 |
addCustomSupplier(String sdkTag, EABaseSupplierAdapter adapter) | 通用方法,添加自定义SDK的适配器 |
getSupplierInf() | 通用方法,获取当前正在执行的渠道信息,可以在Listener的任意事件回调中获取,方便统计执行情况。 |
getReqId() | 通用方法,获取当前策略执行的唯一id,方便统计 |
setData(String strategyJson) | 通用方法,设置策略执行数据,为固定格式的json字符串 |
loadOnly() | 通用方法,仅拉取广告 |
show() | 通用方法,展示广告,和loadOnly()方法搭配使用 |
loadAndShow() | 通用方法,拉取并展示广告 |
destroy() | 通用方法, 销毁广告 |
- EARewardVideoListener
方法名 | 方法介绍 |
---|---|
onVideoCached() | 视频缓存成功 |
onVideoComplete() | 视频播放完毕 |
onVideoSkip() | 视频跳过,部分SDK会回调此方法 |
onAdReward() | 广告激励达成 |
onRewardServerInf(EARewardServerCallBackInf inf) | 激励视频返回的服务器回调信息,穿山甲一直支持,优量汇自v4.330.1200 开始支持,百度9.13开始支持 |
onAdSucceed() | 通用回调方法,成功加载到广告 |
onAdExposure() | 通用回调方法,广告曝光 |
onAdClicked() | 通用回调方法,广告点击 |
onAdClose() | 通用回调方法,广告关闭 |
onAdFailed(EasyAdError easyAdError) | 通用回调方法,广告失败,easyAdError包含了具体的失败原因,easyAdError可能为null |