Banner ads are classic static banners, which are usually located at the bottom or top of the advertisement. Appodeal supports traditional 320x50 banners, tablet banners 728x90 and smart banners that adjust to the size and orientation of the device.

You can display only one view for banner on the screen.

Initialize banner

1. Import the namespaces:

using AppodealAds.Unity.Api;
using AppodealAds.Unity.Common;
2. Add the following code within the Start() method of your main scene’s MonoBehavior: 
Appodeal.initialize("YOUR_APPODEAL_APP_KEY", Appodeal.BANNER, consentValue);

Initialization method requires 3 parameters:

  • appKey - appKey is generated when you add an application to Appodeal.
  • adType - Ad types can be combined using "|" operator. For example, Appodeal.INTERSTITIAL | Appodeal.BANNER.
  • consentValue - is boolean, with 'false' meaning that the user declines to give the consent. Read our guide on collecting consent here.

By default, auto caching is enabled: Appodeal SDK starts to load banner right away after the initialization method is called. The next banner ad starts to load after the previous one was shown.

Display banner

Banner ads are refreshed every 15 seconds automatically by default. To display banner, you need to call the following code:

Appodeal.show(Appodeal.BANNER_BOTTOM); // Display banner at the bottom of the screen
Appodeal.show(Appodeal.BANNER_TOP); // Display banner at the top of the screen
Appodeal.show(Appodeal.BANNER_LEFT); // Display banner at the left of the screen
Appodeal.show(Appodeal.BANNER_RIGHT); // Display banner at the right of the screen

3. Display banner at a custom position

Appodeal.BANNER_VIEW is a banner ad which you can move along the axis to the position you choose. To use it you should first initialize the Appodeal Unity SDK with the Appodeal.BANNER_VIEW ad format.

To show Appodeal.BANNER_VIEW use the following code:

Appodeal.showBannerView((int) yPosition, (int) xPosition, (string) placement);
For xPosition and yPosition use custom int value or constants:

  • Appodeal.BANNER_HORIZONTAL_SMART — to use the full-screen width;
  • Appodeal.BANNER_HORIZONTAL_CENTER — to center a banner horizontally;
  • Appodeal.BANNER_HORIZONTAL_RIGHT — to align a banner to the right;
  • Appodeal.BANNER_HORIZONTAL_LEFT — to align a banner to the left;

For yPosition you can use custom int value or constants:

  • Appodeal.BANNER_TOP — to align a banner to the top of the screen;
  • Appodeal.BANNER_BOTTOM — to align a banner to the bottom of the screen.

To set your custom width and height, you can use the constants of The Unity’s Screen.currentResolution.width and Screen.currentResolution.height with a constant value.

To hide Appodeal.BANNER_VIEW use the following code:

Appodeal.hideBannerView();

Check if banner is loaded

Appodeal.isLoaded(Appodeal.BANNER);

Hide banner

Appodeal.hide(Appodeal.BANNER);

Destroy shown banner

To free memory from hidden banner call the code below:

Appodeal.destroy(Appodeal.BANNER);

Banner placements

Appodeal SDK allows you to tag each impression with different placement. For using placements you need to create placements in Appodeal Dashboard. Read more about placements.

To show an ad with placement, you have to call show method like this in your activity:

Appodeal.show(this, Appodeal.BANNER, “placementName”);


If the loaded ad can’t be shown for a specific placement, nothing will be shown. 

You can configure your impression logic for each placement.

If you have no placements, or call Appodeal.show with placement that do not exist, the impression will be tagged with 'default' placement and its settings will be applied.

Important!

Placement settings affect ONLY ad presentation, not loading or caching.


Banner callbacks

The callbacks are used to track different events in the lifecycle of an ad, e.g. when an ad was clicked on or closed. To implement them, you need to follow three steps:

1. Extend your class with IBannerAdListener:

YourClassName : IBannerAdListener;
2. Then call the following method:
Appodeal.setBannerCallbacks(this);
3. Now you can use the following callback methods within your public class:
#region Banner callback handlers

// Called when a banner is loaded (height flag shows loaded banner's height, precache flag shows if the loaded ad is precache
public void onBannerLoaded(int height, bool precache) 
{ 
	print("banner loaded"); 
} 

// Called when banner failed to load
public void onBannerFailedToLoad() 
{ 
	print("banner failed"); 
} 

// Called when banner is shown
public void onBannerShown() 
{ 
	print("banner opened"); 
}

// Called when banner is clicked 
public void onBannerClicked() 
{ 
	print("banner clicked"); 
} 

// Called when banner is expired and can not be shown
public void onBannerExpired() 
{ 
	print("banner expired");  
} 

#endregion

All callbacks are called on native main threads that do not match the main thread of the Unity. If you need to receive callbacks in the main Unity thread follow our Callback Usage Guide .

Get predicted eCPM

This method return expected eCPM for cached ad. Amount is calculated based on historical data for the current ad unit.

public static double getPredictedEcpm(Appodeal.BANNER);

Advanced banner integration

Appodeal provides a number of settings that enable you to control the format of banner ads.

Cache banner manually

To disable automatic caching for banners use the code below before the SDK initialization:

Appodeal.setAutoCache(Appodeal.BANNER, false);
To cache banners use:
Appodeal.cache(this, Appodeal.BANNER);

Enable 728x90 banners

To enable 728*90 banner use the following method before initialization:

Appodeal.setTabletBanners(true);

Disable banner refresh animation

To disable banner refresh animation use the following method before initialization:

Appodeal.setBannerAnimation(false);

Disable banner background (iOS Only)

To disable smart banners use the following method before initialization:


Appodeal.setBannerBackground(false);

Smart banners

Smart banners are the banner ads which automatically fit the screen size. Using them helps to deal with the increasing fragmentation of the screen sizes on different devices. In the Appodeal SDK the smart banners are enabled by default. To disable them, use the following method before initialization :

Appodeal.setSmartBanners(false);