菜单

激励视频广告全自动加载

1. 全自动加载激励视频广告介绍

全自动加载模式,是Taku推出的一站式请求维护方案,能够根据用户的使用状态和广告消耗进度,多节点智能判断下一条广告的预加载和缓存时机。在满足开发者运营策略的基础上,规避广告数据实时加载的失败风险和展示机会被浪费,减轻用户因为广告未加载或加载不流畅造成的负面情绪。通过全自动加载方案,开发者可以避免反复冗杂的人工干预请求方案,效率提升立竿见影。SDK开始支持全自动加载模式。

 

1.1 集成建议

(1) 初始化:在主Activity onCreate()里调用ATRewardVideoAutoAd.init(mainActivity,placementIds,listener)并传入主Activity进行初始化,后续如需添加全自动加载广告位请调用addPlacementId(placementId)添加

(2) 建议进入可展示广告场景后调用entryAdScenario(placementId,scenarioId)统计当前广告位的缓存状态,具体的统计说明可查看广告场景区分不同业务场景的数据

(3) 展示广告:展示前判断isAdReady(placementId)是否准备好,准备好后再调用 show(activity,placement,listener)进行广告展示

(4) 服务器回调:如需支持服务器回调(S2S)传入userIdextraData请在以下时机进行设置:

注意:

① 全自动激励视频内部实现自动加载逻辑,所以请避免在onRewardVideoAutoLoaded回调中直接执行广告展示

② 广告位如果设置为全自动加载则不要调用ATRewardVideoAd(普通激励视频).load()进行广告加载

 

1.2 注意事项:

(1) 激励视频的激励下发时会回调onReward()开发者可以在onReward回调中下发激励给用户

(2) 全自动加载激励视频支持服务器回调(S2S)的激励下发机制,同时也支持各广告平台的服务器回调功能,请参考 激励视频服务器激励(S2S)说明

 

2. API说明

2.1 广告初始化

ATRewardVideoAutoAd: 全自动加载激励视频广告的管理类

方法 说明
void init(Context context, String[] placementIds, ATRewardVideoAutoLoadListener loadListener) ATRewardVideoAutoAd广告的初始化方法,初始化后即自动对指定广告位发起广告加载
context:如果有集成以下平台:Ironsource、Kidoz、Maio、Tapjoy,context必须是Activity
placementIds:开启全自动加载的广告位Id(可传null)
loadListener:广告填充回调
void setLocalExtra(String placementId, Map 对指定广告位设置本地参数
placementId:广告位Id
localExtra:本地参数,key通过ATAdConst.KEY进行获取

 

初始化:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //建议在主Activity onCreate时传入Activity进行初始化
        ATRewardVideoAutoAd.init(MainActivity.this, new String[]{"your rv placementID1", "your rv placementID2"},autoLoadListener);
    }
}

 

2.2 本地参数

ATAdConst.KEY:LocalExtra本地参数预定义Key取值

方法 说明
USER_ID (可选)用于服务器激励,用户唯一ID
USER_CUSTOM_DATA (可选)用于服务器激励,用户自定义数据

 

服务器回调:

//设置服务器回调localExtra信息
private static void setPlacementIdLocalExtra(String placementId) {
    String userid = "test_userid_001";
    String userdata = "test_userdata_001_" + placementId + "_" + System.currentTimeMillis();
    Map localMap = new HashMap<>();
    localMap.put(ATAdConst.KEY.USER_ID, userid);
    localMap.put(ATAdConst.KEY.USER_CUSTOM_DATA, userdata);
    //从下一次的广告加载开始生效
    ATRewardVideoAutoAd.setLocalExtra(placementId, localMap);
}

//设置时机1:初始化前或添加广告位前
setPlacementIdLocalExtra("your rv placementID1");//初始化前,对指定广告位设置localExtra
ATRewardVideoAutoAd.init(this, new String[]{"your rv placementID1", "your rv placementID2"}, autoLoadListener);
//ATRewardVideoAutoAd.addPlacementId("placementId1");

//设置时机2:广告填充后
private static ATRewardVideoAutoLoadListener autoLoadListener = new ATRewardVideoAutoLoadListener() {
    @Override
    public void onRewardVideoAutoLoaded(String placementId) {
        //如需更新localExtra则在此处设置localExtra,从下次加载生效
        setPlacementIdLocalExtra(placementId);
    }

    @Override
    public void onRewardVideoAutoLoadFail(String placementId, AdError adError) {
    }
};

 

2.3 广告展示

ATRewardVideoAutoAd:

