开屏广告SDK的导入:
import 'package:anythink_sdk/at_index.dart';
loadSplash() async {
await ATSplashManager.loadSplash(
placementID: 'you placementId',
extraMap: {}
);
}
默认广告加载超时时间为5000毫秒,如果需要调整广告加载超时时间(单位:毫秒),则需要传以下参数,
tolerateTimeout(): int,必传,用于设置加载超时时间
loadSplash() async {
await ATSplashManager.loadSplash(
placementID: 'you placementId',
extraMap: {
ATSplashManager.tolerateTimeout(): 5000
});
}
使用以下代码判断是否有广告缓存:
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'
)
}
展示开屏广告只要调用展示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',
);
}
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;
}
});
}
为提高首次冷启动的广告加载效果,在开屏广告位上创建SDK预置策略的流量分组,然后在这个流量分组配置瀑布流,同时建议您增加一个兜底广告源,最后导出SDK预置策略并预置到应用中。具体接入文档见SDK预置策略使用说明。
配置效果: 可以实现SDK预置开屏策略,同时实现开屏兜底广告源的兜底功能。即:此兜底广告源会和广告位下的整体瀑布流并行发起请求。并且用户不会在首次请求时必定使用兜底广告,而是正常走瀑布流和兜底广告源的并行请求。可以实现变现价值最大化。
在初始化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来说,不生效