跳到主要内容

Banner

可固定在屏幕顶部或底部的长方形广告。

简介

在App的顶部,中部或底部的图片。可参考广告源Hisavana支持的广告尺寸: 20:3、3:2,效果图如下:

20:33: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 constantSize dp (单位: dp)
SIZE_320x50320*50
SIZE_320x90320*90
SIZE_320x100320*100
SIZE_320x250320*250

Banner 类型(适用Admob)

IBannerType constantBanner 类型
BANNER_TYPE_TOP_FOLD顶部折叠banner广告
BANNER_TYPE_BOTTOM_FOLD底部折叠banner广告
BANNER_TYPE_NORMAL普通banner广告