激励视频广告
大约 4 分钟
激励视频广告
概述
激励视频广告是一种全屏视频形式,用户完整观看后可领取奖励。这种广告常见于游戏中,如复活、获取道具或额外通关奖励等场景,以及应用内的增值服务,例如单次体验付费功能。
广告加载和展示
使用SAAllianceAdSdk.getSAAllianceAdManager().createSAAllianceAd()获取SAAllianceAd
接口类型对象;
调用loadSARewardAd(SAAllianceAdParams params, SARewardVideoAdLoadListener listener)
进行广告加载;
调用showRewardAd(Activity activity)
方法进行广告展示。
SAAllianceAd激励视频相关方法说明
方法 | 说明 |
---|---|
加载激励视频广告 | |
展示激励视频广告,传入激励视频广告视图所要的Activity。 在 SARewardVideoAdLoadListener.onRewardVideoAdLoad() 回调后调用 |
SARewardVideoAdLoadListener说明
方法 | 说明 |
---|---|
加载成功, | |
加载失败,code 错误码,message 错误信息 | |
广告素材加载成功 | |
void onTimeOut() | 加载超时 |
SARewardVideoAd说明
加载获取到的激励视频广告实例,用于生命周期监听,获取价格等
方法 | 说明 |
---|---|
设置生命周期监听,在调用 | |
获取广告价格,单位:分 | |
销毁广告 |
loadSARewardAd方法说明
参数 | 说明 | 是否必填 |
---|---|---|
广告参数 | 必填 | |
插屏广告加载结果回调 | 必填 |
SAAllianceAdParams说明
SARewardVideoAdInteractionListener广告生命周期回调
方法 | 说明 |
---|---|
void onAdShow() | 激励视频广告展示 |
void () | 激励视频广告关闭 |
void () | 激励视频广告视频播放完毕 |
视频播放错误 | |
广告点击 | |
发放奖励(未启用服务端验证时,) |
RewardInfo说明
方法 | 说明 |
---|---|
isValid() | 验证结果 |
getUserId() | 用户ID |
getTransId() | 标识ID |
getRewardAmount() | 奖励名称 |
getRewardName() | 奖励数量 |
getErrorCode() | 服务端错误码 |
getErrorMsg() | 服务端错误信息 |
getExtraInfo() | 额外信息 |
请求激励视频广告示例
private void loadRewardVideoAd(Activity context, String sposId) {
//设置广告参数
SAAllianceAdParams params = new SAAllianceAdParams();
params.setPosId(sposId); //设置广告位ID
params.setMute(true); //设置视频素材是否默认静音,默认为true
params.setUserId("此处填写UserId"); //可选,可用于服务端验证
params.setExtraInfo("此处填写额外信息"); //可选,可用于服务端验证
//广告对象初始化
SAAllianceAd saAllianceAd = SAAllianceAdSdk.getSAAllianceAdManager().createSAAllianceAd(context);
saAllianceAd.loadSARewardAd(params, new SARewardVideoAdLoadListener() {
@Override
public void onRewardVideoAdLoad(SARewardVideoAd saRewardVideoAd) {
if (saRewardVideoAd == null) {
Log.e(TAG, "广告加载失败");
return;
}
String ecpm = saRewardVideoAd.getECPM(); //获取广告价格,单位分
//设置广告交互监听
saRewardVideoAd.setRewardVideoAdInteractionListener(new SARewardVideoAdInteractionListener() {
@Override
public void onAdShow() {
Log.i(TAG, "广告成功展示");
}
@Override
public void onAdClose() {
Log.i(TAG, "广告关闭");
destroyRewardVideoAd();//在这里销毁广告
}
@Override
public void onAdClick() {
Log.i(TAG, "广告点击");
}
@Override
public void onVideoComplete() {
Log.i(TAG, "视频播放完成");
}
@Override
public void onVideoError() {
Log.e(TAG, "视频发生错误");
}
@Override
public void onRewardVerify(RewardInfo rewardInfo) {
Log.i(TAG, "用户已完成奖励时间的观看");
if (rewardInfo != null) {
Log.i(TAG, rewardInfo.isValid() + "\n"
+ rewardInfo.getRewardAmount() + "\n"
+ rewardInfo.getExtraInfo() + "\n"
+ rewardInfo.getRewardName()+ "\n"
+ rewardInfo.getErrorMsg() + "\n"
+ rewardInfo.getErrorCode() + "\n"
+ rewardInfo.getUserId() + "\n"
+ rewardInfo.getTransId() + "\n"
);
}
}
}); //setRewardVideoAdInteractionListener end
//展示广告
if (saAllianceAd != null && activity != null) {
saAllianceAd.showRewardAd(activity);
}
} //onRewardVideoAdLoad end
@Override
public void onError(int code, String message) {
Log.e(TAG, "广告加载失败,code = " + code + ", message = " + message);
}
@Override
public void onResourceLoad() {
}
}); //loadSARewardAd end
}
private void destroyRewardVideoAd() {
Log.i(TAG, "销毁广告");
if (saRewardVideoAd != null) {
saRewardVideoAd.destroy();
saRewardVideoAd = null;
}
}
广告展示
建议在loadSARewardAd方法加载完毕后,再调用showRewardAd方法进行广告展示
if (saAllianceAd != null && activity != null) {
saAllianceAd.showRewardAd(activity);
}