菜单

开屏广告

1. 开屏广告

开屏广告SDK的导入

import 'package:anythink_sdk/at_index.dart';

1.1 加载开屏广告

  loadSplash() async {
    await ATSplashManager.loadSplash(
        placementID: 'you placementId',
        extraMap: {}
    );
  }

默认广告加载超时时间为5000毫秒,如果需要调整广告加载超时时间(单位:毫秒),则需要传以下参数,

tolerateTimeout(): int,必传,用于设置加载超时时间

  loadSplash() async {
    await ATSplashManager.loadSplash(
        placementID: 'you placementId',
        extraMap: {
          ATSplashManager.tolerateTimeout(): 5000
        });
  }

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

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

  splashReady() async {
    await ATSplashManager
        .splashReady(
        placementID: 'you placementId'
    )
  }

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

1、isLoading:是否正在加载

2、isReady:是否有广告缓存

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

  checkSplashLoadStatus() async {
    await ATSplashManager
        .checkSplashLoadStatus(
        placementID: 'you placementId'
    )
  }

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

  getSplashValidAds() async {
    await ATSplashManager.getSplashValidAds(
        placementID: 'you placementId'
    )
  }

1.3 展示开屏广告

展示开屏广告只要调用展示api并传递展示广告位ID

  showSplash() async {
    await ATSplashManager
        .showSplash(
        placementID: 'you placementId'
    );
  }

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

  showSceneSplash() async {
    await ATSplashManager
        .showSceneSplash(
      sceneID: 'you sceneID',
      placementID: 'you placementId',
    );
  }

1.4 实现开屏广告的监听器

ATSplashResponse属性介绍:

SplashStatus: 开屏状态

placementID: placementID

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

extraMap: 回调信息

isDeeplinkSuccess: isDeeplinkSuccess

isTimeout:广告加载成功时是否已经超时

可查看下面的示例代码:

  splashListen() {
    ATListenerManager.splashEventHandler.listen((value) {

      switch (value.splashStatus) {
      //广告加载失败
        case SplashStatus.splashDidFailToLoad:
          print("flutter splash--splashDidFailToLoad ---- placementID: ${value.placementID} ---- errStr:${value.requestMessage}");
          break;
      //广告加载成功 
        case SplashStatus.splashDidFinishLoading:
          print("flutter splash--splashDidFinishLoading ---- placementID: ${value.placementID} ---- isTimeout:${value.isTimeout}");
          break;
      //广告加载超时 
        case SplashStatus.splashDidTimeout:
          print("flutter splash--splashDidTimeout ---- placementID: ${value.placementID}");
          break;
      //广告展示成功 
        case SplashStatus.splashDidShowSuccess:
          print("flutter splash--splashDidShowSuccess ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
          break;
      //广告加载失败 
        case SplashStatus.splashDidShowFailed:
          print("flutter splash--splashDidShowFailed ---- placementID: ${value.placementID} ---- errStr:${value.requestMessage}");
          break;
      //广告被点击 
        case SplashStatus.splashDidClick:
          print("flutter splash--splashDidClick ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
          break;
      //DeepLink
        case SplashStatus.splashDidDeepLink:
          print("flutter splash--splashDidDeepLink ---- placementID: ${value.placementID} ---- extra:${value.extraMap} ---- isDeeplinkSuccess:${value.isDeeplinkSuccess}");
          break;
      //广告被关闭
        case SplashStatus.splashDidClose:
          print("flutter splash--splashDidClose ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
          break;

        case SplashStatus.splashUnknown:
          print("flutter splash--splashUnknown");
          break;
      }
    });
  }

1.5 预置策略设置(建议使用)

为提高首次冷启动的广告加载效果,在开屏广告位上创建SDK预置策略的流量分组,然后在这个流量分组配置瀑布流,同时建议您增加一个兜底广告源,最后导出SDK预置策略并预置到应用中。具体接入文档见SDK预置策略使用说明

配置效果: 可以实现SDK预置开屏策略,同时实现开屏兜底广告源的兜底功能。即:此兜底广告源会和广告位下的整体瀑布流并行发起请求。并且用户不会在首次请求时必定使用兜底广告,而是正常走瀑布流和兜底广告源的并行请求。可以实现变现价值最大化。

1.5.1 设置导出的JSON文件路径

在初始化SDK之前调用

setPresetPlacementConfigPath() async {
    await ATInitManger.setPresetPlacementConfigPath(
        pathStr: "localStrategy"
    );
 }

1. Android注意说明

(1)在项目的 src/main/assets 目录下新建一个目录 localStrategy,目录命名规则可以自定义,用于以下的步骤

(2)将从后台导出的json文件放到刚新建的目录下 src/main/assets/localStrategy

(3)如果调整localStrategy的名字,setPresetPlacementConfigPath传入的pathStr参数需对应传入调整后的字符串

2. iOS注意说明

(1)必须将从后台导出的json文件,放到工程所在的Bundle([NSBundle mainBundle],放置路径不能修改)

(2)pathStr参数对于iOS来说,不生效



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