banner广告
简介
Banner广告为一张图片的View,此View的宽高默认为match_parent,用户可以自行定义宽高或通过设置父布局的宽高的方式来限定Banner广告的大小(注:Banner广告的宽高请尽量与adSlot中设置的宽高比例接近,以避免过多非等比例的拉伸)。
注意事项
①在广告接入前需要明确各ADN对应广告样式情况,以确保正确完成广告接入,避免由于广告类型不匹配导致接入报错等情况的发生。
②由于各广告平台对于包名校验规则不同,需确保在平台填写的包名符合各adn平台规范,避免由于包名校验不匹配导致的无广告返回情况的产生。
③广告请求时机,建议在收到SDK初始化成功回调后发起广告请求,当SDK初始化回调一直失败时,建议首先明确应用ID及广告位ID是否赋值正确、是否有多余空格、是否是网络不稳定导致的超时等,当排查后无法定位问题时,建议通过抓包将config字段下的加密内容提供过来,我方协助定位问题。
接入Banner广告
一、创建AdView对象
AdView bannerView = AdView(this, requestConfig)
二、创建广告请求CloooudAdSlot
val requestConfig: AdRequestConfig = AdRequestConfig.Builder()
.AdType(AdConfig.AD_TYPE_BANNER)
.slotId("****") //广告场景id
.widthDp(CommonDeviceInfo.getScreenSizeInDp(applicationContext)[0])
.heightDp(0)//0为自适应
.bannerInterval(0)//轮播时间 默认0
.showDownloadConfirmDialog(isShowDownloadConfirmDialog)//是否展示下载弹出框
.build()
三、请求广告
bannerView!!.setListener(object : AdViewListener {
override fun onAdClick() {
}
override fun onAdFailed(arg0: String) {
removeAdIfNecessary()
}
override fun onAdReady() {
}
override fun onAdShow(cAdInfo: CAdInfo?) {
}
override fun onAdDismissed(s: String?) {
removeAdIfNecessary()
}
})
container?.removeAllViews()
container?.addView(bannerView)
四、展示广告
container?.addView(bannerView)
五、销毁广告
protected void onDestroy() {
super.onDestroy();
if (bannerView != null) {
bannerView.onDestroyAd() //回收广告
}
}
接口说明
AdRequestConfig.Builder说明
方法名 | 说明 |
AdType(int adType) | 设置请求广告类型 |
slotId(String slotId) | 设置广告位id |
widthDp(int width) | 是否广告宽度 |
heightDp(int height) | 设置广告高度 |
bannerInterval(int interval) | 设置轮播时间,默认0 |
String getScenarioId() | 广告场景ID |
showDownloadConfirmDialog(boolean isShowDownloadDialog) | 设置是否弹出下载弹框 |
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() | 返回竞价成功价格 |
##示例代码
class BannerActivity : AppCompatActivity() {
var container: RelativeLayout? = null
var showBanner: Button? = null
var refreshBanner: android.widget.Button? = null
var bannerView: AdView? = null
private var isShowDownloadConfirmDialog = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_banner)
isShowDownloadConfirmDialog =
SharedPreferencesUtils.getParam(this, "isShowDownloadConfirmDialog", true) as Boolean
showBanner = findViewById(R.id.showBannerAd)
refreshBanner = findViewById(R.id.refreshBannerAd)
container = findViewById(R.id.bannerContainer)
showBanner!!.setOnClickListener { showNormalBanner() }
refreshBanner!!.setOnClickListener {
// if (bannerView != null) { // bannerView.refreshBannerNow();//调用后立即刷新横幅广告 // } showNormalBanner() Handler(Looper.getMainLooper()).postDelayed({ finish() }, 200) } }
// 普通banner
private fun showNormalBanner() {
val requestConfig: AdRequestConfig = AdRequestConfig.Builder()
.AdType(AdConfig.AD_TYPE_BANNER)
.slotId("2323540") //广告场景id
.widthDp(CommonDeviceInfo.getScreenSizeInDp(applicationContext)[0])
.heightDp(0)//0为自适应
.bannerInterval(0)//轮播时间 默认0
.showDownloadConfirmDialog(isShowDownloadConfirmDialog)//是否展示下载弹出框
.build()
bannerView = AdView(this, requestConfig)
bannerView!!.setListener(object : AdViewListener {
override fun onAdClick() {
Log.d("CLOOOUDAD", "banner onAdClick: ")
}
override fun onAdFailed(arg0: String) {
Log.d("CLOOOUDAD", "banner onAdFailed $arg0")
removeAdIfNecessary()
}
override fun onAdReady() {
Log.d("CLOOOUDAD", "banner onAdReady")
}
override fun onAdShow(cAdInfo: CAdInfo?) {
Log.e("CLOOOUD_POLY", "ecpm: " + cAdInfo?.ecpm)
Log.d("CLOOOUDAD", "banner onAdShow")
}
override fun onAdDismissed(s: String?) {
Log.d("CLOOOUDAD", "banner onAdDismissed")
removeAdIfNecessary()
}
})
container?.removeAllViews()
container?.addView(bannerView)
}
override fun onDestroy() {
if (bannerView != null) {
bannerView?.onDestroyAd() //回收广告
}
super.onDestroy()
}
/**
* 移除广告
*/
private fun removeAdIfNecessary() {
container?.removeAllViews()
bannerView?.onDestroyAd() //回收广告
}
}