Skip to content

插屏广告

插屏广告支持半屏/全屏。注意: 如果聚合集成了腾讯广告,则触发展示插屏广告的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();
			}
    	}

ApexAdx SDK Documentation