中文
登录
后可查看全部文档
开发测试/Android集成文档/开屏广告
开屏广告
最近更新 2025-05-19 14:48:56

简介

开屏广告为用户在进入App时展示的全屏广告。开屏广告为一个View,宽高默认为match_parent。注意: 开屏广告view:width =屏幕宽;height需要>=75%屏幕高 ,否则会影响计费。为提高开发者的收入体验,穿山甲4700版本上线新版开屏广告降低开发者的接入成本。

支持的广告尺寸:开屏广告的尺寸为开发者请求广告时设置的尺寸,建议设置的请求尺寸传入与展示区域大小保持一致,避免素材变形。

重大变化

为提高开发者的收入及接入体验,4700版本开始,开发者需重新接入开屏功能,否则将无法成功请求开屏广告。

接口删除&新增

在创建TTAdNative对象以及创建广告请求AdSlot阶段和之前保持一致,在调用loadSplashAd接口时新增了新的加载开屏接口,新老接口对比以及示例:

SplashAdListener(旧接口)

CSJSplashAdListener(新接口)

/** * 加载失败回调 * * @param code * @param message */ void onError(int code, String message);

//广告物料或素材加载失败或超时回调 void onSplashLoadFail(CSJAdError csjAdError);



//广告渲染失败或超时回调 void onSplashRenderFail(CSJSplashAd ad, CSJAdError csjAdError);



csjAdError.getCode() == 1,物料加载失败

csjAdError.getCode() == 2,素材加载失败

csjAdError.getCode() == 3,渲染失败、渲染超时

/** * 开屏广告加载超时回调 */ void onTimeout();

/** * 广告物料、素材加载失败或超时回调 * 如果媒体想判断是否是超时回调可以通过 csjAdError.getCode() == 23进行判断 * code为23则为超时回调 * @param csjAdError */ void onSplashLoadFail(CSJAdError csjAdError);


/** * 广告渲染失败或超时回调 * 如果媒体想判断是否是超时回调可以通过 csjAdError.getCode() == 23进行判断 * code为23则为超时回调 * @param csjAdError */ void onSplashRenderFail(CSJAdError csjAdError);

/** * 广告加载完成的回调,接入方可以在这个回调中进行渲染 * @param ad 开屏广告接口 */ void onSplashAdLoad(TTSplashAd ad);

/** * 广告渲染回调,接入方可以在这个回调中,调用ad.showSplashView(splashContainerView)进行渲染,也可以自己同个ad对象获取开屏view自己添加到容器进行渲染。 * @param ad 开屏广告接口 */ void onSplashRenderSuccess(CSJSplashAd ad);



//广告物料、素材加载成功回调 void onSplashLoadSuccess();



//更新5700及以上api的onSplashLoadSuccess示例

@Override

public void onSplashLoadSuccess(CSJSplashAd ad) {

}

注意:触发onSplashLoadSuccess(CSJSplashAd ad)回调时机时,建议开发者不要使用getSplashView添加视图,因为此时还暂未渲染成功,建议只参与竞价,统一在渲染成功onSplashRenderSuccess(CSJSplashAd ad) 处 使用showSplashView(Container) 添加视图


开屏广告接口回调变更

TTSplashAd(广告旧接口)

CSJSplashAd(广告新接口)

/** * 获取开屏广告View * * @return */ View getSplashView();

保持一致


/** * 得到Splash广告的交互类型 * @return 2在浏览器内打开 (普通类型)3落地页(普通类型),5:拨打电话 -1 未知类型 */ int getInteractionType();

保持一致

/** * 注册Splash广告交互回调 * @param listener 监听器 */ void setSplashInteractionListener(AdInteractionListener listener);

/** * 注册开屏阶段回调 * @param splashAdListener */ void setSplashAdListener(SplashAdListener splashAdListener);

/** * 注册Splash广告的下载回调 * @param downloadListener 下载回调监听器 */ void setDownloadListener(TTAppDownloadListener downloadListener);

保持一致

/** * 设置开屏广告不开启倒计时功能、不显示跳过按钮 */ void setNotAllowSdkCountdown();

/** * 设置开屏广告不开启倒计时功能、不显示跳过按钮 */ void hideSkipButton();