方法 说明
boolean isAdReady(String placementId)
判断该广告位是否存在可展示的广告
placementId:需查询的广告位Id
void show(Activity activity, String placementId, ATRewardVideoAutoEventListener eventListener) 展示该广告位激励视频广告
activity:展示广告的Activity
placementId:需展示的广告位Id
eventListener:激励视频广告展示及激励回调,ATRewardVideoAutoEventListener说明见下方
void show(Activity activity, String placementId, ATShowConfig showConfig, ATRewardVideoAutoEventListener eventListener) (v6.3.10新增)展示该广告位激励视频广告 activity:参数意义同上
placementId:参数意义同上

showConfig:可传入展示时的额外参数,如下1.ATShowConfig#showCustomExt(String showCustomExt):可传入展示时自定义参数,传入的该参数将通过ATAdInfo#getShowCustomExt()返回
2.ATShowConfig#scenarioId(String scenarioId):可传入广告场景,同show(Activity activity, String placementId, String scenario, ATRewardVideoAutoEventListener eventListener)

eventListener:参数意义同上
void entryAdScenario(String placementId, String scenarioId) 对应广告位进入业务场景缓存状态统计
placementId:广告位Id
scenario:广告展示场景,可从后台创建场景参数和使用请参考 业务场景缓存状态统计

 

广告展示:

        /*
     为了统计场景到达率,相关信息可查阅 "https://help.takuad.com/docs/1RWLAv"
     在满足广告触发条件时调用&ldquo;进入广告场景&rdquo;方法,比如:
     ** 广告场景是在清理结束后弹出广告,则在清理结束时调用;
     * 1、先调用 "entryAdScenario"
     * 2、在调用 "isAdReady" 是否可展示
     * 3、最后调用 "show" 展示
     * 4、scenario 传入场景id后台场景管理才会有数据显示
     */
 ATRewardVideoAd.entryAdScenario("your rv placementID", "your scenarioID");
//需判断广告位是否准备好
if(ATRewardVideoAutoAd.isAdReady("your rv placementID")){
    ATRewardVideoAutoAd.show(activity, "your rv placementID", "your scenarioID",autoEventListener);
}

 

2.4 广告对象

ATRewardVideoAutoAd:

方法 说明
checkAdStatus(String placementId) 获取该广告位的状态对象 ATAdStatusInfo,ATAdStatusInfo对象的API说明见下方
placementId:需查询的广告位Id
checkValidAdCaches(String placementId) 查询该广告位的所有缓存信息的ATAdInfo对象
placementId:需查询的广告位Id
void addPlacementId(String... placementIds) 添加需全自动加载广告位
placementIds:需全自动加载广告位Id
void removePlacementId(String... placementIds) 移除无需全自动加载广告位
placementIds:无需全自动加载广告位Id

 

ATAdStatusInfo:广告位的状态对象

方法 说明
boolean isLoading() 判断当前广告位是否正在加载广告
boolean isReady() 判断当前广告位是否存在可展示的广告,与ATRewardVideoAd.isAdReady()方法作用相同
getATTopAdInfo 获取当前广告位优先级最高的广告缓存信息 ATAdInfo对象
ATAdInfo:广告的信息对象,可区分广告平台,主要包含第三方聚合平台的id信息 见ATAdInfo信息说明

 

2.5 广告监听

ATRewardVideoAutoLoadListener:ATRewardVideoAutoAd广告的加载事件回调监听:

方法 说明
void onRewardVideoAutoLoaded(String placementId) 对应广告位广告加载成功回调
placementId:对应广告位Id
void onRewardVideoAutoLoadFail(String placementId, AdError adError) 对应广告位广告加载失败回调
placementId:广告位Id
adError:广告加载失败信息,可通过AdError.getFullErrorInfo()获取全部错误信息,请参考 AdError

 

监听示例:

private static ATRewardVideoAutoLoadListener autoLoadListener = new ATRewardVideoAutoLoadListener() {
    @Override
    public void onRewardVideoAutoLoaded(String placementId) {
     
    }

    @Override
    public void onRewardVideoAutoLoadFail(String placementId, AdError adError) {
    }
};

 

ATRewardVideoAutoEventListener:ATRewardVideoAutoAd广告的事件回调监听:

