バナー広告は、デバイス画面の上部か下部にアプリのレイアウト内の一部分を使用して表示されます。アプリの操作中は画面に表示され続け、一定の時間が経過すると自動的に更新されます。モバイル広告を初めてお使いの場合は、この広告から始めるのが最適です。 事例紹介
このガイドでは、AdMob のバナー広告を Android アプリに統合する方法を説明します。コード スニペットと設定方法のほか、バナーの適切なサイズに関する情報、他の関連リソースへのリンクも紹介します。
Prerequisites
- スタートガイドの手順を完了していること
レイアウトに 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
- 広告を表示するアプリ内の広告ユニットに付与される一意の識別子に設定します。複数のアクティビティでバナー広告を表示する場合は、それぞれ広告ユニットが必要となります。
別の方法として、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>
ハードウェア アクセラレーションを制御するオプションの詳細については、HW アクセラレーション ガイドをご覧ください。アクティビティが無効の場合、個々の広告ビューではハードウェア アクセラレーションを有効にできないため、アクティビティ自体でハードウェア アクセラレーションが有効になっている必要があります。