菜单

全自动加载激励视频


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

1. 接入流程建议

  1. 启动应用时通过调用ATRewardedAutoVideo#addAutoLoadAdPlacementID来加载广告
  2. 在需要展示广告的位置通过ATRewardedAutoVideo#autoLoadRewardedVideoReadyForPlacementID判断是否能展示false:不需要做任何操作,SDK内部会自动去加载广告true:调用ATRewardedAutoVideo#showAutoAd展示广告
  3. 如需使用广告场景区分不同业务场景的数据,具体参考示例代码

注:广告位如果设置为全自动加载则不能再调用 ATRewardedVideo#loadVideoAd普通激励视频)进行广告加载

2. API说明

ATRewardedAutoVideo:

API参数说明
addAutoLoadAdPlacementIDstring[] placementIDList设置需要自动加载的广告位
removeAutoLoadAdPlacementIDstring placementId移除不需要自动加载的广告位
setAutoLocalExtrastring placementId, string mapJson给广告位设置本地参数
setListenerATRewardedVideoListener listener (5.9.51版本之后废弃)设置监听器的方式具体参考:激励视频广告事件设置说明
autoLoadRewardedVideoReadyForPlacementIDstring placementid判断是否有广告缓存
checkAdStatusstring placementid获取当前广告位的状态(Json字符串):
1、isLoading:是否正在加载
2、isReady:是否有广告缓存(与hasAdReady作用相同)
3、AdInfo:当前优先级最高的广告缓存信息(参考ATCallbackInfo说明
getAutoValidAdCachesstring placementid获取加载成功的全部广告缓存信息(JSON字符串)
(参考ATCallbackInfo说明
showAutoAdstring mapJson显示广告
showAutoAdstring placementid,Dictionary使用场景功能更显示广告
entryAutoAdScenarioWithPlacementIDstring placementid,string scenarioID设置进入可展示广告场景

3.设置本地参数

如需支持服务器激励回调,则需要在配置全自动广告位前(对下次加载的激励视频广告生效)传入参数,示例代码:

public void setAutoLoadExtra()
{
    Dictionary jsonmap = new Dictionary();
    //如果需要通过开发者的服务器进行奖励的下发(部分广告平台支持此服务器激励),则需要传递下面两个key
    //ATConst.USERID_KEY必传,用于标识每个用户;ATConst.USER_EXTRA_DATA为可选参数,传入后将透传到开发者的服务器
    jsonmap.Add(ATConst.USERID_KEY, "test_user_id");
    jsonmap.Add(ATConst.USER_EXTRA_DATA, "test_user_extra_data");

    ATRewardedAutoVideo.Instance.setAutoLocalExtra(mPlacementId_rewardvideo_all, jsonmap);
}

4. 加载广告

使用以下代码设置全自动加载激励视频广告:



public void addAutoLoadAdPlacementID()
{


    ATRewardedAutoVideo.Instance.client.onAdLoadEvent += onAdLoad; 
    ATRewardedAutoVideo.Instance.client.onAdLoadFailureEvent += onAdLoadFail;  
    ATRewardedAutoVideo.Instance.client.onAdVideoStartEvent  += onAdVideoStartEvent;
    ATRewardedAutoVideo.Instance.client.onAdVideoEndEvent  += onAdVideoEndEvent;       
    ATRewardedAutoVideo.Instance.client.onAdVideoFailureEvent += onAdVideoPlayFail;        
    ATRewardedAutoVideo.Instance.client.onAdClickEvent += onAdClick;
    ATRewardedAutoVideo.Instance.client.onRewardEvent += onReward;

    ATRewardedAutoVideo.Instance.client.onAdVideoCloseEvent += onAdVideoClosedEvent;


    string[] jsonList = {mPlacementId_rewardvideo_all};
    ATRewardedAutoVideo.Instance.addAutoLoadAdPlacementID(jsonList);
}

注: 请参阅下文,了解如何获得有关全自动加载激励视频广告事件的通知(加载成功/失败,展示,点击,视频开始/结束和激励)。

5. 判断是否有广告缓存

bool isReady = ATRewardedAutoVideo.Instance.autoLoadRewardedVideoReadyForPlacementID(mPlacementId_rewardvideo_all);

6. 展示广告

public void showAutoAd()
{
    ATRewardedAutoVideo.Instance.showAutoAd(mPlacementId_rewardvideo_all);
}

当用到 场景 功能时:

public void showAutoAd()
{
        // 设置进入场景
    ATRewardedAutoVideo.Instance.entryAutoAdScenarioWithPlacementID(mPlacementId_rewardvideo_all, showingScenario);
    Dictionary jsonmap = new Dictionary();
    jsonmap.Add(AnyThinkAds.Api.ATConst.SCENARIO, showingScenario);
    ATRewardedAutoVideo.Instance.showAutoAd(mPlacementId_rewardvideo_all,jsonmap);
}

7. 实现激励视频事件监听 (注意:仅在V5.9.51版本以上支持)

回调信息详情请查看回调信息说明

使用以下方式可支持设置多个Listener

        //广告加载成功
        ATRewardedAutoVideo.Instance.client.onAdLoadEvent += onAdLoad; 
        //广告加载失败
        ATRewardedAutoVideo.Instance.client.onAdLoadFailureEvent += onAdLoadFail;
        //广告展示的回调(可依赖这个回调统计展示数据)
        ATRewardedAutoVideo.Instance.client.onAdVideoStartEvent  += onAdVideoStartEvent;
        //广告播放结束
        ATRewardedAutoVideo.Instance.client.onAdVideoEndEvent  += onAdVideoEndEvent;
        //广告视频播放失败
        ATRewardedAutoVideo.Instance.client.onAdVideoFailureEvent += onAdVideoPlayFail;
        //广告点击
        ATRewardedAutoVideo.Instance.client.onAdClickEvent += onAdClick;
        //广告激励回调(可依赖该监听下发游戏激励)
        ATRewardedAutoVideo.Instance.client.onRewardEvent += onReward;
        //广告被关闭
        ATRewardedAutoVideo.Instance.client.onAdVideoCloseEvent += onAdVideoClosedEvent;

方法定义参数如下代码(注意 : 方法名可参考以下代码或者自定义方法名,但参数必须一致

    //广告加载成功
    public void onAdLoad(object sender,ATAdEventArgs erg)
    {
        Debug.Log("Developer callback onAdLoad :" + erg.placementId);
    }
    //广告加载失败
    public void onAdLoadFail(object sender,ATAdErrorEventArgs erg )
    {
        Debug.Log("Developer callback onAdLoadFail :" + erg.placementId + "--erg.code:" + code + "--msg:" + erg.message);
    }

     public void onAdVideoStartEvent(object sender, ATAdEventArgs erg) {
        Debug.Log("Developer onAdVideoStartEvent------" + "->" + JsonMapper.ToJson(erg.callbackInfo.toDictionary()));
    } 

    public void onAdVideoEndEvent(object sender, ATAdEventArgs erg)
    {
        Debug.Log("Developer onAdVideoEndEvent------" + "->" + JsonMapper.ToJson(erg.callbackInfo.toDictionary()));
    }


    public void onAdVideoPlayFail(object sender, ATAdErrorEventArgs erg)
    {
        Debug.Log("Developer onAdVideoClosedEvent------" + "->" + JsonMapper.ToJson(erg.errorMessage));
    }


    //sender 为广告类型对象,erg为返回信息
    //广告被点击
    public void onAdClick(object sender,ATAdEventArgs erg)
    {
        Debug.Log("Developer callback onAdClick :" + erg.placementId);
    }

    public void onReward(object sender, ATAdEventArgs erg)
    {
        Debug.Log("Developer onReward------" + "->" + JsonMapper.ToJson(erg.callbackInfo.toDictionary()));
    }


    public void onAdVideoClosedEvent(object sender, ATAdEventArgs erg)
    {
        Debug.Log("Developer onAdVideoClosedEvent------" + "->" + JsonMapper.ToJson(erg.callbackInfo.toDictionary()));
    }


再看一个回调:仅穿山甲支持再看一个回调

// 激励视频再看一次视频开始播放
ATRewardedVideo.Instance.client.onPlayAgainStart += onRewardedVideoAdAgainPlayStart;
// 激励视频再看一次视频播放失败
ATRewardedVideo.Instance.client.onPlayAgainFailure += onRewardedVideoAdAgainPlayFail;
// 激励视频再看一次视频播放结束
ATRewardedVideo.Instance.client.onPlayAgainEnd += onRewardedVideoAdAgainPlayEnd;
// 激励视频再看一次视频点击
ATRewardedVideo.Instance.client.onPlayAgainClick += onRewardedVideoAdAgainPlayClicked;
// 激励视频再看一次视频激励下发
ATRewardedVideo.Instance.client.onPlayAgainReward += onAgainReward;

public void onRewardedVideoAdAgainPlayStart(object sender,ATAdEventArgs erg){
    Debug.Log("Developer onRewardedVideoAdAgainPlayStart------" + "->" + JsonMapper.ToJson(erg.callbackInfo.toDictionary()));
}

public void onRewardedVideoAdAgainPlayEnd(object sender,ATAdEventArgs erg){
    Debug.Log("Developer onRewardedVideoAdAgainPlayEnd------" + "->" + JsonMapper.ToJson(erg.callbackInfo.toDictionary()));
}

public void onRewardedVideoAdAgainPlayFail(object sender,ATAdErrorEventArgs erg){
    Debug.Log("Developer onRewardedVideoAdAgainPlayFail------code:" + erg.errorCode + "---message:" + erg.errorMessage);
}

public void onRewardedVideoAdAgainPlayClicked(object sender,ATAdEventArgs erg){
    Debug.Log("Developer onRewardedVideoAdAgainPlayClicked------" + "->" + JsonMapper.ToJson(erg.callbackInfo.toDictionary()));
}

public void onAgainReward(object sender, ATAdEventArgs erg){
    Debug.Log("Developer onAgainReward------" + "->" + JsonMapper.ToJson(erg.callbackInfo.toDictionary()));
}

8. 旧版实现全自动加载激励视频的监听器 (注意:仅在V5.9.51版本以下使用,新版本已废弃)

您可以实现ATRewardedVideo Listener接口的类,来获得有关激励视频广告事件的通知:(注意:对于Android来说,所有回调方法均不在Unity的主线程,仅在V5.9.51版本以下支持)

class ATCallbackListener : ATRewardedVideoListener {
    //广告加载成功
    public void onRewardedVideoAdLoaded(string placementId){
        Debug.Log("Developer onRewardedVideoAdLoaded------");
    }
    //广告加载失败
    public void onRewardedVideoAdLoadFail(string placementId, string code, string message){
        Debug.Log("Developer onRewardedVideoAdLoadFail------:code" + code + "--message:" + message);
    }
    //广告开始播放
    public void onRewardedVideoAdPlayStart(string placementId, ATCallbackInfo callbackInfo){
        Debug.Log("Developer onRewardedVideoAdPlayStart------");
    }
    //广告播放结束
    public void onRewardedVideoAdPlayEnd(string placementId, ATCallbackInfo callbackInfo){
        Debug.Log("Developer onRewardedVideoAdPlayEnd------");
    }
    //广告播放失败
    public void onRewardedVideoAdPlayFail(string placementId, string code, string message){
        Debug.Log("Developer onRewardedVideoAdPlayFail------code:" + code + "---message:" + message);
    }
    //广告被关闭,其中isReward仅表示onRewardedVideoAdPlayClosed被回调时onReward()方法被回调了没有
    public void onRewardedVideoAdPlayClosed(string placementId, bool isReward, ATCallbackInfo callbackInfo){
        Debug.Log("Developer onRewardedVideoAdPlayClosed------isReward:" + isReward);
    }
    //广告被点击
    public void onRewardedVideoAdPlayClicked(string placementId, ATCallbackInfo callbackInfo){
        Debug.Log("Developer onRewardVideoAdPlayClicked------");
    }
    //激励成功,开发者可在此回调中下发奖励,一般先于onRewardedVideoAdPlayClosed回调,服务器激励则不一定
    public void onReward(string placementId, ATCallbackInfo callbackInfo){
        Debug.Log("Developer onReward------");
    }

      // v5.8.10 新增广告源层级回调
      // 广告源开始加载
    public void startLoadingADSource(string placementId, ATCallbackInfo callbackInfo){
        Debug.Log("Developer startLoadingADSource------");
    }
      // 广告源加载完成
        public void finishLoadingADSource(string placementId, ATCallbackInfo callbackInfo){
        Debug.Log("Developer finishLoadingADSource------");
    }
      // 广告源失败
        public void failToLoadADSource(string placementId,ATCallbackInfo callbackInfo,string code, string message){
        Debug.Log("Developer failToLoadADSource------");
    }
      // 广告源开始bidding
        public void startBiddingADSource(string placementId, ATCallbackInfo callbackInfo){
               Debug.Log("Developer startBiddingADSource------");
    }
      // 广告源bidding成功
        public void finishBiddingADSource(string placementId, ATCallbackInfo callbackInfo){
        Debug.Log("Developer finishBiddingADSource------");
    }
      // 广告源bidding失败
        public void failBiddingADSource(string placementId,ATCallbackInfo callbackInfo,string code, string message){
        Debug.Log("Developer failBiddingADSource------");
    }
}

再看一个回调:仅穿山甲支持再看一个回调

class ATCallbackListener : ATRewardedVideoExListener {
        // 激励视频再看一次视频开始播放
        public void onRewardedVideoAdAgainPlayStart(string placementId, ATCallbackInfo callbackInfo) {
            Debug.Log("Developer onRewardedVideoAdAgainPlayStart------");
        }
        // 激励视频再看一次视频播放结束
        public void onRewardedVideoAdAgainPlayEnd(string placementId, ATCallbackInfo callbackInfo) {
            Debug.Log("Developer onRewardedVideoAdAgainPlayEnd------");
        }
        // 激励视频再看一次视频播放失败
        public void onRewardedVideoAdAgainPlayFail(string placementId, string code, string message) {
            Debug.Log("Developer onRewardedVideoAdAgainPlayFail------");
        }
        // 激励视频再看一次视频点击
        public void onRewardedVideoAdAgainPlayClicked(string placementId, ATCallbackInfo callbackInfo) {
            Debug.Log("Developer onRewardedVideoAdAgainPlayClicked------");
        }
        // 激励视频再看一次视频激励下发
        public void onAgainReward(string placementId, ATCallbackInfo callbackInfo) {
            Debug.Log("Developer onAgainReward------");
        }
}

注意: 本节中的代码段摘自我们Demo的videoScenes.cs demo project.


上一个
激励视频广告集成说明
下一个
插屏广告集成说明
最近修改: 2025-05-30Powered by