方法 说明
void onRewardedVideoAdPlayStart(ATAdInfo atAdInfo) 广告开始播放回调(即激励视频展示回调)
ATAdInfo:广告的信息对象,可区分广告平台,主要包含第三方聚合平台的id信息 见ATAdInfo信息说明
void onRewardedVideoAdPlayEnd(ATAdInfo atAdInfo) 广告播放结束回调
参数意义同上
void onRewardedVideoAdPlayFailed(AdError errorCode, ATAdInfo atAdInfo) 广告播放失败回调
atAdInfo:参数意义同上
errorCode:广告展示失败信息,可通过AdError.getFullErrorInfo()获取全部错误信息,请参考 AdError
void onReward(ATAdInfo atAdInfo) 下发激励的时候会触发此回调,建议开发者在此回调中下发奖励,一般在onRewardedVideoAdClosed之前回调
参数意义同上
void onRewardedVideoAdClosed(ATAdInfo atAdInfo) 广告关闭回调
参数意义同上
void onRewardedVideoAdPlayClicked(ATAdInfo atAdInfo) 广告点击
参数意义同上
void onDeeplinkCallback(ATAdInfo atAdInfo, boolean isSuccess) deeplink回调,针对Adx、OnlineApi广告
isSuccess:是否成功
void onDownloadConfirm(Context context, ATAdInfo atAdInfo, View clickView, ATNetworkConfirmInfo networkConfirmInfo) 应用类广告点击下载时回调方法。
atAdInfo:参数意义同上
networkConfirmInfo:第三方广告平台提供的回调信息(目前仅有优量汇的GDTDownloadFirmInfo)
void onRewardedVideoAdAgainPlayStart(ATAdInfo atAdInfo) 穿山甲再看一个广告的开始播放回调
参数意义参考onRewardedVideoAdPlayStart
void onRewardedVideoAdAgainPlayEnd(ATAdInfo atAdInfo) 穿山甲再看一个广告的播放结束回调
参数意义参考onRewardedVideoAdPlayEnd
void onRewardedVideoAdAgainPlayFailed(AdError errorCode, ATAdInfo atAdInfo) 穿山甲再看一个广告的播放失败回调
参数意义参考onRewardedVideoAdPlayFailed
void onRewardedVideoAdAgainPlayClicked(ATAdInfo atAdInfo) 穿山甲再看一个广告的点击回调
参数意义参考onRewardedVideoAdPlayClicked
void onAgainReward(ATAdInfo atAdInfo) 穿山甲再看一个广告的下发激励回调
参数意义参考onReward

 

3. 示例代码

//设置服务器回调localExtra信息
private static void setPlacementIdLocalExtra(String placementId) {
    String userid = "test_userid_001";
    String userdata = "test_userdata_001_" + placementId + "_" + System.currentTimeMillis();
    Map localMap = new HashMap<>();
    localMap.put(ATAdConst.KEY.USER_ID, userid);
    localMap.put(ATAdConst.KEY.USER_CUSTOM_DATA, userdata);
    //从下一次的广告加载开始生效
    ATRewardVideoAutoAd.setLocalExtra(placementId, localMap);
}

//设置时机1:初始化前或添加广告位前
setPlacementIdLocalExtra("your rv placementID1");//初始化前,对指定广告位设置localExtra
ATRewardVideoAutoAd.init(this, new String[]{"your rv placementID1", "your rv placementID2"}, autoLoadListener);
//ATRewardVideoAutoAd.addPlacementId("placementId1");

//设置时机2:广告填充后
private static ATRewardVideoAutoLoadListener autoLoadListener = new ATRewardVideoAutoLoadListener() {
    @Override
    public void onRewardVideoAutoLoaded(String placementId) {
        //如需更新localExtra则在此处设置localExtra,从下次加载生效
        setPlacementIdLocalExtra(placementId);
    }

    @Override
    public void onRewardVideoAutoLoadFail(String placementId, AdError adError) {
    }
};
    /*
     为了统计场景到达率,相关信息可查阅 "https://docs.takuad.com/#/zh-cn/android/NetworkAccess/scenario/scenario"
     在满足广告触发条件时调用“进入广告场景”方法,比如:
     ** 广告场景是在清理结束后弹出广告,则在清理结束时调用;
     * 1、先调用 "entryAdScenario"
     * 2、在调用 "isAdReady" 是否可展示
     * 3、最后调用 "show" 展示
     * 4、scenario 传入场景id后台场景管理才会有数据显示
     */
 ATRewardVideoAd.entryAdScenario("your rv placementID1", "your scenarioID");
//需判断广告位是否准备好
if(ATRewardVideoAutoAd.isAdReady("your rv placementID1")){
    ATRewardVideoAutoAd.show(activity, "your rv placementID1", "your scenarioID",autoEventListener);
}

详细激励视频广告示例代码请参考:Demo的RewardVideoAdActivity类

上一个
全自动加载
下一个
插屏广告全自动加载
最近修改: 2025-05-30Powered by