バナー広告

バナー広告は、アプリのレイアウト内の一部分を使用する長方形の画像かテキストの広告です。ユーザーがアプリを操作している間は画面に残り、一定の時間が経過すると自動的に更新されます。モバイル広告を初めて掲載する場合は、まずこの広告から始めるのが最適です。

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

前提条件

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

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

main_activity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        tools:context=".MainActivity">

        <TextView android:text="@string/hello_world"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <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>

</RelativeLayout>

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

  • 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,
            "ca-app-pub-3940256099942544~3347511713");

        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,
            "ca-app-pub-3940256099942544~3347511713")

        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
    }
}

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

広告イベント

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

AdListenerAdView を併用するには、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)

スマートバナー

スマートバナーは、あらゆる画面サイズのデバイスで、画面をどの向きにしていても横幅いっぱいに広告を表示できる広告ユニットです。デバイスの向きに応じて画面の横幅が検知され、そのサイズの広告ビューが作成されます。

スマートバナーで表示される広告の高さは、次の 3 つのいずれかになります。

広告の高さ 画面の高さ
32 dp 400 dp 以下
50 dp 400 dp 超、720 dp 以下
90 dp 720 dp 超

通常では、スマートフォン向けのスマートバナーの高さは縦向きで 50 dp、横向きで 32 dp になります。タブレットの場合、通常ではどちらの向きでも高さが 90 dp になります。

イメージ広告を割り当てられたスペース全体に表示すると余白が生じる場合は、画像が中央寄せになり、両側のスペースは塗りつぶされます。

スマートバナーを XML で使用するには、定数値 SMART_BANNER を広告サイズとして指定し、AdView の幅を match_parent に設定します。次に例を示します。

<com.google.android.gms.ads.AdView
  xmlns:ads="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  ads:adSize="SMART_BANNER"
  ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>

スマートバナーをプログラムで作成する場合は、次のように AdSize.SMART_BANNER を広告サイズとして使用します。

Java

AdView adView = new AdView(this);
adView.setAdSize(AdSize.SMART_BANNER);

Kotlin

val adView = AdView(this)
adView.adSize = AdSize.SMART_BANNER

その他の参考情報

GitHub のサンプル

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

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

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

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

今後の流れ

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。