开屏广告为用户在进入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(); |
/** * 通知sdk开始点睛动画 */ void startClickEye(boolean isSkip); | 新接口废弃 |
/** * 自定义倒计时,通知sdk开始点睛动画 */ void startClickEye(); | 保持一致 |
/** * 返回广告额外信息 */ Map<String, Object> getMediaExtraInfo(); | 保持一致 |
void renderExpressAd(TTNativeExpressAd.ExpressAdInteractionListener expressAdInteractionListener); | 新接口废弃 |
void splashClickEyeAnimationFinish(); | /** * 告知sdk展示点睛 * @param viewGroup */ void showSplashClickEyeView(ViewGroup viewGroup); |
/** * 开屏点睛接口 */ void setSplashClickEyeListener(ISplashClickEyeListener listener); | /** * 注册点睛阶段回调 * @param clickEyeListener */ void setSplashClickEyeListener(SplashClickEyeListener clickEyeListener); |
/** * 开屏卡片接口 */ void setSplashCardListener(ISplashCardListener listener); | /** * 注册卡片阶段回调 * @param cardListener */ void setSplashCardListener(SplashCardListener cardListener); |
int[] getSplashClickEyeSizeToDp(); | 保持一致 |
/** * 获取点睛view * @return */ View getSplashClickEyeView(); | |
/** * 获取卡片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(); |
参数 | 含义 |
setCodeId() | 平台创建的代码位ID 以8开头9位数字 |
setImageAcceptedSize() | 单位:px |
setExpressViewAcceptedSize() | 单位:dp |
setAdLoadType() | 用于标注此次的广告请求用途为预加载(当做缓存)还是实时加载,方便后续为开发者优化相关策略,传入参数值:UNKNOWN//未知,默认值,开发者未传入,或当此次加载的广告用途未知时使用PRELOAD//预加载,当此次加载的广告用途为预加载(当作缓存)时使用LOAD//实时加载,当此次加载的广告用途为实时播放时使用 |
注意: 调用ad.getSplashView()获取到SplashView
调用TTAdNative.loadSplashAd(AdSlot adSlot, CSJSplashAdListener listener, int timeOut)异步加载开屏广告。adslot为请求广告的信息,CSJSplashAdListener为广告加载成功或失败的回调,timeOut为加载开屏广告允许的最长时间(注:建议timeOut > 3500ms)。调用示例如下:
注意: 展示开屏有两种方式一是 调用ad.getSplashView()获取到SplashView,将SplashView添加到开屏容器中,二是调用ad.showSplashView(mSplashContainer) 传入开屏容器进行展示。
回调 | 说明 |
onSplashLoadSuccess() | 广告物料、素材加载成功回调 |
onSplashLoadSuccess(CSJSplashAd ad) | 5700及以上新增,开屏素材加载成功回调 |
onSplashLoadFail(CSJAdError csjAdError) | 广告物料或素材加载失败或超时回调 |
onSplashRenderSuccess(CSJSplashAd ad) | 广告渲染回调,接入方可以在这个回调中,调用ad.showSplashView(splashContainerView)进行渲染 |
onSplashRenderFail(CSJSplashAd ad, CSJAdError csjAdError) | 广告渲染失败或超时回调 返回的错误码(csjAdError)表示广告请求失败的原因,详情请见链接 |
回调 | 说明 |
onSplashAdClick | 广告点击回调 |
onSplashAdShow | 广告展示回调 |
onSplashAdClose | 广告关闭回调(倒计时结束和点击跳过) |
可在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高)
⑦自定义跳过按钮,使用点睛功能说明见https://www.csjplatform.com/support/doc/6109033c7d600700463e0b26
加载开屏广告具体示例详见Demo中的CSJSplashActivity
参数 | 含义 |
setCodeId() | 平台创建的代码位ID 以8开头9位数字 |
setImageAcceptedSize() | 单位:px |
setExpressViewAcceptedSize() | 单位:dp |
setAdLoadType() | 用于标注此次的广告请求用途为预加载(当做缓存)还是实时加载,方便后续为开发者优化相关策略,传入参数值:UNKNOWN//未知,默认值,开发者未传入,或当此次加载的广告用途未知时使用PRELOAD//预加载,当此次加载的广告用途为预加载(当作缓存)时使用LOAD//实时加载,当此次加载的广告用途为实时播放时使用 |
调用TTAdNative.loadSplashAd(AdSlot adSlot, SplashAdListener listener, int timeOut)异步加载开屏广告。adslot为请求广告的信息,SplashAdListener为广告加载成功或失败的回调,timeOut为加载开屏广告允许的最长时间(注:建议timeOut > 3500ms)。调用示例如下:
回调 | 说明 |
onError() | 广告请求失败回调 返回的错误码(code)表示广告请求失败的原因,详情请见链接 |
onTimeout() | 开屏广告加载超时回调 |
onSplashAdLoad() | 广告加载完成的回调,接入方可以在这个回调中进行展示 |
回调 | 说明 |
onAdClicked() | 广告点击回调 |
onAdShow() | 广告展示回调 |
onAdSkip() | 广告跳过回调 |
onAdTimeOver() | 广告倒计时结束回调 |
①模板渲染的开屏请求方法需设置setExpressViewAcceptedSize参数,单位dp。非模板渲染开屏请求方法需设置setImageAcceptedSize参数 单位px 。切记不可使用错误
②开屏广告加载超时时间建议大于3500ms,最大程度的保证广告的展示率可开屏体验,示例设置了3500ms
③为了收益最大化所有开屏广告均要实时请求,不可缓存。
④开发者要在onError()、onTimeout()、onAdSkip()、onAdTimeOver()回调及TTSplashAd广告为null时开发者做跳转主页面的处理,跳转之后开屏控件上的view移除。
⑤需要开发者在开屏Activity中onStop()中做一个标记 在onResume()中做跳转主页面的逻辑处理,跳转之后开屏控件上的view移除。
⑥如果要在底部添加自身logo,需要缩小的开屏广告的展示区域,此时请求的时候宽和高填写裁剪后宽和高即可,即请求尺寸为屏幕宽*(屏幕高-logo高)
⑦自定义跳过按钮,使用点睛功能说明见https://www.csjplatform.com/support/doc/6109033c7d600700463e0b26
加载开屏广告具体示例详见Demo中的SplashActivity
穿山甲的Demo中提供了两种类型的点睛示例:
具体示例代码请查看CSJSplashActivity,SplashClickEyeManager(主要用于实现开屏点睛动画管理类)
方法名 | 方法介绍 |
showSplashClickEyeView(ViewGroup viewGroup) | 该方法需要开发者在点睛动画结束时,主动调用通知穿山甲去做点睛view的改变逻辑。 |
setSplashClickEyeListener(SplashClickEyeListener clickEyeListener) | 通过将监听传递给穿山甲,穿山甲在合适的时机触发SplashClickEyeListener的各个接口方法,通知给开发者做不同操作。 |
int[] getSplashClickEyeSizeToDp() | 穿山甲传递给开发者的点睛View的推荐尺寸,建议开发者先使用该值去确定最终点睛View的大小。 |
View getSplashClickEyeView() | 可以通过该方法获取点睛的view |
方法名 | 方法介绍 |
onSplashClickEyeReadyToShow() | 当穿山甲满足开屏点睛条件时触发,开发者可以在该回调中开始展示点睛动画。 |
onSplashClickEyeClose() | 当穿山甲关闭点睛view时触发,开发者可以在该方法中做些资源回收,关闭开屏的操作。 |
onSplashClickEyeClick() |
当执行点睛动画时回调以下方法 | 方法介绍 |
animationStart(int animationTime) | 开始执行开屏点睛动画时调用,animationTime为点睛动画的执行时间,开发者可以自己定义。 |
animationEnd() | 点睛动画执行完成后调用 |
方法介绍在开屏的onSplashRenderSuccess广告渲染成功的回调中,进行初始化开屏相关的方法为:initSplashClickEyeData,该方法主要做两件事:
- 第一件事为实例化SplashClickEyeListener接口,将SplashClickEyeListener实例对象设置给穿山甲。
- 第二件事是将当前的CSJSplashAd和开屏view保持到SplashClickEyeManager单例中方法为setSplashInfo。
该方法用于两个Activity之间的开屏动画数据传递。
方法名 | 方法介绍 |
splashClickEyeAnimationFinish() | 该方法需要开发者在点睛动画结束时,主动调用通知穿山甲去做点睛view的改变逻辑。 |
setSplashClickEyeListener(ISplashClickEyeListener listener) | 通过将监听传递给穿山甲,穿山甲在合适的时机触发ISplashClickEyeListener的各个接口方法,通知给开发者做不同操作。 |
int[] getSplashClickEyeSizeToDp() | 穿山甲传递给开发者的点睛View的推荐尺寸,建议开发者先使用该值去确定最终点睛View的大小。 |
方法名 | 方法介绍 |
onSplashClickEyeAnimationStart() | 3600版本以及之后版本,当穿山甲满足开屏点睛条件时触发,开发者可以在该回调中开始展示点睛动画。 |
onSplashClickEyeAnimationFinish() | 3600版本以及之后版本,当穿山甲关闭点睛view时触发,开发者可以在该方法中做些资源回收,关闭开屏的操作。 |
isSupportSplashClickEye(boolean isSupport) | 3600版本以及之后版本,当穿山甲满足开屏点睛条件时触发,开发者可以在该方法中保持该boolean值,用于开屏两个activity判断是否需要展示开屏点睛时使用。 |
方法名 | 方法介绍 |
animationStart(int animationTime) | 开始执行开屏点睛动画时调用,animationTime为点睛动画的执行时间,开发者可以自己定义。 |
animationEnd() | 点睛动画执行完成后调用 |
方法介绍在开屏的onSplashAdLoad广告拉取成功的回调中,进行初始化开屏相关的方法为:initSplashClickEyeData,该方法主要做两件事:
- 第一件事为实例化ISplashClickEyeListener接口,将ISplashClickEyeListener实例对象设置给穿山甲。
- 第二件事是将当前的TTSplashAd和开屏view保持到SplashClickEyeManager单例中方法为setSplashInfo。
该方法用于两个Activity之间的开屏动画数据传递。
在线客服智能客服 7*24小时在线人工客服 工作日 10~12点/14~19点