バナー広告は、デバイス画面の上部か下部にアプリのレイアウト内の一部分を使用して表示されます。アプリの操作中は画面に表示され続けますが、一定時間が経過すると自動的に更新されるよう設定できます。モバイル広告を初めてお使いの場合は、この広告から始めることをおすすめします。 事例紹介。
このガイドでは、AdMob のバナー広告を Android アプリに統合する方法を説明します。コード スニペットと設定方法のほか、バナーの適切なサイズに関する情報、他の関連リソースへのリンクも紹介します。
前提条件
- Google Mobile Ads SDK がインポート済みであること(単独または Firebase の一部として)
レイアウトに 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 つの広告リクエストに関するランタイムの情報(ターゲティング情報など)を保持しておく必要があります。
Activity
の onCreate()
メソッドで広告を読み込む方法について、次に例を示します。
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
クラスを使用します。
AdView
と AdListener
を組み合わせて使用するには、setAdListener()
メソッドを呼び出します。
Java
mAdView.setAdListener(new AdListener() { @Override public void onAdClicked() { // Code to be executed when the user clicks on an ad. } @Override public void onAdClosed() { // Code to be executed when the user is about to return // to the app after tapping on an ad. } @Override public void onAdFailedToLoad(LoadAdError adError) { // Code to be executed when an ad request fails. } @Override public void onAdImpression() { // Code to be executed when an impression is recorded // for an ad. } @Override public void onAdLoaded() { // Code to be executed when an ad finishes loading. } @Override public void onAdOpened() { // Code to be executed when an ad opens an overlay that // covers the screen. } });
Kotlin
mAdView.adListener = object: AdListener() { override fun onAdClicked() { // Code to be executed when the user clicks on an ad. } override fun onAdClosed() { // Code to be executed when the user is about to return // to the app after tapping on an ad. } override fun onAdFailedToLoad(adError : LoadAdError) { // Code to be executed when an ad request fails. } override fun onAdImpression() { // Code to be executed when an impression is recorded // for an ad. } override fun onAdLoaded() { // Code to be executed when an ad finishes loading. } override fun onAdOpened() { // Code to be executed when an ad opens an overlay that // covers the screen. } }
AdListener
のオーバーライド可能なメソッドは、それぞれ広告のライフサイクルで生じるイベントに対応しています。
オーバーライド可能なメソッド | |
---|---|
onAdClicked()
|
onAdClicked() メソッドは、広告のクリックが記録されると呼び出されます。 |
onAdClosed()
|
onAdClosed() メソッドは、ユーザーが広告のリンク先 URL にアクセスした後にアプリに戻ると呼び出されます。一時停止中のアクティビティを再開したり、アプリを操作可能な状態にするために必要な他の動作を実行したりするには、このメソッドを使用します。
Android API デモアプリに広告リスナーのメソッドを実装する方法については、AdMob AdListener の例をご覧ください。
|
onAdFailedToLoad()
|
onAdFailedToLoad() メソッドは、パラメータを含む唯一のメソッドです。タイプ LoadAdError のエラー パラメータは、発生したエラーを示します。詳細については、広告読み込みエラーのデバッグのドキュメントをご覧ください。
|
onAdImpression()
|
onAdImpression() メソッドは、広告のインプレッションが記録されると呼び出されます。 |
onAdLoaded()
|
onAdLoaded() メソッドは、広告の読み込みが完了すると実行されます。たとえば、広告が確実に読み込まれるまで、アクティビティまたはフラグメントに AdView が追加されないようにしたい場合は、このメソッドを使用できます。 |
onAdOpened()
|
onAdOpened() メソッドは、広告からオーバーレイを開いて画面全体が覆われた場合に呼び出されます。 |
バナーのサイズ
標準のバナーサイズについては、以下の表をご覧ください。
サイズ(単位は 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)
動画広告のハードウェア アクセラレーション
バナー広告で動画広告を正常に表示するには、ハードウェア アクセラレーションを有効にする必要があります。
ハードウェア アクセラレーションはデフォルトで有効になっていますが、一部のアプリでは無効にすることもできます。お客様のアプリで無効にできる場合、広告を使用するアクティビティ クラスのハードウェア アクセラレーションを有効にすることをおすすめします。
ハードウェア アクセラレーションの有効化
ハードウェア アクセラレーションをグローバルに有効にするとアプリが正しく動作しない場合は、個々のアクティビティでの設定が可能です。ハードウェア アクセラレーションを有効または無効にするには、AndroidManifest.xml
の <application>
および <activity>
要素で android:hardwareAccelerated
属性を使用できます。次の例では、アプリ全体でハードウェア アクセラレーションを有効にしつつ、1 つのアクティビティで無効にしています。
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
ハードウェア アクセラレーションを制御するオプションについて詳しくは、ハードウェア アクセラレーション ガイドをご覧ください。アクティビティが無効の場合、個々の広告ビューではハードウェア アクセラレーションを有効にできないため、アクティビティ自体でハードウェア アクセラレーションが有効になっている必要があります。