激励广告
激励广告
此章节将演示如何请求在原生
环境下请求与展示激励广告
激励广告是用户通过观看短视频,获取应用内奖励(游戏的复活,任务奖励,游戏金币)等,具体场景由开发者定义
请求激励广告
提示
激励广告需要传入正确的用户ID,错误或空的用户ID会影响收益
调用ZJRewardedAd#loadAd
的重载方法请求广告,并在ZJRewardedAdLoadListener
中获取广告对象与处理错误信息
public class ZJRewardedAd {
public static void loadAd(Activity activity, String posId, String userId, ZJRewardedAdLoadListener loadListener);
public static void loadAd(final Activity activity, final String posId, final String userId, final String extra, final boolean isVolumeOn, final ZJRewardedAdLoadListener loadListener);
/**
* 加载广告
*
* @param activity 当前Activity
* @param posId 广告位ID
* @param userId 用户ID
* @param extra 透传信息,可空
* @param isVolumeOn 是否开启声音
* @param flags {@link com.zj.zjsdk.ZJConstants.RequestFlags}
* @param loadListener 加载回调
*/
public static void loadAd(final Activity activity, final String posId, final String userId, final String extra, final boolean isVolumeOn, final int flags, final ZJRewardedAdLoadListener loadListener);
}
加载回调说明
方法 | 说明 |
---|---|
onError(int code, String msg) | 广告加载出错 code: 错误码 msg: 错误信息 |
onAdLoaded(ZJRewardedAd rewardedAd) | 广告加载成功 rewardedAd: 广告对象 |
提示
激励广告接入的注意事项见常见问题-激励广告
展示激励广告
在加载成功回调中获取到ZJRewardedAd
对象后,可以配置交互回调、校验有效性,并展示广告
ZJRewardedAd 说明
方法 | 说明 |
---|---|
boolean isValid() | 判断当前广告是否有效(预加载时在展示前需要判断) |
setAdInteractionListener(ZJRewardedAdInteractionListener interactionListener) | 配置交互回调 |
show(Activity activity) | 广告展示,需要传入当前的 activity 对象 |
校验激励广告有效性
如应用有预加载机制,缓存了ZJRewarded
广告对象,需要在广告展示前调用ZJRewardedAd#isValid()
方法判断广告的有效性,在返回否时重新请求广告
交互回调说明
方法 | 说明 |
---|---|
onRewardedAdShow() | 激励展示 |
onRewardedAdClick() | 激励点击 |
onRewardedAdShowError(int code, String msg) | 广告展示失败 code: 错误码 msg: 错误信息 |
onRewardVerify(String tradeId) | 广告播放达到要求会回调此方法开发者需在此进行发奖(交易ID,可能为空字符串) |
onRewardedAdClose() | 广告关闭 |
激励广告接入示例
注意
userId
为必传参数,传入的值需要保证唯一性,可以为转码或加密后的结果,但不可以拼接时间戳、随机数等不固定的值,长度不大于32位
// 加载广告 userId -> 必须传入
ZJRewardedAd.loadAd(this, posId, userId, new ZJRewardedAdLoadListener() {
@Override
public void onError(int code, @NonNull String msg) {
Log.e("ZJRewardAd", "激励广告加载出错" + code + "-" + msg);
}
@Override
public void onAdLoaded(@NonNull ZJRewardedAd rewardedAd) {
// 激励广告加载成功,配置交互回调
rewardedAd.setAdInteractionListener(MainActivity.this);
rewardedAd.show(MainActivity.this);
}
});
// 加载广告 userId -> 必须传入
ZJRewardedAd.loadAd(this, posId, userId, object : ZJRewardedAdLoadListener {
override fun onError(code: Int, msg: String) {
Log.e("ZJRewardAd", "激励广告加载出错$code-$msg")
}
override fun onAdLoaded(rewardedAd: ZJRewardedAd) {
// 激励广告加载成功,配置交互回调
rewardedAd.setAdInteractionListener(this@MainActivity)
rewardedAd.show(this@MainActivity)
}
})