Banner ads are rectangular image or text ads that occupy a space inside the application layout. They stay on screen while the users interact with the app and can automatically refresh after a certain period of time. If you are new in mobile advertising, they are an excellent choice to start.
Integration
There are two ways to integrate a banner: using code or adding the banner view inside a layout. Below we show some examples for both methods:
Layout XML
<com.wortise.ads.banner.BannerAd
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:adSize="HEIGHT_50"
app:adUnitId="Wortise Ad Unit ID" />
The widget has support for the following parameters:
Parameter
Type
Required
Description
app:adUnitId
String
Yes
The ad unit ID to assign to the banner
app:adSize
AdSize
No
Maximum size (height) for the banner. The possible values for this parameter are declared in the AdSize class
app:autoRefreshTime
Integer
No
Value in seconds that represents the time that must elapse to load a new banner ad
Code
publicclassMainActivityextendsActivity {privateBannerAd mBannerAd; @OverridepublicvoidonCreate(Bundle savedInstanceState) {... mBannerAd =newBannerAd(this);mBannerAd.setAdSize(AdSize.HEIGHT_50);mBannerAd.setAdUnitId("Wortise Ad Unit ID");// For example, we add the BannerAd into a FrameLayoutFrameLayout frameLayout =findViewById(R.id.frame);frameLayout.addView(mAdView);mBannerAd.loadAd(); } @OverridepublicvoidonDestroy() {...mBannerAd.destroy(); } @OverridepublicvoidonPause() {...mBannerAd.pause(); } @OverridepublicvoidonResume() {...mBannerAd.resume(); }}
classMainActivity : Activity() {privatevar bannerAd: BannerAd? =nulloverridefunonCreate(savedInstanceState: Bundle?) {... bannerAd =BannerAd(this).also { it.adSize = AdSize.HEIGHT_50 it.adUnitId ="<Ad Unit ID de Wortise>"// For example, we add the BannerAd into a FrameLayoutval frameLayout =findViewById<FrameLayout>(R.id.frame) frameLayout.addView(it) it.loadAd() } }overridefunonDestroy() {... bannerAd?.destroy() }overridefunonPause() {... bannerAd?.pause() }overridefunonResume() {... bannerAd?.resume() }}
The BannerAd class providers the following methods to configure the instance:
Method
Required
Descripción
setAdUnitId(String)
Yes
Assigns an ad unit to the banner
setAdSize(AdSize)
No
Maximum size (height) for the banner. The possible values for this parameter are declared in the AdSize class
setAutoRefreshTime(long)
No
Value in milliseconds that represents the time that must elapse to load a new banner ad
setAutoRefreshTime(long, TimeUnit)
No
Same as previous method, but allows to specify the time unit of the passed value
Adaptive banners
Adaptive banners are a new banner format where the size of the ads is adapted according to the device and the app user-interface, in order to maximize performance.
Currently there is support for two kind of adaptive banners:
Anchored
This kind of banner is designed to replace the traditional 320x50 banners and be positioned at the top or bottom of the screen.
To make use of this format, the following code must be used to configure an adaptive size:
// It is needed to specify the banner widthAdSize adSize =AdSize.getAnchoredAdaptiveBannerAdSize(context, width);mBannerAd.setAdSize(adSize);
// It is needed to specify the banner widthval adSize = AdSize.getAnchoredAdaptiveBannerAdSize(context, width)bannerAd.adSize = adSize
Alternatively, this other option can be implemented to let the SDK calculate the banner width, where the BannerAd instance itself or the View that will contain it should be passed:
In this option, it is highly recommended that the View passed to the method is already added to the app’s layout, so that the SDK can correctly calculate all the dimensions.
val adSize = AdSize.getAnchoredAdaptiveBannerAdSize(view)bannerAd.adSize = adSize
Inline
This other kind of banner, in comparison to the anchored, is designed to have a variable height and be positioned inside a scrolling content.
In this case, the following code must be used to configure a proper adaptive size:
int maxHeight =200;// It is needed to specify the banner width. The maximum height is an// optional parameterAdSize adSize =AdSize.getInlineAdaptiveBannerAdSize( context, width, maxHeight);mBannerAd.setAdSize(adSize);
val maxHeight =200// It is needed to specify the banner width. The maximum height is an// optional parameterval adSize = AdSize.getInlineAdaptiveBannerAdSize(context, width, maxHeight)bannerAd.adSize = adSize
Alternatively, this other option can be implemented to let the SDK calculate the banner width, where the BannerAd instance itself or the View that will contain it should be passed:
In this option, it is highly recommended that the View passed to the method is already added to the app’s layout, so that the SDK can correctly calculate all the dimensions.
int maxHeight =200;AdSize adSize =AdSize.getInlineAdaptiveBannerAdSize(view, maxHeight);mBannerAd.setAdSize(adSize);
val maxHeight =200val adSize = AdSize.getInlineAdaptiveBannerAdSize(view, maxHeight)bannerAd.adSize = adSize
Listener setup
A listener can be set to any BannerAd instance to receive the events that happen during its lifecycle. For this, it is needed to implement the BannerAd.Listener interface as shown in the example below:
mBannerAd.setListener(new BannerAd.Listener() { @OverridepublicvoidonBannerClicked(@NonNullBannerAd ad) {// Invoked when the ad has been clicked } @OverridepublicvoidonBannerFailedToLoad(@NonNullBannerAd ad, @NonNullAdError error) {// Invoked when the ad could not be loaded// (because of an error or no fill) } @OverridepublicvoidonBannerImpression(@NonNullBannerAd ad) {// Invoked when the ad has generated an impression } @OverridepublicvoidonBannerLoaded(@NonNullBannerAd ad) {// Invoked when the ad has been loaded }});
bannerAd.listener =object : BannerAd.Listener() {overridefunonBannerClicked(ad: BannerAd) {// Invoked when the ad has been clicked }overridefunonBannerFailedToLoad(ad: BannerAd, error: AdError) {// Invoked when the ad could not be loaded// (because of an error or no fill) }overridefunonBannerImpression(ad: BannerAd) {// Invoked when the ad has generated an impression }overridefunonBannerLoaded(ad: BannerAd) {// Invoked when the ad has been loaded }}