主题
插屏广告
插屏广告支持半屏/全屏。注意: 如果聚合集成了腾讯广告,则触发展示插屏广告的Activity必须配置:
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
1. 主要API
1.1 ApexAdxInterstitial
com.apex.adx.ApexAdxInterstitial
| 方法名 | 方法介绍 |
|---|---|
| ApexAdxInterstitial(Activity activity, ApexAdxInterstitialRequest request, ApexAdxInterstitialListener listener) | 构造方法。参数说明:activity(展示广告的 activity)、request(广告请求对象)。 listener(回调监听) |
| loadInterstitialAd() | 拉取广告。 |
| isReady() | 广告是否准备好,未准备好广告将无法展示。 |
| show( HashMap<String, String> options) | 展示广告。参数说明:options(广告展示时的扩展参数,可选)。 |
| show(Activity targetActivity, HashMap<String, String> options) | 展示广告。targetActivity:指定目标Activity,参数说明:options(广告展示时的扩展参数,可选)。 |
| destroy() | 销毁广告。 |
1.2 ApexAdxInterstitialRequest
com.apex.adx.req.ApexAdxInterstitialRequest
| 方法名 | 方法介绍 |
|---|---|
| ApexAdxInterstitialRequest(String pid, String userId, Map<String, Object> options) | 构造方法。参数说明:pid(广告位Id)、userId(用户Id可选)、options(扩展参数,可传任意)。 |
1.3 ApexAdxInterstitialListener
com.apex.adx.listener.ApexAdxInterstitialListener
| 方法名 | 方法介绍 |
|---|---|
| onInterstitialAdLoadSuccess(String pid) | 广告成功加载。参数说明:pid(广告位Id)。 |
| onInterstitialAdLoadError(ApexAdxError error, String pid) | 广告加载失败。参数说明:error(报错信息,具体可看其内部code和msg)、pid(报错的广告位Id)。 |
| onInterstitialAdPlayStart() | 广告成功展示,媒体可在此记录曝光。 |
| onInterstitialAdPlayError(ApexAdxError error, String pid) | 广告播放出错。参数说明:error(报错信息,具体可看其内部code和msg)、pid(报错的广告位Id)。 |
| onInterstitialAdPlayEnd() | 广告播放结束。 |
| onInterstitialAdClicked() | 广告被点击。 |
| onInterstitialAdClosed() | 广告关闭。 |
2. 接入代码示例
2.1 设置监听回调
java
private ApexAdxInterstitial interstitialAd;
/**
* PID 必填
* USER_ID 可选
* OPTIONS 自定义参数 可选
*/
ApexAdxInterstitialRequest request = new ApexAdxInterstitialRequest(PID, USER_ID, OPTIONS);
ApexAdxInterstitialListener listener = new ApexAdxInterstitialListener() {
@Override
public void onInterstitialAdLoadSuccess(String pid) {
}
@Override
public void onInterstitialAdPlayStart() {
}
@Override
public void onInterstitialAdPlayEnd() {
}
@Override
public void onInterstitialAdClicked() {
}
@Override
public void onInterstitialAdClosed() {
}
/**
* 加载广告错误回调
* ApexAdxError 插屏错误内容
* pid 广告位
*/
@Override
public void onInterstitialAdLoadError(ApexAdxError error, String pid) {
}
/**
* 播放错误回调
* ApexAdxError 插屏错误内容
* pid 广告位
*/
@Override
public void onInterstitialAdPlayError(final ApexAdxError error, final String pid) {
}
}
interstitialAd = new ApexAdxInterstitial(this, request, listener);2.2 插屏广告加载
java
/**
*同一个interstitial对象不建议在广告playing中重复load
*同一个interstitial对象在onClosed中可以load下一次广告
*/
if (interstitialAd != null) {
interstitialAd.loadInterstitialAd();
}2.3 插屏广告播放
java
/**
* 收到onLoadSuccess回调代表广告已ready
* option 自定义参数(可选)
*/
if (interstitialAd != null && interstitialAd.isReady()) {
interstitialAd.show(null);
}2.4 插屏广告预加载注意事项
- 平台默认开启预加载功能。
- sdk内部会在广告播放中再次去请求广告。
- 要注意当前页面全局使用同一个ApexAdxInterstitial对象。
- 广告播放时可先判断isReady(),如果ready直接播放,否则可再次调用loadAd()。
java
private ApexAdxInterstitial interstitialAd;;//全局对象
/**
* 加载广告示例
*/
private void loadAdDemo() {
// 先判断全局对象是否不为null 并且 是ready状态,如果是可以直接播放,否则去重新加载
if (interstitialAd != null && interstitialAd.isReady()) {
interstitialAd.show(null);
} else {
// 如果对象是null,先创建对象
if (interstitialAd == null) {
ApexAdxInterstitialRequest apexAdxInterstitialRequest = new ApexAdxInterstitialRequest(PID, null, null);
interstitialAd = new ApexAdxInterstitial(MainActivity.this, apexAdxInterstitialRequest, apexAdxInterstitialListener);
}
// 加载广告
interstitialAd.loadInterstitialAd();
}
}