菜单

激励视频

1. 激励视频广告

激励广告SDK的导入

import 'package:anythink_sdk/at_index.dart';

1.1 加载激励视频

如果需要通过开发者的服务器进行奖励的下发(部分广告平台支持服务器激励),则要传以下参数,传入后将透传到开发者的服务器。

kATAdLoadingExtraUserIDKey(): String,必传,用于标识每个用户,

kATAdLoadingExtraUserDataKeywordKey():String,选传,用户自定义一些参数。

 _loadRewardedVideo() async {
    await ATRewardedManager.loadRewardedVideo(
        placementID: 'you placementId',
        extraMap: {
          ATRewardedManager.kATAdLoadingExtraUserDataKeywordKey(): '1234',
          ATRewardedManager.kATAdLoadingExtraUserIDKey(): '1234',
        });
  }

1.2 判断是否有广告缓存以及获取广告状态

使用以下代码判断是否有广告缓存

 _hasAdReady() async {
    await ATRewardedManager
        .rewardedVideoReady(
      placementID: 'you placementId',
    ).then((value) {
      print('广告视频缓存$value');
    });
  }

使用以下代码获取广告状态(返回值类型为Map) key-value如下

1、isLoading:是否正在加载

2、isReady:是否有广告缓存

3、adInfo:当前优先级最高的广告缓存信息

 _checkAdStatus() async {
    await ATRewardedManager
        .checkRewardedVideoLoadStatus(
      placementID: 'you placementId',
    ).then((value) {
      print('广告视频状态$value');
    });
  }  

获取当前广告位下所有可用广告的信息

getRewardedVideoValidAds() async {
    await ATRewardedManager.getRewardedVideoValidAds(
      placementID: Configuration.rewarderPlacementID,)
        .then((value) {
      print('激励视频当前广告位下$value');
    });
  }

1.3 展示激励视频

展示激励视频只要调用展示api并传递展示广告位ID

 _showAd() async {
    await ATRewardedManager
        .showRewardedVideo(
      placementID: 'you placementId',
    );
  } 

当使用场景功能时,通过此api展示广告,参数为:广告位ID+场景ID(场景ID可通过Taku后台创建)

showSceneNativeAd() async {
    await ATRewardedManager
        .showSceneRewardedVideo(
      sceneID: 'you sceneID',
      placementID: 'you placementId',
    );
  }

1.4 实现激励视频的监听器

ATRewardResponse属性介绍:

RewardedStatus: 激励视频状态

placementID: placementID

requestMessage: 请求信息(错误信息)

extraMap: 回调信息

isDeeplinkSuccess: isDeeplinkSuccess

可查看下面的示例代码:

_rewarderListen() {

    ATListenerManager.rewardedVideoEventHandler.listen((value) {

          switch (value.rewardStatus) {
              //广告加载失败
            case RewardedStatus.rewardedVideoDidFailToLoad:
              print("flutter rewardedVideoDidFailToLoad ---- placementID: ${value.placementID} ---- errStr:${value.requestMessage}");
              break;
            //广告加载成功  
            case RewardedStatus.rewardedVideoDidFinishLoading:
              print("flutter rewardedVideoDidFinishLoading ---- placementID: ${value.placementID}");
              break;
            //广告开始播放
            case RewardedStatus.rewardedVideoDidStartPlaying:
              print("flutter rewardedVideoDidStartPlaying ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
              break;
            //广告结束播放  
            case RewardedStatus.rewardedVideoDidEndPlaying:
              print("flutter rewardedVideoDidEndPlaying ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
              break;
            //广告播放失败  
            case RewardedStatus.rewardedVideoDidFailToPlay:
              print("flutter rewardedVideoDidFailToPlay ---- placementID: ${value.placementID} ---- errStr:${value.extraMap}");
              break;
            //激励成功,建议在此回调中下发奖励  
            case RewardedStatus.rewardedVideoDidRewardSuccess:
              print("flutter rewardedVideoDidRewardSuccess ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
              break;
            //广告被点击  
            case RewardedStatus.rewardedVideoDidClick:
              print("flutter rewardedVideoDidClick ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
              break;
            //Deeplink  
            case RewardedStatus.rewardedVideoDidDeepLink:
              print("flutter rewardedVideoDidDeepLink ---- placementID: ${value.placementID} ---- extra:${value.extraMap} ---- isDeeplinkSuccess:${value.isDeeplinkSuccess}");
              break;
            //广告被关闭  
            case RewardedStatus.rewardedVideoDidClose:
              print("flutter rewardedVideoDidClose ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
              break;

            //广告开始播放(只针对穿山甲的再看一个广告)  
            case RewardedStatus.rewardedVideoDidAgainStartPlaying:
                print("flutter rewardedVideoDidAgainStartPlaying ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
              break;
            //广告结束播放(只针对穿山甲的再看一个广告)  
            case RewardedStatus.rewardedVideoDidAgainEndPlaying:
                print("flutter rewardedVideoDidAgainEndPlaying ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
                break;
            //广告播放失败(只针对穿山甲的再看一个广告)  
            case RewardedStatus.rewardedVideoDidAgainFailToPlay:
                print("flutter rewardedVideoDidAgainFailToPlay ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
                break;
            //激励成功(只针对穿山甲的再看一个广告)  
            case RewardedStatus.rewardedVideoDidAgainRewardSuccess:
                print("flutter rewardedVideoDidAgainRewardSuccess ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
                break;
            //广告被点击(只针对穿山甲的再看一个广告)  
            case RewardedStatus.rewardedVideoDidAgainClick:
                print("flutter rewardedVideoDidAgainClick ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");

            case RewardedStatus.rewardedVideoUnknown:
              print("flutter rewardedVideoUnknown");
              break;
          }
        });
 }


最近修改: 2025-05-30Powered by