1. 介绍
1.1 集成建议
(1) 展示广告:
- 展示前判断
isAdReady()
是否准备好,准备好后再调用show进行广告展示;若未准备好则发起广告加载,等待广告加载成功;如果需要在加载成功的回调(onRewardedVideoAdLoaded)
中展示广告,必须先判断当前应用在前台才能执行展示方法,否则有可能会引起广告在应用外展示或者无法正常展示的情况;
(2) 广告预加载:
- 请提前调用加载方法进行广告的请求(比如在应用启动就开始加载广告),以便需要触发广告时可以快速展示
- 在广告展示后,
onRewardedVideoAdPlayStart
的回调中无需isAdReady
判断,直接调用load
进行预加载 (有助于提升优先级比较高的广告源的展示量)
2. API说明
2.1 广告加载
ATRewardVideoAd: RewardedVideo广告的加载类
方法 | 说明 |
---|---|
ATRewardVideoAd(Context context, String rewardTakuPlacementID) | RewardedVideo广告的初始化方法,其中rewardTakuPlacementID是通过Taku后台创建激励视频广告位获取的。 context:如果有集成以下平台:Ironsource、Kidoz、Maio、Tapjoy,context必须是Activity |
void setLocalExtra(Map) | |
void load() | 发起广告加载 |
void load(Context context) | 发起广告加载,开发者可通过调用此方法使用指定的Context进行广告的加载 |
2.2 本地参数
ATAdConst.KEY:LocalExtra本地参数预定义Key取值
方法 | 说明 |
---|---|
USER_ID | (可选)用于服务器激励,用户唯一ID |
USER_CUSTOM_DATA | (可选)用于服务器激励,用户自定义数据 |
广告加载:
//注意:广告对象必须要全局引用,如果广告对象是临时变量会导致广告加载过程中有可能被回收,无法接收广告事件回调
ATRewardVideoAd mRewardVideoAd;
private void loadAd() {
if (mRewardVideoAd == null) {
mRewardVideoAd = new ATRewardVideoAd(this, rewardTakuPlacementID);
}
String userid = "test_userid_001";
String userdata = "test_userdata_001";
Map localMap = new HashMap<>();
localMap.put(ATAdConst.KEY.USER_ID, userid);
localMap.put(ATAdConst.KEY.USER_CUSTOM_DATA, userdata);
//Load时传自定义参数,在广告源填充之后自定义参数会保存起来,在展示时回传。适用场景:传入会话信息做防作弊类似
mRewardVideoAd.setLocalExtra(localMap);
mRewardVideoAd.load();
}
Load时传自定义参数,在广告源填充之后自定义参数会跟广告源缓存一起保存起来。如果希望在展示时传入自定义参数,请更新Taku SDK v6.3.10及以上版本。
2.3 广告对象
ATRewardVideoAd:
方法 | 说明 |
---|---|
checkAdStatus | 获取当前广告位的状态对象 ATAdStatusInfo,ATAdStatusInfo对象的API说明见下方 |
checkValidAdCaches | 查询当前广告位的所有缓存信息的ATAdInfo对象 ATAdInfo:广告的信息对象,可区分广告平台,主要包含第三方聚合平台的id信息 见ATAdInfo信息说明 |
ATAdStatusInfo:广告位的状态对象
方法 | 说明 |
---|---|
boolean isLoading() | 判断当前广告位是否正在加载广告 |
boolean isReady() | 判断当前广告位是否存在可展示的广告,与ATRewardVideoAd.isAdReady()方法作用相同 |
getATTopAdInfo | 获取当前广告位优先级最高的广告缓存信息 ATAdInfo对象 ATAdInfo:广告的信息对象,可区分广告平台,主要包含第三方聚合平台的id信息 见ATAdInfo信息说明 |
2.4 广告展示
ATRewardVideoAd:
方法 | 说明 |
---|---|
boolean isAdReady() | 判断当前RewardedVideo是否存在可展示的广告 |
void show(Activity activity) | 展示RewardedVideo广告(建议使用) |
void show(Activity activity, ATShowConfig showConfig) | (v6.3.10新增)展示RewardedVideo广告。可通过ATShowConfig传入展示时的额外参数 1.ATShowConfig#showCustomExt(String showCustomExt):可传入展示时自定义参数,传入的该参数将通过ATAdInfo#getShowCustomExt()返回 2.ATShowConfig#scenarioId(String scenarioId):可传入广告场景,同show(Activity activity, String scenario)方法 |
void entryAdScenario(String placementId, String scenarioId) | 进入业务场景当前广告位缓存状态统计。其中scenario是指广告展示场景(非必传,可以直接传null),可从后台创建场景参数和使用请参考 业务场景缓存状态统计 |
广告展示:
private void showAd() {
/*
为了统计场景到达率,相关信息可查阅 "https://help.takuad.com/docs/1RWLAv"
在满足广告触发条件时调用“进入广告场景”方法,比如:
** 广告场景是在清理结束后弹出广告,则在清理结束时调用;
* 1、先调用 "entryAdScenario"
* 2、在调用 "isAdReady" 是否可展示
* 3、最后调用 "show" 展示
* 4、scenario 传入场景id后台场景管理才会有数据显示
*/
ATRewardVideoAd.entryAdScenario("your rv placementID", "your scenarioID");
if (mRewardVideoAd.isAdReady()) {
mRewardVideoAd.show(activity,"your scenarioID");
}
}
展示时传入自定义参数:
Taku SDK v6.3.10及以上开始支持开发者在展示时传入自定义参数,展示时传入的自定义参数跟Load时传入的自定义参数相互独立。展示时传入自定义参数可以在Taku SDK回调信息中返回,同时Taku的服务端激励回调也支持返回展示时传入的自定义参数。
2.5广告监听
ATRewardVideoAd:
方法 | 说明 |
---|---|
setAdListener(ATRewardVideoListener listener) | 设置RewardedVideo广告监听回调,其中ATRewardVideoListener是需要实现广告事件回调的接口类 |
setAdDownloadListener(ATAppDownloadListener listener) | 设置下载状态监听回调 listener:下载状态的事件回调监听 目前仅支持以下平台:穿山甲 |
setAdSourceStatusListener(ATAdSourceStatusListener listener) | 设置广告源层级事件监听回调,其中ATAdSourceStatusListener是需要实现广告源层级事件回调的接口类见ATAdSourceStatusListener说明 |
ATRewardVideoListener:RewardedVideo广告的事件回调监听:
方法 | 说明 |
---|---|
void onRewardedVideoAdLoaded() | 广告加载成功回调 |
void onRewardedVideoAdFailed(AdError error) | 广告加载失败回调,可通过AdError.getFullErrorInfo()获取全部错误信息,请参考 AdError 注意:禁止在此回调中执行广告的加载方法进行重试,否则会引起很多无用请求且可能会导致应用卡顿 |
void onRewardedVideoAdPlayStart(ATAdInfo atAdInfo) | 广告开始播放回调(即激励视频展示回调)建议在此回调中调用load进行广告的加载,方便下一次广告的展示 ATAdInfo:广告的信息对象,可区分广告平台,主要包含第三方聚合平台的id信息 见ATAdInfo信息说明, |
void onRewardedVideoAdPlayEnd(ATAdInfo atAdInfo) | 广告播放结束回调 参数意义同上 |
void onRewardedVideoAdPlayFailed(AdError errorCode, ATAdInfo atAdInfo) | 广告播放失败回调 参数意义同上 |
void onReward(ATAdInfo atAdInfo) | 下发激励的时候会触发此回调,建议开发者在此回调中下发奖励,一般在onRewardedVideoAdClosed之前回调 参数意义同上 |
void onRewardedVideoAdClosed(ATAdInfo atAdInfo) | 广告关闭回调, 参数意义同上 |
void onRewardedVideoAdPlayClicked(ATAdInfo atAdInfo) | 广告点击 参数意义同上 |
广告监听:
//注意:广告对象必须要全局引用,如果广告对象是临时变量会导致广告加载过程中有可能被回收,无法接收广告事件回调
mRewardVideoAd.setAdListener(new ATRewardVideoListener() {
@Override
public void onRewardedVideoAdLoaded() {
}
@Override
public void onRewardedVideoAdFailed(AdError adError) {
//注意:禁止在此回调中执行广告的加载方法进行重试,否则会引起很多无用请求且可能会导致应用卡顿
//AdError,请参考 https://docs.takuad.com/#/zh-cn/android/android_doc/android_test?id=aderror
Log.e(TAG, "onRewardedVideoAdFailed:" + adError.getFullErrorInfo());
}
@Override
public void onRewardedVideoAdPlayStart(ATAdInfo adInfo) {
//ATAdInfo可区分广告平台以及获取广告平台的广告位ID等
//请参考 https://docs.takuad.com/#/zh-cn/android/android_doc/android_sdk_callback_access?id=callback_info
//建议在此回调中调用load进行广告的加载,方便下一次广告的展示(不需要调用isAdReady())
mRewardVideoAd.load();
}
@Override
public void onRewardedVideoAdPlayEnd(ATAdInfo atAdInfo) {
}
@Override
public void onRewardedVideoAdPlayFailed(AdError adError, ATAdInfo atAdInfo) {
//AdError,请参考 https://docs.takuad.com/#/zh-cn/android/android_doc/android_test?id=aderror
Log.e(TAG, "onRewardedVideoAdPlayFailed:" + adError.getFullErrorInfo());
}
@Override
public void onRewardedVideoAdClosed(ATAdInfo atAdInfo) {
}
@Override
public void onReward(ATAdInfo atAdInfo) {
//建议在此回调中下发奖励,一般在onRewardedVideoAdClosed之前回调
}
@Override
public void onRewardedVideoAdPlayClicked(ATAdInfo atAdInfo) {
}
});
2.6 其他监听
ATRewardVideoExListener: 继承自ATRewardVideoListener
,方法同ATRewardVideoListener
,额外回调说明如下:
方法 | 说明 |
---|---|
void onDeeplinkCallback(ATAdInfo atAdInfo, boolean isSuccess) | deeplink回调,针对Adx、OnlineApi广告 isSuccess:是否成功 |
void onDownloadConfirm(Context context, ATAdInfo atAdInfo, View clickView, ATNetworkConfirmInfo networkConfirmInfo) | 应用类广告点击下载时回调方法。 ATNetworkConfirmInfo: 第三方广告平台提供的回调信息(目前仅有优量汇的GDTDownloadFirmInfo) ATAdInfo:广告的信息对象,可区分广告平台,主要包含第三方聚合平台的id信息 见ATAdInfo信息说明 |
void onRewardedVideoAdAgainPlayStart(ATAdInfo atAdInfo) | 再看一个广告的开始播放回调 参数意义参考ATRewardVideoListener |
void onRewardedVideoAdAgainPlayEnd(ATAdInfo atAdInfo) | 再看一个广告的播放结束回调 参数意义参考ATRewardVideoListener |
void onRewardedVideoAdAgainPlayFailed(AdError errorCode, ATAdInfo atAdInfo) | 再看一个广告的播放失败回调 参数意义参考ATRewardVideoListener |
void onRewardedVideoAdAgainPlayClicked(ATAdInfo atAdInfo) | 再看一个广告的点击回调 参数意义参考ATRewardVideoListener |
void onAgainReward(ATAdInfo atAdInfo) | 再看一个广告的下发激励回调 参数意义参考ATRewardVideoListener |
ATAppDownloadListener:(仅中国区SDK支持)下载状态的事件回调监听
目前仅支持以下平台:穿山甲
方法 | 说明 |
---|---|
void onDownloadStart(ATAdInfo atAdInfo, long totalBytes, long currBytes, String fileName, String appName) | 开始下载回调 ATAdInfo:广告的信息对象,可区分广告平台,主要包含第三方聚合平台的id信息 见ATAdInfo信息说明 totalBytes:文件总大小(单位:字节) currBytes:当前已下载的大小(单位:字节) fileName:文件名称 appName:文件对应的应用名称 |
void onDownloadUpdate(ATAdInfo atAdInfo, long totalBytes, long currBytes, String fileName, String appName) | 下载进度更新回调 参数意义同上 |
void onDownloadPause(ATAdInfo atAdInfo, long totalBytes, long currBytes, String fileName, String appName) | 暂停下载回调 参数意义同上 |
void onDownloadFinish(ATAdInfo adInfo, long totalBytes, String fileName, String appName) | 下载完成回调 参数意义同上 |
void onDownloadFail(ATAdInfo adInfo, long totalBytes, long currBytes, String fileName, String appName) | 下载失败回调 参数意义同上 |
void onInstalled(ATAdInfo adInfo, String fileName, String appName) | Apk安装完成回调 参数意义同上 |
3. 示例代码
//注意:广告对象必须要全局引用,如果广告对象是临时变量会导致广告加载过程中有可能被回收,无法接收广告事件回调
ATRewardVideoAd mRewardVideoAd;
private void loadAd() {
if (mRewardVideoAd == null) {
mRewardVideoAd = new ATRewardVideoAd(this, rewardTakuPlacementID);
mRewardVideoAd.setAdListener(new ATRewardVideoListener() {
@Override
public void onRewardedVideoAdLoaded() {
}
@Override
public void onRewardedVideoAdFailed(AdError adError) {
//注意:禁止在此回调中执行广告的加载方法进行重试,否则会引起很多无用请求且可能会导致应用卡顿
//AdError,请参考 https://docs.takuad.com/#/zh-cn/android/android_doc/android_test?id=aderror
Log.e(TAG, "onRewardedVideoAdFailed:" + adError.getFullErrorInfo());
}
@Override
public void onRewardedVideoAdPlayStart(ATAdInfo adInfo) {
//ATAdInfo可区分广告平台以及获取广告平台的广告位ID等
//请参考 https://docs.takuad.com/#/zh-cn/android/android_doc/android_sdk_callback_access?id=callback_info
//建议在此回调中调用load进行广告的加载,方便下一次广告的展示(不需要调用isAdReady())
mRewardVideoAd.load();
}
@Override
public void onRewardedVideoAdPlayEnd(ATAdInfo atAdInfo) {
}
@Override
public void onRewardedVideoAdPlayFailed(AdError adError, ATAdInfo atAdInfo) {
//AdError,请参考 https://docs.takuad.com/#/zh-cn/android/android_doc/android_test?id=aderror
Log.e(TAG, "onRewardedVideoAdPlayFailed:" + adError.getFullErrorInfo());
}
@Override
public void onRewardedVideoAdClosed(ATAdInfo atAdInfo) {
}
@Override
public void onReward(ATAdInfo atAdInfo) {
//建议在此回调中下发奖励,一般在onRewardedVideoAdClosed之前回调
}
@Override
public void onRewardedVideoAdPlayClicked(ATAdInfo atAdInfo) {
}
});
}
String userid = "test_userid_001";
String userdata = "test_userdata_001";
Map localMap = new HashMap<>();
localMap.put(ATAdConst.KEY.USER_ID, userid);
localMap.put(ATAdConst.KEY.USER_CUSTOM_DATA, userdata);
//Load时传自定义参数,在广告源填充之后自定义参数会保存起来,在展示时回传。适用场景:传入会话信息做防作弊类似
mRewardVideoAd.setLocalExtra(localMap);
mRewardVideoAd.load();
}
private void showAd() {
/*
为了统计场景到达率,相关信息可查阅 "https://docs.takuad.com/#/zh-cn/android/NetworkAccess/scenario/scenario"
在满足广告触发条件时调用“进入广告场景”方法,比如:
** 广告场景是在清理结束后弹出广告,则在清理结束时调用;
* 1、先调用 "entryAdScenario"
* 2、在调用 "isAdReady" 是否可展示
* 3、最后调用 "show" 展示
* 4、scenario 传入场景id后台场景管理才会有数据显示
*/
ATRewardVideoAd.entryAdScenario("your rv placementID", "your scenarioID");
if (mRewardVideoAd.isAdReady()) {
mRewardVideoAd.show(activity,"your scenarioID");
}
}
详细激励视频广告示例代码请参考:Demo的RewardVideoAdActivity类