开屏广告
大约 3 分钟
开屏广告
概述
开屏广告是应用程序启动时呈现的全屏广告,开发者只需遵循标准接入流程即可展示广告视图。开屏广告在应用启动时显示,持续5秒后自动关闭。用户也可以点击“跳过”快速进入主界面,或点击广告了解更多信息。
广告加载和展示
使用SAAllianceAdSdk.getSAAllianceAdManager().createSAAllianceAd()
获取SAAllianceAd接口类型对象;
调用loadSASplashAd(SAAllianceAdParams params, ViewGroup containers, int timeOut, SASplashAdLoadListener listener)
进行广告加载;
调用showSplash(ViewGroup container)
方法进行广告展示。
SAAllianceAd开屏相关方法说明
方法 | 说明 |
---|---|
void loadSASplashAd(SAAllianceAdParams params, ViewGroup containers, int timeOut, SASplashAdLoadListener listener); | 加载开屏广告 |
void showSplash(ViewGroup container) | 展示开屏广告,传入开屏广告视图所要的容器。 在 SASplashAdLoadListener.onSplashAdLoad() 回调后调用 |
SASplashAdLoadListener说明
方法 | 说明 |
---|---|
void onSplashAdLoad(SASplashAd ad) | 加载成功,SASplashAd ad开屏广告对象 |
void onError(int code, String message) | 加载失败,code 错误码,message 错误信息 |
void onResourceLoad() | 广告素材加载成功 |
void onTimeOut() | 加载超时 |
SASplashAd说明
加载获取到的开屏广告实例,用于生命周期监听,获取价格等
方法 | 说明 |
---|---|
void setSplashAdInteractionListener(SASplashAdInteractionListener listener) | 设置生命周期监听,在调用showSplash()方法之前设置 |
String getECPM() | 获取广告价格,单位:分 |
void destroy() | 销毁广告 |
loadSASplashAd方法说明
参数 | 说明 | 是否必填 |
---|---|---|
SAAllianceAdParams params | 广告参数 | 必填 |
ViewGroup containers | 开屏广告视图容器 | 可选 |
int timeOut | 加载广告超时设置,单位毫秒 | |
SASplashAdLoadListener listener | 开屏广告加载结果回调 | 必填 |
SAAllianceAdParams说明
方法 | 广告参数配置 | 是否必填 |
---|---|---|
setPosId(String posId) | 广告位id | 必填 |
setMute(boolean isMute) | 设置是否静音,默认静音 | 可选 |
SASplashAdInteractionListener广告生命周期回调
方法 | 说明 |
---|---|
void onAdClick() | 开屏点击 |
void onAdShow() | 开屏展示 |
void onAdSkip() | 开屏跳过 |
void onAdTimeOver() | 广告倒计时结束 |
请求开屏示例
private void loadSplashAd(Activity context, String sposId, ViewGroup viewGroup) {
//设置广告参数
SAAllianceAdParams params = new SAAllianceAdParams();
params.setPosId(sposId); //设置广告位ID
params.setMute(true); //设置视频素材是否默认静音,默认为true
//广告对象初始化
/* 注意:传入的context和展示广告的context需一致 */
SAAllianceAd saAllianceAd = SAAllianceAdSdk.getSAAllianceAdManager().createSAAllianceAd(context);
/**
* @param i 广告加载等待时间,单位ms,此处示例3000(3秒)
*/
saAllianceAd.loadSASplashAd(params, null, 3000, new SASplashAdLoadListener() {
@Override
public void onTimeOut() {
Log.e(TAG, "广告加载超时");
}
@Override
public void onSplashAdLoad(SASplashAd saSplashAd) {
if (saSplashAd == null) {
Log.e(TAG, "广告加载失败");
return;
}
String ecpm = saSplashAd.getECPM(); //获取广告价格,单位分
//设置广告交互监听
saSplashAd.setSplashAdInteractionListener(new SASplashAdInteractionListener() {
@Override
public void onAdClick() {
Log.i(TAG, "广告点击");
}
@Override
public void onAdShow() {
Log.i(TAG, "广告成功展示");
}
@Override
public void onAdTimeOver() {
Log.i(TAG, "广告倒计时结束");
destroySplashAd(); //在这里销毁广告
}
@Override
public void onAdSkip() {
Log.i(TAG, "点击跳过");
destroySplashAd(); //在这里销毁广告
}
}); //setSplashAdInteractionListener end
//将广告添加到容器中进行展示
if (saAllianceAd != null && viewGroup != null) {
viewGroup.removeAllViews();
/* 开屏广告会填充满容器,所以需要保证容器有宽高 */
saAllianceAd.showSplash(viewGroup);
}
} //onSplashAdLoad end
@Override
public void onError(int code, String msg) {
Log.e(TAG, "广告加载失败,code = " + code + ", msg = " + msg);
}
@Override
public void onResourceLoad() {
}
}); //loadSASplashAd end
}
private void destroySplashAd() {
Log.i(TAG, "销毁广告");
if (saSplashAd != null) {
saSplashAd.destroy();
saSplashAd = null;
}
}
展示广告
建议在onSplashAdLoad方法加载完毕后,再调用showSplash方法进行广告展示
if (saAllianceAd !=null && viewGroup !=null) {
viewGroup.removeAllViews();
saAllianceAd.showSplash(viewGroup);
}