/** * 返回广告额外信息 */ Map<String, Object> getMediaExtraInfo();

保持一致

void renderExpressAd(TTNativeExpressAd.ExpressAdInteractionListener expressAdInteractionListener);

新接口废弃


/** * 开屏卡片接口 */ void setSplashCardListener(ISplashCardListener listener);

/** * 注册卡片阶段回调 * @param cardListener */ void setSplashCardListener(SplashCardListener cardListener);

int[] getSplashClickEyeSizeToDp();

保持一致


/** * 获取卡片view * @return */ View getSplashCardView();


/** * 告知sdk展示开屏 * @param viewGroup */ void showSplashView(ViewGroup viewGroup);


/** * 告知sdk展示卡片 * @param viewGroup */ void showSplashCardView(ViewGroup viewGroup, Activity activity);

开屏交互接口变更

AdInteractionListener(旧接口)

SplashAdListener(新接口)

/** * Splash广告的点击回调 * @param view Splash广告 * @param type Splash广告的交互类型 */ void onAdClicked(View view, int type);

//开屏点击 void onSplashAdClick(CSJSplashAd ad);


/** * Splash广告的展示回调 每个广告仅回调一次 * @param view Splash广告 * @param type Splash广告的交互类型 */ void onAdShow(View view, int type);


//开屏展示 void onSplashAdShow(CSJSplashAd ad);

/** * 点击跳过时回调 */ void onAdSkip();

//开屏关闭(开屏跳过以及倒计时结束统一收敛到该接口) void onSplashAdClose(CSJSplashAd ad, int closeType);


/** * 广告播放时间结束 */ void onAdTimeOver();

开屏接入-[V4700+]接口使用说明

创建广告对象及请求参数

  • 创建TTAdNative对象
复制
  • 创建广告请求AdSlot
复制
  • 参数说明

参数

含义

setCodeId()

平台创建的代码位ID 以8开头9位数字

setImageAcceptedSize()

单位:px

setExpressViewAcceptedSize()

单位:dp

setAdLoadType()

用于标注此次的广告请求用途为预加载(当做缓存)还是实时加载,方便后续为开发者优化相关策略,传入参数值:UNKNOWN//未知,默认值,开发者未传入,或当此次加载的广告用途未知时使用PRELOAD//预加载,当此次加载的广告用途为预加载(当作缓存)时使用LOAD//实时加载,当此次加载的广告用途为实时播放时使用

  • CSJSplashAd广告接口说明
复制

注意: 调用ad.getSplashView()获取到SplashView

请求广告

调用TTAdNative.loadSplashAd(AdSlot adSlot, CSJSplashAdListener listener, int timeOut)异步加载开屏广告。adslot为请求广告的信息,CSJSplashAdListener为广告加载成功或失败的回调,timeOut为加载开屏广告允许的最长时间(注:建议timeOut > 3500ms)。调用示例如下:

复制

注意: 展示开屏有两种方式一是 调用ad.getSplashView()获取到SplashView,将SplashView添加到开屏容器中,二是调用ad.showSplashView(mSplashContainer) 传入开屏容器进行展示。

  • CSJSplashAdListener说明

回调

说明

onSplashLoadSuccess()

广告物料、素材加载成功回调

onSplashLoadSuccess(CSJSplashAd ad)

5700及以上新增,开屏素材加载成功回调

onSplashLoadFail(CSJAdError csjAdError)

广告物料或素材加载失败或超时回调

onSplashRenderSuccess(CSJSplashAd ad)

广告渲染回调,接入方可以在这个回调中,调用ad.showSplashView(splashContainerView)进行渲染 

onSplashRenderFail(CSJSplashAd ad, CSJAdError csjAdError)

广告渲染失败或超时回调 返回的错误码(csjAdError)表示广告请求失败的原因,详情请见链接

广告交互监听器

复制
  • SplashAdListener说明

回调

说明

onSplashAdClick

广告点击回调

onSplashAdShow

广告展示回调

onSplashAdClose

广告关闭回调(倒计时结束和点击跳过)

移除广告view

可在Activity跳转到其他Activity时把广告控件上的广告视图remove掉mSplashContainer.removeAllViews();

接入须知

