开屏广告
简介
SDK为接入方提供了开屏广告,开屏广告建议为用户在进入App时展示的全屏广告。开屏广告为一个View,宽高默认为match_parent,注意开屏广告view:width >=70%屏幕宽;height >=50%屏幕高,否则会影响计费。
注意事项
①图片尺寸传入与展示区域大小设置需保持一致,避免素材变形;
②需要确保在SDK初始化成功后再进行广告请求,否则可能导致广告请求加载失败;
③聚合SDK是通过广告位ID发起广告请求的,切记不要使用混淆。
④在广告接入前需要明确各ADN对应Cloooud广告样式情况,以确保正确完成广告接入,避免由于广告类型不匹配导致接入报错等情况的发生;
⑤由于各广告平台对于包名校验规则不同,需确保提供的包名符合各ADN平台规范,避免由于包名校验不匹配导致的无广告返回情况的产生。
接入开屏广告
一、创建CloooudAdNative对象
AdView splash = AdView(this, requestConfig)
二、创建广告请求AdSlot
val requestConfig: AdRequestConfig = AdRequestConfig.Builder()
.AdType(AdConfig.AD_TYPE_SPLASH) //设置广告类型
.slotId("****") //广告位id
.isWholeScreenClickable(isWholeScreenClickable) // 头条的开屏广告控制哪儿点击
.requestTimeOutMillis(50000) //设置聚合SDK请求前超时时间,毫秒
// .gdtSplashTimeoutMillis(3600) //设置广点通SDK请求超时时间,毫秒
// .toutiaoSplashTimeoutMillis(3600) //设置穿山甲SDK请求超时时间,毫秒
.widthDp(screenSizeDP[0]) //请求图片宽度dp值
.heightDp(screenSizeDP[1]) //需要传广告展示的高度
.splashContainer(mContainer) //设置开屏广告view容器
.showDownloadConfirmDialog(isShowDownloadConfirmDialog)//设置是否弹出下载确认弹框,需要申请
.build()
三、请求开屏广告
splash!!.setListener(object : AdViewListener {
override fun onAdReady(price: Double) {
Log.e(TAG, "onAdReady: "+System.currentTimeMillis() )
Log.e("CLOOOUDAD", "showNormalSplash:onAdReady")
if (splash!!.adSource === AdSource.CLOOOUD &&
splash!!.splashAdMaterialType !== AdConfig.MATERIAL_TYPE_IMAGE
) {
mAppLogo!!.visibility = View.GONE
}
//加载开屏广告
splash!!.showSplashAd()
}
override fun onAdShow(cAdInfo: CAdInfo?) {
Log.e("CLOOOUD_POLY", "ecpm: " + cAdInfo?.ecpm)
Log.e(TAG, "onAdShow: "+System.currentTimeMillis() )
Log.e("CLOOOUDAD", "showNormalSplash:onAdShow")
}
override fun onAdClick() {
Log.e("CLOOOUDAD", "showNormalSplash:onAdClick: ")
}
override fun onAdFailed(s: String) {
Toast.makeText(this@SplashActivity, "广告请求失败: $s", Toast.LENGTH_SHORT).show()
delayJumpToMainActivity()
}
override fun onAdDismissed(s: String?) {
if (isActivityVisible) {
goToMainActivity()
}
}
})
四、销毁广告
protected void onDestroy() {
super.onDestroy();
if (splash!= null) {
splash.onDestroyAd();
}
}
接口说明
AdRequestConfig.Builder()说明
方法名 | 说明 |
slotId(String codeId) | 广告位id |
AdType(int type) | 设置请求广告类型 |
requestTimeOutMillis(int time) | 设置超时时间 |
widthDp(int width) | 请求图片宽度dp值 |
heightDp(int height) | 请求图片高度dp值 |
splashContainer(RelativeLayout container) | 设置开屏广告view容器 |
showDownloadConfirmDialog(int height) | 设置是否弹出下载弹框 |
AdViewListener 说明
广告加载回调
方法名 | 说明 |
void onAdReady() | 广告请求成功 |
void onAdFailed(String error) | 广告物料、素材加载失败或超时回调 |
void onAdShow(CAdInfo ad) | 广告渲染成功 |
void onAdClick() | 广告点击回调 |
void onAdDismissed(String s) | 广告关闭回调 |
方法名 | 说明 |
int getNetworkFirmId() | 返回竞价成功广告网络ID |
String getAdsourceId() | 返回竞价成功广告源ID |
double getEcpm() | 返回竞价成功价格 |
<table>
<tr>
<td><b> 错误码 </b></td>
<td><b>错误描述</b></td>
</tr>
<tr>
<td> 40000</td>
<td> 请求超时 </td>
</tr>
<tr>
<td> 40001</td>
<td> 返回数据为空,需查看配置还或新建广告位需等十分钟再测 </td>
</tr>
<tr>
<td> 40002</td>
<td>请求被中断,超时或者SDK内部异常 </td>
</tr>
<tr>
<td> 40003</td>
<td>应用ID为空,请检查是否正确传入appid </td>
</tr>
<tr>
<td> 40004</td>
<td> 广告数据为空 </td>
</tr>
<tr>
<td> 40007</td>
<td> 三方源广告数据为空 </td>
</tr>
<tr>
<td> 40008</td>
<td> 需要传入activity类型context </td>
</tr>
<tr>
<td> 40011</td>
<td> 广告样式不匹配 </td>
</tr>
</table>