开屏广告

简介

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) 广告关闭回调
###CAdInfo 说明
方法名 说明
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>