Banner
可固定在屏幕顶部或底部的长方形广告。
简介
在App的顶部,中部或底部的图片。可参考广告源Hisavana支持的广告尺寸: 20:3、3:2,效果图如下:
20:3 | 3:2 |
---|---|
![]() | ![]() |
构建组件
创建TBannerView对象。
// 请在父布局的xml中新增TBannerView
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#e8e8e8"
android:orientation="vertical">
<com.hisavana.mediation.ad.TBannerView
android:id="@+id/banner_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:visibility="gone"/>
</RelativeLayout>
// 绑定xml布局中的view
TBannerView tBannerView = findViewById(R.id.banner_view);
或者
// 手动创建TBannerView对象,并"添加到父布局"
TBannerView tBannerView = new TBannerView(this);
加载广告
请设置相应参数和监听回调。
// 设置banner尺寸(非Yandex生效),可参考下方"尺寸和类型"
tBannerView.setAdSize(BannerSize.SIZE_320x50);
// 可选项,假如接入"Yandex"请优先设置宽度,默认屏幕宽度(仅支持Yandex自适应粘性,单位:dp)
// tBannerView.setAdWidth(300);
// 可选项,如需接入admob折叠banner,请设置该属性。其他类型参考下方"尺寸和类型"
// tBannerView.setBannerType(IBannerType.BANNER_TYPE_TOP_FOLD);
//"banner_id"是Banner广告位ID
tBannerView.setAdUnitId("banner_id");
/**
* 可选项
* 对于需要统计到达广告场景的应用,可自行设置场景值
* 主要目的是统计当前广告场景利用率,第一个参数自定义场景名称,第二个参数广告数量
*/
tBannerView.enterScene("banner_scene_name", 1);
// 构建广告请求体
TAdRequestBody tAdRequest = new TAdRequestBody.AdRequestBodyBuild()
.setAdListener(new TAdAlliance())
.build();
// 设置广告请求体
tBannerView.setRequestBody(tAdRequest);
// 加载广告后在设置的等待时间内将最优广告回调返回
tBannerView.loadAd();
// 广告监听器,监听广告加载完成(填充)、展示、点击、异常、关闭动作的回调
private static class TAdAlliance extends TAdListener {
// 加载完成回调(适用的广告位:所有广告位)
@Override
public void onLoad() {
// Ad loaded callback
}
// 异常回调(适用的广告位:所有广告位)
@Override
public void onError(TAdErrorCode errorCode) {
// Ad failed callback
}
// 展示回调(适用的广告位:Splash、Interstitial、Banner、Reward)
@Override
public void onShow(int source) {
// Ad show callback
}
// 点击回调(适用的广告位:Splash、Interstitial、Banner、Reward)
@Override
public void onClicked(int source) {
// Ad click callback
}
// 关闭回调(适用的广告位:Splash、Interstitial、Banner、Reward)
@Override
public void onClosed(int source) {
// Ad close callback
}
// 展示失败回调(适用的广告位:所有广告位)
@Override
public void onShowError(TAdErrorCode errorCode) {
// Ad show failed callback
}
}
提醒:source表示广告源,请参考广告源关联表; 比如:此次广告填充展示的是pangle广告,那么source=6。
展示广告
请把TBannerView对象展示出来。
// Banner广告加载填充完自动展示,假如对视图做了隐藏请检查视图可见性,假如视图是动态添加请检查是否已加入父布局
tBannerView.setVisibility(View.VISIBLE);
销毁广告
退出广告场景后,请销毁该广告对象。
@Override
protected void onDestroy() {
super.onDestroy();
if (tBannerView != null) {
tBannerView.destroy();
tBannerView.removeAllViews();
removeView(tBannerView);
tBannerView = null;
}
}
// 移除广告视图
private void removeView(View v) {
if (v == null) return;
ViewParent viewGroup = v.getParent();
if (viewGroup instanceof ViewGroup) {
((ViewGroup) viewGroup).removeView(v);
}
}
其它API
API调用 | 介绍 |
---|---|
tBannerView.hasAd() | 当前是否有可用广告 |
tBannerView.resume() | 请在生命周期中调用 |
tBannerView.pause() | 请在生命周期中调用 |
提醒:添加Mintergral广告源后,当系统的onResume、onPause被调用时,媒体需要主动调用以上两个生命周期回调方法,可以减少Mintergral广告源错误数量的产生。
尺寸和类型
TBannerView 是Banner广告的占位View,需要⻓宽至少大于 TAdBannerSize 的尺寸,否则广告显示会出现错误。使用admob的adaptivebanner时,Banner Size需使用320 * 50
Banner Size(适用非Yandex)
BannerSize constant | Size dp (单位: dp) |
---|---|
SIZE_320x50 | 320*50 |
SIZE_320x90 | 320*90 |
SIZE_320x100 | 320*100 |
SIZE_320x250 | 320*250 |
Banner 类型(适用Admob)
IBannerType constant | Banner 类型 |
---|---|
BANNER_TYPE_TOP_FOLD | 顶部折叠banner广告 |
BANNER_TYPE_BOTTOM_FOLD | 底部折叠banner广告 |
BANNER_TYPE_NORMAL | 普通banner广告 |