Skip to content

激励视频广告

1. 主要API

1.1 ApexAdxReward

  • com.apex.adx.ApexAdxReward
方法名方法介绍
ApexAdxReward(Activity activity, ApexAdxRewardRequest request, ApexAdxRewardListener listener)构造方法。参数说明:activity(展示广告的 activity)、request(广告请求对象)、 回调监听
loadRewardAd()广告加载。
isReady()广告是否准备好,未准备好广告将无法展示。
show(HashMap<String, String> options)展示广告。参数说明:options(广告展示时的扩展参数,可选)。
show(Activity targetActivity, HashMap<String, String> options)展示广告。targetActivity:指定目标Activity,参数说明:options(广告展示时的扩展参数,可选)。
destroy()销毁广告。

1.2 ApexAdxRewardRequest

  • com.apex.adx.req.ApexAdxRewardRequest
方法名方法介绍
ApexAdxRewardRequest(String pid, String userId, Map<String, Object> options)构造方法。参数说明:pid(广告位Id)、userId(用户Id可选)、options(扩展参数,可传任意)。

1.3 ApexAdxRewardListener

  • com.apex.adx.listener.ApexAdxRewardListener
方法名方法介绍
onVideoAdLoadSuccess(String pid)广告成功加载。参数说明:pid(广告位Id)。
onVideoAdLoadError(ApexAdxError error, String pid)广告加载失败。参数说明:error(报错信息,具体可看其内部code和msg)、pid(报错的广告位Id)。
onVideoAdPlayStart()广告成功展示,媒体可在此记录曝光。
onVideoAdPlayError(ApexAdxError error, String pid)广告播放出错。参数说明:error(报错信息,具体可看其内部code和msg)、pid(报错的广告位Id)。
onVideoAdPlayEnd()广告播放结束。
onVideoAdClicked()广告被点击。
onVideoRewarded(String transId, AdRewardVerify rewardVerify)广告获取奖励。参数说明: transId(标识本次广告播放行为的唯一id)、rewardVerify:奖励对象
onVideoAdClosed()广告关闭。

2. 接入代码示例

2.1 设置监听回调

java
private ApexAdxReward apexAdxReward;

/**
 * PID 必填
 * USER_ID 可选
 * OPTIONS 自定义参数 可选
 */
ApexAdxRewardRequest request = new ApexAdxRewardRequest(PID, USER_ID, OPTIONS);
ApexAdxRewardListener listener = new ApexAdxRewardListener() {
    @Override
    public void onVideoAdLoadSuccess(String pid) {

    }

    @Override
    public void onVideoAdPlayEnd() {

    }

    @Override
    public void onVideoAdPlayStart() {

    }

    @Override
    public void onVideoAdClicked() {

    }

    @Override
    public void onVideoRewarded(String transId, AdRewardVerify rewardVerify) {

    }

    @Override
    public void onVideoAdClosed() {

    }

    /**
     * 加载广告错误回调
     * ApexAdxError 激励视频错误内容
     * pid 广告位
     */
    @Override
    public void onVideoAdLoadError(ApexAdxError error, String pid) {

    }

    /**
     * 播放错误回调
     * ApexAdxError 激励视频错误内容
     * pid 广告位
     */
    @Override
    public void onVideoAdPlayError(ApexAdxError error, String pid) {

    }

}

apexAdxReward = new ApexAdxReward(this, request, listener);

2.2 激励视频广告加载

java
/**
 *同一个reward对象不建议在广告playing中重复load
 *同一个reward对象在onVideoAdClosed中可以load下一次广告
 */
if (apexAdxReward != null) {
    apexAdxReward.loadAd();
}

2.3 激励视频广告播放

java
/**
 * 收到onLoadSuccess回调代表广告已ready
 * option 自定义参数(可选)
 */
if (apexAdxReward != null && apexAdxReward.isReady()) {
    //广告播放,可根据需要是否传入扩展参数,不传可以传入null
    HashMap option = new HashMap();
    option.put("key1", "value1");
    apexAdxReward.show(option);
}
  • 平台默认开启预加载功能。
  • sdk内部会在广告播放中再次去请求广告。
  • 要注意当前页面全局使用同一个ApexAdxReward对象。
  • 广告播放时可先判断isReady(),如果ready直接播放,否则可再次调用loadAd()。
java
private ApexAdxReward apexAdxReward; //全局对象

    /**
     * 加载广告示例
     */
    private void loadAdDemo() {
	   // 先判断全局对象是否不为null 并且 是ready状态,如果是可以直接播放,否则去重新加载
       if (apexAdxReward != null && apexAdxReward.isReady()) {
			apexAdxReward.show(null);
		} else {
			 // 如果对象是null,先创建对象
			if (apexAdxReward == null) {
				ApexAdxRewardRequest apexAdxRewardRequest = new ApexAdxRewardRequest(PID, userId, null);
				apexAdxReward = new ApexAdxReward(MainActivity.this, MainActivity.this, apexAdxRewardRequest, ApexAdxRewardListener);
			}
			// 加载广告
			apexAdxReward.loadRewardAd();
		}
    }

ApexAdx SDK Documentation