Page tree


Banner ads are images or text that appear on a portion of an app's screen. The ad stays on screen as the user interacts with the app. The ad can auto refresh periodically.

You'll need to follow the instructions in Getting Started before proceeding with the following integration steps. You'll also find a useful example integration in pubmatic-sample-app included in the SDK directory.

Once you've downloaded and installed the PubMatic Android SDK, use the following sections to implement and configure banner ads:

Display Banner Ad

Use the following steps to include banner ads into your app.

Step 1:  Define a banner ad slot in your layout XML

The PubMatic SDK provides the custom view class PMBannerAdView used to display banner ad creative. Please add the following XML block to your app's Activity or Fragment layout.

PMBannerAdView XML
        android:layout_height="50dp" />‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Now you can easily use a reference of PMBannerAdView in your Activity or Fragment like this:

PMBannerAdView Reference
PMBannerAdView banner = (PMBannerAdView)findViewById(;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Optionally, you can also create a PMBannerAdView instance in the Activity or Fragment context like this:

PMBannerAdView in Activity/Frament Context
// Pass activity context in PMBannerAdView
PMBannerAdView banner = new PMBannerAdView(<Context>);
RelativeLayout layout = (RelativeLayout) findViewById(;
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
layout.addView(banner, params);‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Step 2:  Create Ad Request

Create a PMBannerAdRequest object and set the targeting parameters:

Set PMBannerAdRequest Targeting
PMBannerAdRequest adRequest = PMBannerAdRequest.createPMBannerAdRequest(
                <PubId>, <SiteId>, <AdId>);

// It is mandatory to set ad size when requesting a banner ad

For more targeting parameters, see Passing Targeting Information.

Step 3: Request Ad

Send the adRequest using loadRequest() from the banner instance:

Send the adRequest using loadRequest()

Step 4: Deallocate PMBannerAdView

Deallocate the PMBannerAdView instance before your Activity/Fragment is destroyed.

Deallocate PMBannerAdView

Callback Events Using a Listener

Optionally, you can register a listener to report success and failure callbacks from the ad request:

Optional setRequestListener()
banner.setRequestListener(new PMBannerAdView.BannerAdViewDelegate.RequestListener() {
    public void onFailedToReceiveAd(PMBannerAdView adView, final PMError error) {
        // Ad failed callback  

    public void onReceivedAd(PMBannerAdView adView) {
        // Ad received successfully
See  PubMatic SDK Error Codes  for a detailed description of the  PMError  object used in the  onFailedToReceiveAd()  callback.

Set Optional Listeners

PubMatic SDK also provides optional listeners that you can register for other callbacks as shown below:

Implement respective listeners in instead of place holders.
Implement Optional Listeners
// Invoked when the ad will navigate to a clicked link (or rich media open). 
// Set an interface to notify the events of MRAID ads
// Set an interface allowing you to control which device features are exposed to rich media ads
// Set an interface to notify the activity of internal browser.
To fully support all MRAID events please follow the steps in Rich Media (MRAID 2.0) Ads.

Enable Auto Refresh Functionality

PubMatic Android SDK provides the optional feature to auto refresh a banner ad after a specified interval. You can set the refresh interval in code using PMBannerAdView.setUpdateInterval(<value in secs>) before calling the loadRequest()method. Use an interval value within a range of 12 to 120 seconds.

Code to Enable Auto Refresh
// Set update interval of say 15 seconds
// Make the ad request to Server

Ad Refresh Behavior for Value of Update Intervals

Integer value ( i ) in secondsBanner Auto-refresh behavior
i <= 0Ad will not refresh
i > 0 & i <= 12Ad will refresh after every 12 seconds.
i > 12 & i <= 120Ad will refresh after every i seconds
i > 120Ad will refresh after every 120 seconds

Multisize Ad Support (Optional)

You can specify multiple sizes in an ad request. Then SSP/Exchange serves the ad with the creative that best fits into those sizes and returns greater CPMs. This flexibility makes a greater number of campaigns/creatives eligible for the current impression, which can lead to increase fill rate.

Multizie Ad Code
PMAdSize size1 = new PMAdSize(300,50);
PMAdSize size2 = new PMAdSize(640,100);

PMAdSize arr[]= {size1, size2};

Get the size of the creative if you need to write your own logic to resize the ad slot. For example:

Resizing Creative Slot
public void onReceivedAd(PMBannerAdView adView) {
    int width = adView.getAdWidth();
    int height= adView.getAdHeight();
    // Use width and height to get Banner Ad view dimensions.
    // Write your custom logic for the new dimensions and 
    // set the new dimensions using the adView.setLayoutParams(<LayoutParams>);

⇧ Top