バナー広告

バナー広告は、デバイス画面の上部か下部にアプリのレイアウト内の一部分を使用して表示されます。アプリの操作中は画面に表示され続けますが、一定時間が経過すると自動的に更新されるよう設定できます。モバイル広告を初めてお使いの場合は、この広告から始めることをおすすめします。 事例紹介

このガイドでは、AdMob のバナー広告を Android アプリに統合する方法を説明します。コード スニペットと設定方法のほか、バナーの適切なサイズに関する情報、他の関連リソースへのリンクも紹介します。

前提条件

レイアウトに AdView を追加する

バナーを表示するための最初のステップは、バナーを表示する Activity または Fragment のレイアウトに AdView を配置することです。おすすめの方法は、対応する XML レイアウト ファイルに追加する方法です。アクティビティの AdView について、次に例を示します。

# main_activity.xml
...
  <com.google.android.gms.ads.AdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
  </com.google.android.gms.ads.AdView>
...

必須の属性は次のとおりです。

  • ads:adSize - 使用する広告サイズに設定します。定数値で定義された標準サイズを使用しない場合は、代わりにカスタムサイズを設定できます。詳しくは、下記のバナーサイズに関するセクションをご覧ください。
  • ads:adUnitId - 広告を表示するアプリの広告ユニットに割り当てられている一意の ID に設定します。複数のアクティビティでバナー広告を表示する場合は、それぞれ広告ユニットが必要となります。

別の方法として、AdView を次のようにプログラムで作成することもできます。

Java

AdView adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.

Kotlin

val adView = AdView(this)
adView.adSize = AdSize.BANNER
adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.

常にテスト広告でテストする

アプリの開発とテストでは実際の広告ではなく、必ずテスト広告を使ってください。実際の広告でテストすると、アカウントが停止される場合があります。

テスト広告を読み込むには、次に示す Android バナー向けのテスト専用広告ユニット ID を使う方法が便利です。

ca-app-pub-3940256099942544/6300978111

この ID は、すべてのリクエストに対してテスト広告を返す特別な ID で、アプリのコーディング、テスト、デバッグで自由に使うことができます。なお、テスト用 ID は、アプリを公開する前に必ずご自身の広告ユニット ID に置き換えてください。

Mobile Ads SDK のテスト広告の仕組みについて詳しくは、テスト広告をご覧ください。

広告を読み込む

AdView を配置したら、次のステップとして広告を読み込みます。これは、AdView クラスの loadAd() メソッドで行います。そのためには、AdRequest パラメータを使用して、1 つの広告リクエストに関するランタイムの情報(ターゲティング情報など)を保持しておく必要があります。

ActivityonCreate() メソッドで広告を読み込む方法について、次に例を示します。

MainActivity(抜粋)

Java

package ...

import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });
        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }
}

Kotlin

package ...

import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView

class MainActivity : AppCompatActivity() {

    lateinit var mAdView : AdView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        MobileAds.initialize(this) {}
        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
    }
}

これで、アプリにバナー広告を表示できるようになりました。

広告イベント

広告の動作をより細かくカスタマイズするには、広告のライフサイクルで生じるさまざまなイベント(読み込み、開始、終了など)を考慮します。これらのイベントをリッスンするには、AdListener クラスを使用します。

AdViewAdListener を組み合わせて使用するには、setAdListener() メソッドを呼び出します。

Java

mAdView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdFailedToLoad(int errorCode) {
        // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdOpened() {
        // Code to be executed when an ad opens an overlay that
        // covers the screen.
    }

    @Override
    public void onAdClicked() {
        // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdLeftApplication() {
        // Code to be executed when the user has left the app.
    }

    @Override
    public void onAdClosed() {
        // Code to be executed when the user is about to return
        // to the app after tapping on an ad.
    }
});

Kotlin

mAdView.adListener = object: AdListener() {
    override fun onAdLoaded() {
        // Code to be executed when an ad finishes loading.
    }

    override fun onAdFailedToLoad(errorCode : Int) {
        // Code to be executed when an ad request fails.
    }

    override fun onAdOpened() {
        // Code to be executed when an ad opens an overlay that
        // covers the screen.
    }

    override fun onAdClicked() {
        // Code to be executed when the user clicks on an ad.
    }

    override fun onAdLeftApplication() {
        // Code to be executed when the user has left the app.
    }

    override fun onAdClosed() {
        // Code to be executed when the user is about to return
        // to the app after tapping on an ad.
    }
}

AdListener のオーバーライド可能なメソッドは、それぞれ広告のライフサイクルで生じるイベントに対応しています。

オーバーライド可能なメソッド
onAdLoaded() onAdLoaded() メソッドは、広告の読み込みが完了すると実行されます。たとえば、広告が確実に読み込まれるまで、アクティビティまたはフラグメントに AdView が追加されないようにしたい場合は、このメソッドを使用できます。
onAdFailedToLoad() onAdFailedToLoad() メソッドは、パラメータを含む唯一のメソッドです。errorCode パラメータは、発生したエラーの種類を表します。このパラメータの値は、AdRequest クラスの定数として定義された、次のいずれかの値になります。
  • ERROR_CODE_INTERNAL_ERROR - 内部でエラーが発生している(広告サーバーから無効な応答を受け取った場合など)。
  • ERROR_CODE_INVALID_REQUEST - 広告リクエストが無効(広告ユニット ID が不適切だった場合など)。
  • ERROR_CODE_NETWORK_ERROR - ネットワーク接続が原因で広告をリクエストできなかった。
  • ERROR_CODE_NO_FILL - 広告リクエストは成功したものの、広告枠の不足が原因で広告が返されなかった。
onAdOpened() ユーザーが広告をタップしたときに呼び出されるメソッドです。
onAdLeftApplication() onAdOpened() の後にユーザーが別のアプリ(Google Play など)を起動し、現在のアプリがバックグラウンドに移動すると、このメソッドが呼び出されます。
onAdClosed() ユーザーが広告のリンク先 URL にアクセスした後にアプリに戻った場合は、このメソッドが呼び出されます。一時停止中のアクティビティを再開したり、アプリを操作可能な状態にするために必要な他の動作を実行したりするには、このメソッドを使用します。 Android API デモアプリに広告リスナーのメソッドを実装する方法については、広告リスナー実装の AdMob AdListenerをご覧ください。

標準のバナーサイズについては、以下の表をご覧ください。

サイズ(単位は dp、幅×高さ) 説明 対応デバイス AdSize の定数値
320×50 バナー スマートフォン、タブレット BANNER
320×100 バナー(大) スマートフォン、タブレット LARGE_BANNER
300×250 IAB レクタングル(中) スマートフォン、タブレット MEDIUM_RECTANGLE
468×60 IAB フルサイズ バナー タブレット FULL_BANNER
728×90 IAB ビッグバナー タブレット LEADERBOARD
指定された幅×最適な高さ アダプティブ バナー スマートフォン、タブレット なし
画面の幅×32|50|90 スマートバナー スマートフォン、タブレット SMART_BANNER
今後はスマートバナーに代わってアダプティブ バナーが使用される予定です。詳しくは、アダプティブ バナーをご覧ください。

カスタムのバナーサイズを定義するには、希望の AdSize を次のように設定します。

Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

その他のリソース

GitHub のサンプル

  • バナー広告の最小限の実装例: Java | Kotlin

  • 高度な機能のデモ: Java | Kotlin

  • バナー RecyclerView サンプルアプリ: Java

チュートリアル動画シリーズ「Mobile Ads Garage」

成功事例