1. 全自动加载插屏广告介绍
全自动加载模式,是Taku推出的一站式请求维护方案,能够根据用户的使用状态和广告消耗进度,多节点智能判断下一条广告的预加载和缓存时机。在满足开发者运营策略的基础上,规避广告数据实时加载的失败风险和展示机会被浪费,减轻用户因为广告未加载或加载不流畅造成的负面情绪。通过全自动加载方案,开发者可以避免反复冗杂的人工干预请求方案,效率提升立竿见影。SDK开始支持全自动加载模式。
1.1 集成建议
(1) 初始化:在主Activity onCreate()
里调用ATInterstitialAutoAd.init(mainActivity,placementIds,listener)
并传入主Activity进行初始化,后续如需添加全自动加载广告位请调用addPlacementId(placementId)
添加
(2) 建议进入可展示广告场景后调用entryAdScenario(placementId,scenarioId)
统计当前广告位的缓存状态,具体的统计说明可查看广告场景区分不同业务场景的数据
(3) 展示广告:展示前判断isAdReady(placementId)
是否准备好,准备好后再调用show(activity,placement,listener)
进行广告展示
2. API说明
2.1 广告初始化
ATInterstitialAutoAd: 全自动加载插屏广告的管理类
方法 | 说明 |
---|---|
void init(Context context, String[] placementIds, ATInterstitialAutoLoadListener loadListener) | ATInterstitialAutoAd广告的初始化方法,初始化后即自动对指定广告位发起广告加载 context:如果有集成以下平台:优量汇、sigmob、百度、ironSource、Kidoz、Maio、Tabjoy,context必须是Activity placementIds:开启全自动加载的广告位Id(可传null) loadListener:广告填充回调,ATInterstitialAutoLoadListener说明见下方 |
初始化:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//建议在主Activity onCreate时传入Activity进行初始化
ATInterstitialAutoAd.init(MainActivity.this, new String[]{"your iv placementID1", "your iv placementID2"},autoLoadListener);
}
}
2.2 广告展示
ATInterstitialAutoAd:
方法 | 说明 |
---|---|
boolean isAdReady(String placementId) | 判断该广告位是否是否存在可展示的广告 placementId:需查询的广告位Id |
void show(Activity activity, String placementId, ATInterstitialAutoEventListener eventListener) | 展示该广告位插屏广告 activity:展示广告的Activity placementId:需展示的广告位Id eventListener:插屏广告展示回调,ATInterstitialAutoEventListener说明见下方 |
void show(Activity activity, String placementId, ATShowConfig showConfig, ATInterstitialAutoEventListener 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, ATInterstitialAutoEventListener eventListener) eventListener:参数意义同上 |
void entryAdScenario(String placementId, String scenarioId) | 对应广告位进入业务场景缓存状态统计 placementId:广告位Id scenario:广告展示场景,可从后台创建场景参数和使用请参考 业务场景缓存状态统计 |
广告展示:
/*
为了统计场景到达率,相关信息可查阅 "https://help.takuad.com/docs/1RWLAv"
在满足广告触发条件时调用“进入广告场景”方法,比如:
** 广告场景是在清理结束后弹出广告,则在清理结束时调用;
* 1、先调用 "entryAdScenario"
* 2、在调用 "isAdReady" 是否可展示
* 3、最后调用 "show" 展示
* 4、scenario 传入场景id后台场景管理才会有数据显示
*/
ATInterstitial.entryAdScenario("your iv placementID1", "your scenarioID"");
//需判断广告位是否准备好
if(ATInterstitialAutoAd.isAdReady("your iv placementID1")){
ATInterstitialAutoAd.show(activity, "your iv placementID1","your scenarioID", autoEventListener);
}
2.3 广告对象
ATInterstitialAutoAd:
方法 | 说明 |
---|---|
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() | 判断当前广告位是否存在可展示的广告,与ATInterstitialAutoAd.isAdReady()方法作用相同 |
getATTopAdInfo | 获取当前广告位优先级最高的广告缓存信息 ATAdInfo对象 ATAdInfo:广告的信息对象,可区分广告平台,主要包含第三方聚合平台的id信息 见ATAdInfo信息说明 |
2.4 广告监听
ATInterstitialAutoLoadListener:ATInterstitialAutoAd广告的加载事件回调监听:
方法 | 说明 |
---|---|
void onInterstitialAutoLoaded(String placementId) | 对应广告位广告加载成功回调 placementId:对应广告位Id |
void onInterstitialAutoLoadFail(String placementId, AdError adError) | 对应广告位广告加载失败回调 placementId:广告位Id adError:广告加载失败信息,可通过AdError.getFullErrorInfo()获取全部错误信息,请参考 AdError |
监听示例:
private static final ATInterstitialAutoLoadListener autoLoadListener = new ATInterstitialAutoLoadListener() {
@Override
public void onInterstitialAutoLoaded(String placementId) {
Log.i(TAG, "PlacementId:" + placementId + ": onInterstitialAutoLoaded");
}
@Override
public void onInterstitialAutoLoadFail(String placementId, AdError adError) {
Log.i(TAG, "PlacementId:" + placementId + ": onInterstitialAutoLoadFail:\n" + adError.getFullErrorInfo());
};
ATInterstitialAutoEventListener:ATInterstitialAutoAd广告的事件回调监听:
方法 | 说明 |
---|---|
void onInterstitialAdClicked(ATAdInfo atAdInfo) | 广告点击回调 ATAdInfo:广告的信息对象,可区分广告平台,主要包含第三方聚合平台的id信息 见ATAdInfo信息说明 |
void onInterstitialAdShow(ATAdInfo atAdInfo) | 广告展示回调 参数意义同上 |
void onInterstitialAdClose(ATAdInfo atAdInfo) | 广告关闭回调 参数意义同上 |
void onInterstitialAdVideoStart(ATAdInfo atAdInfo) | 视频广告开始播放回调 参数意义同上 |
void onInterstitialAdVideoEnd(ATAdInfo atAdInfo) | 视频广告播放结束回调 参数意义同上 |
void onInterstitialAdVideoError(AdError adError) | 视频广告播放失败回调 adError:可通过AdError.getFullErrorInfo()获取全部错误信息,请参考 AdError |
监听示例:
private static final ATInterstitialAutoEventListener autoEventListener = new ATInterstitialAutoEventListener() {
@Override
public void onInterstitialAdClicked(ATAdInfo adInfo) {
Log.i(TAG, "onInterstitialAdClicked:" + adInfo.toString());
@Override
public void onInterstitialAdShow(ATAdInfo adInfo) {
Log.i(TAG, "onInterstitialAdShow:" + adInfo.toString());
}
@Override
public void onInterstitialAdClose(ATAdInfo adInfo) {
Log.i(TAG, "onInterstitialAdClose:" + adInfo.toString());
}
@Override
public void onInterstitialAdVideoStart(ATAdInfo adInfo) {
Log.i(TAG, "onInterstitialAdVideoStart:" + adInfo.toString());
}
@Override
public void onInterstitialAdVideoEnd(ATAdInfo adInfo) {
Log.i(TAG, "onInterstitialAdVideoEnd:" + adInfo.toString());
}
@Override
public void onInterstitialAdVideoError(AdError adError) {
Log.i(TAG, "onInterstitialAdVideoError:" + adError.getFullErrorInfo());
}
};
3示例代码
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//建议在主Activity onCreate时传入Activity进行初始化
ATInterstitialAutoAd.init(MainActivity.this, new String[]{"placementId1", "placementId2"},autoLoadListener);
}
private static final ATInterstitialAutoLoadListener autoLoadListener = new ATInterstitialAutoLoadListener() {
@Override
public void onInterstitialAutoLoaded(String placementId) {
Log.i(TAG, "PlacementId:" + placementId + ": onInterstitialAutoLoaded");
}
@Override
public void onInterstitialAutoLoadFail(String placementId, AdError adError) {
Log.i(TAG, "PlacementId:" + placementId + ": onInterstitialAutoLoadFail:\n" + adError.getFullErrorInfo());
};
/*
为了统计场景到达率,相关信息可查阅 "https://docs.takuad.com/#/zh-cn/android/NetworkAccess/scenario/scenario"
在满足广告触发条件时调用“进入广告场景”方法,比如:
** 广告场景是在清理结束后弹出广告,则在清理结束时调用;
* 1、先调用 "entryAdScenario"
* 2、在调用 "isAdReady" 是否可展示
* 3、最后调用 "show" 展示
* 4、scenario 传入场景id后台场景管理才会有数据显示
*/
ATInterstitial.entryAdScenario(placementId, "scenario");
//需判断广告位是否准备好
if(ATInterstitialAutoAd.isAdReady("placementId1")){
ATInterstitialAutoAd.show(activity, "placementId1","scenario", autoEventListener);
}
private static final ATInterstitialAutoEventListener autoEventListener = new ATInterstitialAutoEventListener() {
@Override
public void onInterstitialAdClicked(ATAdInfo adInfo) {
Log.i(TAG, "onInterstitialAdClicked:" + adInfo.toString());
@Override
public void onInterstitialAdShow(ATAdInfo adInfo) {
Log.i(TAG, "onInterstitialAdShow:" + adInfo.toString()); }
@Override
public void onInterstitialAdClose(ATAdInfo adInfo) {
Log.i(TAG, "onInterstitialAdClose:" + adInfo.toString()); }
@Override
public void onInterstitialAdVideoStart(ATAdInfo adInfo) {
Log.i(TAG, "onInterstitialAdVideoStart:" + adInfo.toString()); }
@Override
public void onInterstitialAdVideoEnd(ATAdInfo adInfo) {
Log.i(TAG, "onInterstitialAdVideoEnd:" + adInfo.toString()); }
@Override
public void onInterstitialAdVideoError(AdError adError) {
Log.i(TAG, "onInterstitialAdVideoError:" + adError.getFullErrorInfo());
}
};
}
详细插屏广告示例代码请参考:Demo的InterstitialAdActivity类