插屏广告
大约 3 分钟
插屏广告
概述
插屏广告是移动广告的一种常见形式,一般在应用使用过程中弹出,用户可以选择点击广告以访问目标网址,或者关闭广告以返回应用。
插屏广告有两种形式:半屏和全屏。两者都覆盖整个屏幕,区别在于广告内容的展示区域大小。半屏广告在展示区域之外,背景为半透明。
广告加载和展示
使用SAAllianceAdSdk.getSAAllianceAdManager().createSAAllianceAd()
获取SAAllianceAd
接口类型对象;
调用loadSAInterstitialAd(SAAllianceAdParams params, SAInterstitialAdLoadListener listener)
进行广告加载;
调用showInterstitial(Activity activity)
方法进行广告展示。
SAAllianceAd插屏相关方法说明
方法 | 说明 |
---|---|
void loadSAInterstitialAd(SAAllianceAdParams params, SAInterstitialAdLoadListener listener); | 加载插屏广告 |
void showInterstitial(Activity activity) | 展示插屏广告,传入插屏广告视图所要的Activity。 在 SAInterstitialAdLoadListener.onInterstitialAdLoad() 回调后调用 |
SAInterstitialAdLoadListener说明
方法 | 说明 |
---|---|
void onInterstitialAdLoad(SAInterstitialAd ad); | 加载成功,SAInterstitialAd ad插屏广告对象 |
void onError(int code, String message); | 加载失败,code 错误码,message 错误信息 |
void onResourceLoad(); | 广告素材加载成功 |
void onTimeOut() | 加载超时 |
SAInterstitialAd说明
加载获取到的插屏广告实例,用于生命周期监听,获取价格等
方法 | 说明 |
---|---|
void setInterstitialAdInteractionListener(SAInterstitialAdInteractionListener listener); | 设置生命周期监听,在调用showInterstitial()方法之前设置 |
String getECPM(); | 获取广告价格,单位:分 |
void destroy(); | 销毁广告 |
loadSAInterstitialAd方法说明
参数 | 说明 | 是否必填 |
---|---|---|
SAAllianceAdParams params | 广告参数 | 必填 |
SAInterstitialAdLoadListener listener | 插屏广告加载结果回调 | 必填 |
SAAllianceAdParams说明
方法 | 广告参数配置 | 是否必填 |
---|---|---|
setPosId(String posId) | 广告位id | 必填 |
setMute(boolean isMute) | 设置是否静音,默认静音 | 可选 |
SAInterstitialAdInteractionListener 广告生命周期回调
方法 | 说明 |
---|---|
void onAdClick() | 插屏点击 |
void onAdShow() | 插屏展示 |
void onAdDismiss() | 插屏关闭 |
void onAdError(int code, String message); | 插屏展示错误,code 错误码,message 错误信息 |
void onSkippedVideo(); | 插屏跳过 |
请求插屏示例
private void loadInterstitialAd(Activity context, String posId, int width, int height) {
//设置广告参数
SAAllianceAdParams params = new SAAllianceAdParams();
params.setPosId(sposId); //设置广告位ID
params.setMute(true); //设置视频素材是否默认静音,默认为true
//广告对象初始化
SAAllianceAd saAllianceAd = SAAllianceAdSdk.getSAAllianceAdManager().createSAAllianceAd(context);
saAllianceAd.loadSAInterstitialAd(params, new SAInterstitialAdLoadListener() {
@Override
public void onInterstitialAdLoad(SAInterstitialAd saInterstitialAd) {
if (saInterstitialAd == null) {
Log.e(TAG, "广告加载失败");
return;
}
String ecpm = saInterstitialAd.getECPM(); //获取广告价格,单位分
//设置广告交互监听
saInterstitialAd.setInterstitialAdInteractionListener(new SAInterstitialAdInteractionListener() {
@Override
public void onAdShow() {
Log.i(TAG, "广告成功展示");
}
@Override
public void onAdClick() {
Log.i(TAG, "广告点击");
}
@Override
public void onAdDismiss() {
Log.i(TAG, "广告关闭");
destroyInterstitialAd();//在这里销毁广告
}
@Override
public void onAdError(int code, String message) {
Log.e(TAG, "广告展示失败,code = " + code + ", msg = " + msg);
}
@Override
public void onSkippedVideo() {
Log.i(TAG, "广告跳过");
destroyInterstitialAd();//在这里销毁广告
}
}); //setInterstitialAdInteractionListener end
//展示广告
if (saAllianceAd != null && activity != null) {
saAllianceAd.showInterstitial(activity);
}
} //onInterstitialAdLoad end
@Override
public void onError(int code, String msg) {
Log.e(TAG, "广告加载失败,code = " + code + ", msg = " + msg);
}
@Override
public void onResourceLoad() {
}
}); //loadSAInterstitialAd end
}
private void destroyInterstitialAd() {
Log.i(TAG, "销毁广告");
if (saInterstitialAd != null) {
saInterstitialAd.destroy();
saInterstitialAd = null;
}
}
广告展示
建议在onInterstitialAdLoad方法加载完毕后,再调用showInterstitial方法进行广告展示
if (saAllianceAd != null && activity != null) {
saAllianceAd.showInterstitial(activity);
}