跳至主要內容

激励视频广告

大约 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);
}
上次编辑于: