京东渲染开屏广告
SDK 为接入方提供了开屏广告,开屏广告为用户在进入 App 时展示的全屏广告。
注意:针对 2.0.0 以前升级用户
1.广告接口有变动,请详细对照以下接入说明 2、广告渲染成功后,接入媒体自行把返回的adView 添加到广告容器中,不要再调用showAd(ViewGroup viewGroup)
开始之前
在开始集成开屏广告之前,您需要完成以下步骤:
- 在京媒合作平台创建开发者账号,添加应用,然后申请并配置一个京东渲染开屏的代码位。
将 Android SDK 集成到您的开发项目并完成 SDK 初始化操作
注意❗️❗❗️ 2.1.0及后续版本,区分了京东渲染与媒体渲染代码位,如采用京东渲染接口加载广告,需传入京东渲染代码位
- 注意❗️❗❗️ 2.1.0及后续版本,京东渲染开屏只需要创建一个代码位即可,SDK不再做入参尺寸比例的强校验,接入方传入宽高为期望广告大小,为更好展示广告,建议传入的宽高符合京媒平台广告样式
Step 1. 初始化 JADSplash 对象
京媒SDK 触发一系列事件来通知您 Splash 广告加载、展示等活动。首先,需要创建 JADSplash 对象,设置广告位对应的JADSlot配置。
JADSlot slot = new JADSlot.Builder()
.setSlotID(slotId)//广告位ID
.setSize(expressViewWidth, expressViewHeight)//期望个性化模板广告view的size,单位dp
.setTolerateTime(3.5f)//广告加载容忍时间。如果设定的时间内没有加载到广告,则判断加载失败
.setSkipTime(5) //倒计时时间 单位:秒
.setSkipButtonHidden(false) //是否隐藏 跳过 按钮
.build();
mJADSplash = new JADSplash(this, slot);
Step 2. 加载开屏广告
调用 loadAd 方法来请求广告,设置并实现监听事件的 JADSplashListener。
mJADSplash.loadAd(new JADSplashListener() {
/**
* 广告数据加载成功
*/
@Override
public void onLoadSuccess() {
// TODO:广告数据返回上报
}
/**
* 广告数据加载失败
*
* @param code 错误码
* @param error 错误描述信息
*/
@Override
public void onLoadFailure(int code, String error) {
}
/**
* 广告视图渲染成功
*
* @param view 广告视图
*/
@Override
public void onRenderSuccess(View adView) {
// TODO:1. 广告渲染完成上报
// TODO:2. 将返回广告视图adView添加到自己广告容器中进行展示
}
/**
* 广告渲染失败
*
* @param code 错误码
* @param error 错误描述信息
*/
@Override
public void onRenderFailure(int code, String error) {
}
/**
* 广告曝光
*/
@Override
public void onExposure() {
// TODO 广告曝光上报
}
/**
* 广告点击
*/
@Override
public void onClick() {
// TODO 广告点击上报
}
/**
* 广告关闭
*/
@Override
public void onClose() {
}
});
Step 3. 展示开屏广告
在渲染成功后,使用 onRenderSuccess 接口返回的View添加到自己的容器中。
mSplashContainer.addView(adView);
Step 4. 销毁 JADSplash 对象
建议您在销毁之前调用destroy方法来释放 JADSplash 对象。
@Override
public void onDestroy() {
super.onDestroy();
if(mJADSplash != null) {
mJADSplash.destroy()
mJADSplash = null;
}
}
移除广告view
可在Activity跳转到其他Activity时把广告控件上的广告视图remove掉
mSplashAdContainer.removeAllViews();
获取广告价格
// 获取竞价价格,广告加载成功后才能获取到价格,单位:分
int price = mJADSplash.getJADExtra().getPrice();
设置点击区域类型
public interface ClickStyle{
int SERVER = 0;//默认:采用服务端配置
int ONLY_TEXT = 1;//只显示文案,全屏可点击
int ONLY_TEXT_CLICK = 2;//只有文案部分可点击
int NORMAL = 3; //不处理,无文案,全屏可点击
int SHOW_TEXT_MASK = 4;//全屏可点击,且显示文字蒙层
}
自定义关闭广告
媒体需要通过调用 removeSplashView 方法来关闭广告,否则会影响曝光。
mJADSplash.removeSplashView();
如需SDK提供倒计时,可调用setCountDownListener方法,如下:
mJADSplash.setCountDownListener(new JADSplashCountDownListener() {
@Override
public void onCountdown(int time) {
}
});
预缓存广告
媒体可通过调用 preloadAd 方法来预缓存广告。
mJADSplash.preloadAd();
参考Demo
广告具体示例详见Demo中的 ESplashAdActivity
开屏广告注意点:
1、开发则需要在 onLoadFailure(),onRenderFailure(),onClose() 回调函数做跳转主页面的处理
2、需要开发者在开屏Activity中onStop()中做一个标记 在onResume()中做跳转主页面的逻辑处理,跳转之后开屏控件上的view移除
@Override
protected void onResume() {
super.onResume();
//判断是否该跳转到主页面
if (mForceGoMain) {
openMainActivity();
}
}
@Override
protected void onStop() {
super.onStop();
mForceGoMain = true;
}
3、开屏宽度必须为屏幕宽度,高度需不小于屏幕高度的50%,且展示时长不小于1s,否则不能有效曝光