Adding Banner Ads to your Android app

The Audience Network allows you to monetize your Android apps with Facebook ads. This guide explains how to add banner ads to your app.

Ensure you have completed the Audience Network Getting Started and Android Getting Started guides before you proceed.

Ad Banner Steps

Step 1: Adding a Layout Container for the Banner Ad

Step 2: Implementing the Banner in your Activity

Step 3: Adding an Ad Listener

Step 1: Adding a Layout Container for the Banner Ad

In your layout file (for example: /res/layout/activity_main.xml), add a layout that will act as a container for your Ad.
Remember the id you set here as you will be referencing it in the code later.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
 ...
 >
   ...
     <LinearLayout
        android:id="@+id/banner_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="vertical"
        />
   ...
</RelativeLayout>

Step 2: Implementing the Banner in your Activity

Add the following code at the top of your Activity in order to import the Facebook Ads SDK:

import com.facebook.ads.*;

Next, instantiate an AdView object and make a request to load an ad. Since AdView is a subclass of View, you can add it to your view hierarchy just as with any other view:

private AdView adView;

@Override
public void onCreate(Bundle savedInstanceState) {
 ...
  // Instantiate an AdView view
  adView = new AdView(this, "YOUR_PLACEMENT_ID", AdSize.BANNER_HEIGHT_50);

  // Find the Ad Container
  LinearLayout adContainer = (LinearLayout) findViewById(R.id.banner_container);

  // Add the ad view to your activity layout
  adContainer.addView(adView);
 
  // Request an ad
  adView.loadAd();
}

If you are building your app for tablet, consider using the AdSize.BANNER_HEIGHT_90 size instead. In all cases, the banner width is flexible with a minimum of 320px.

Lastly, add the following code to your activity's onDestroy() function to release resources the AdView uses:

@Override
protected void onDestroy() {
  if (adView != null) {
    adView.destroy();
  }
  super.onDestroy();
}

Once you run the above, you should see something like this:



If you are using the default Google Android emulator, you'll add the following line of code before loading a test ad:
AdSettings.addTestDevice("HASHED ID");.

Use the hashed ID that is printed to logcat when you first make a request to load an ad on a device.

Genymotion and physical devices do not need this step. If you would like to test with real ads, please consult our Testing Guide.

Step 3: Adding an Ad Listener

Now that you have the basic code running, you can set an AdListener to your AdView to listen for specific events:

import android.widget.Toast;
...

  protected void onCreate(Bundle savedInstanceState) {
    ...
    adView.setAdListener(new AdListener() {
      @Override
      public void onError(Ad ad, AdError adError) {
        // Ad error callback
        Toast.makeText(MainActivity.this, "Error: " + adError.getErrorMessage(),
          Toast.LENGTH_LONG).show();
        }

      @Override
      public void onAdLoaded(Ad ad) {
        // Ad loaded callback
      }

      @Override
      public void onAdClicked(Ad ad) {
        // Ad clicked callback
      }

      @Override
      public void onLoggingImpression(Ad ad) {
        // Ad impression logged callback
      }
    });
       

    // Request an ad
    adView.loadAd();
  }

Ad Banner Sizes

Audience Network supports three ad sizes to be used in your AdView. The Banner unit's width is flexible with a minimum of 320px, and only the height is defined.

Ad Format AdSize Reference Size Recommendation

Standard Banner

BANNER_50

320x50

This banner is best suited to phones

Large Banner

BANNER_90

320x90

This banner is best suited to tablets and larger devices

Medium Rectangle

RECTANGLE_HEIGHT_250

300x250

This format is best suited for scrollable feeds or end-of-level screens

Next Steps