①模板渲染的开屏请求方法需设置setExpressViewAcceptedSize参数 单位dp。非模板渲染开屏请求方法需设置setImageAcceptedSize参数 单位px 。切记不可使用错误

②开屏广告加载超时时间建议大于3500ms,最大程度的保证广告的展示率可开屏体验,示例设置了3500ms

③为了收益最大化所有开屏广告均要实时请求,不可缓存。

④开发者要在onSplashLoadFail()、onSplashRenderFail()、onSplashAdClose()回调及CSJSplashAd广告为null时开发者做跳转主页面的处理,跳转之后开屏控件上的view移除。

⑤需要开发者在开屏Activity中onStop()中做一个标记 在onResume()中做跳转主页面的逻辑处理,跳转之后开屏控件上的view移除。

触发onSplashLoadSuccess(CSJSplashAd ad)回调时机时,建议开发者不要使用getSplashView添加视图,因为此时还暂未渲染成功,建议只参与竞价,统一在渲染成功onSplashRenderSuccess(CSJSplashAd ad) 处 使用showSplashView(Container) 添加视图。

复制

⑥如果要在底部添加自身logo,需要缩小的开屏广告的展示区域,此时请求的时候宽和高填写裁剪后宽和高即可,即请求尺寸为屏幕宽*(屏幕高-logo高)

资源

加载开屏广告具体示例详见Demo中的CSJSplashActivity

开屏接入-[V<4700]接口使用说明

创建广告对象及请求参数

  • 创建TTAdNative对象
复制
  • 创建广告请求AdSlot
复制
  • 参数说明

参数

含义

setCodeId()

平台创建的代码位ID 以8开头9位数字

setImageAcceptedSize()

单位:px

setExpressViewAcceptedSize()

单位:dp

setAdLoadType()

用于标注此次的广告请求用途为预加载(当做缓存)还是实时加载,方便后续为开发者优化相关策略,传入参数值:UNKNOWN//未知,默认值,开发者未传入,或当此次加载的广告用途未知时使用PRELOAD//预加载,当此次加载的广告用途为预加载(当作缓存)时使用LOAD//实时加载,当此次加载的广告用途为实时播放时使用

  • TTSplashAd广告接口说明
复制

请求广告

调用TTAdNative.loadSplashAd(AdSlot adSlot, SplashAdListener listener, int timeOut)异步加载开屏广告。adslot为请求广告的信息,SplashAdListener为广告加载成功或失败的回调,timeOut为加载开屏广告允许的最长时间(注:建议timeOut > 3500ms)。调用示例如下:

复制
  • SplashAdListener说明

回调

说明

onError()

广告请求失败回调 返回的错误码(code)表示广告请求失败的原因,详情请见链接

onTimeout()

开屏广告加载超时回调

onSplashAdLoad()

广告加载完成的回调,接入方可以在这个回调中进行展示

广告交互监听器

复制
  • AdInteractionListener说明

回调

说明

onAdClicked()

广告点击回调

onAdShow()

广告展示回调

onAdSkip()

广告跳过回调

onAdTimeOver()

广告倒计时结束回调

接入须知

①模板渲染的开屏请求方法需设置setExpressViewAcceptedSize参数,单位dp。非模板渲染开屏请求方法需设置setImageAcceptedSize参数 单位px 。切记不可使用错误

②开屏广告加载超时时间建议大于3500ms,最大程度的保证广告的展示率可开屏体验,示例设置了3500ms

③为了收益最大化所有开屏广告均要实时请求,不可缓存。

④开发者要在onError()、onTimeout()、onAdSkip()、onAdTimeOver()回调及TTSplashAd广告为null时开发者做跳转主页面的处理,跳转之后开屏控件上的view移除。

⑤需要开发者在开屏Activity中onStop()中做一个标记 在onResume()中做跳转主页面的逻辑处理,跳转之后开屏控件上的view移除。

复制

⑥如果要在底部添加自身logo,需要缩小的开屏广告的展示区域,此时请求的时候宽和高填写裁剪后宽和高即可,即请求尺寸为屏幕宽*(屏幕高-logo高)

资源

加载开屏广告具体示例详见Demo中的SplashActivity


本篇目录
联系我们