[Android] Android Studio でのAdMob広告の実装

無料でアプリを公開して広告を貼りましょう。定番はGoogleがやっている AdMob です。アプリの人気がでればそれなりにマネタイズになります。

Android Studio
2021.1.1




AdMob Banner

 
このAdMob広告の設定は、Google Mobile Ads SDKを使った方法です。
Firebaseを使うAdMob設定とは異なりますので注意してください。

 
Google的にはFirebaseに移行したいのでしょうけれど、まだSDKの方法でないと支障がでるケースを考えて残してあると考えられます。
基本的にはAndroid Admob ガイドに沿って進めますが時々情報が古いこともあったりします。(この記事が古い場合もありますが)

1x1.trans - [Android] Android Studio でのAdMob広告の実装


 
また、ここでの実装はxmlファイルにIDを書くやり方と、コードで記述する方法について試してみます。
 
 

play-services-ads を設定

 
「build.gradle (Module: app)」ファイルの編集
 
1x1.trans - [Android] Android Studio でのAdMob広告の実装
 
dependencies に play-services-ads を追加
com.google.android.gms:play-services-ads
(バージョンは随時更新されます)
 
build.gradle(Module: )


尚、Android Admob ガイドには以下の設定がありますが、古いAndroid Studioでの設定と思われ、2021.1.1ではこれを入れるとエラーになります
因みにgoogle(), MavenCentral()はsettings.gradleにそれらしきものが追加されていておそらく不要になったのだと思われます。
またバージョンの21から変更があるようなので臨機応変な対応が常に必要です

 

meta-dataにApp IDを設定

 
アプリの AndroidManifest.xml に meta-data タグを追加します。
ADMOB_APP_IDには
ここではテストのアプリIDを設定
ca-app-pub-3940256099942544~3347511713

リリースではあなたのアプリIDを設定します。

 
AndroidManifest.xml

 

レイアウトファイルにAdView、AdUnitId の記述

 
xmlns:adsの追加、RelativeLayoutなので
android:layout_alignParentBottom=”true”
にてBottomに設定します

activity_main.xml


 
descriptonを指定しているので
strings.xml


ちなみに
ca-app-pub-3940256099942544/6300978111
このadUnitId、広告ユニットIDはテスト用です。

com.google.android.gms.ads.xxx
は応答に時間がかかることがありエラーがしばらく続くことがあります。

本番では、UnitIDをAdMobから取得した正式なものを使います

 

Google Mobile Ads SDK を初期化

 
ActivityにGoogle Mobile Ads SDK を初期化する記述をします。
尚、これはlambda式で簡略化できます


MobileAds.initialize() を呼び出して初期化
完了すると、完了リスナーがコールバックされます。この処理は 1 回だけ行います

AdView と AdRequest の記述 
やり方としてレイアウトをどうするかによってxml ファイルで調整するか、java コードで書くケースがあります。こちらでは前者のタイプでやってみます。

MainActivity.java


 
これで実行してみると
 
1x1.trans - [Android] Android Studio でのAdMob広告の実装


 
広告がボトムに表示されました。
尚、画像は付け足しなのでなくても問題ありません。

またリスナーを設定してAdMobのライフサイクルを確認できデバッグに役立ちます。

 

コードのみで実装

 
動的な表示、あるいはまとめてコントロールしたい場合などにおいてxmlファイルでの記述は使いにくいので、コードで記述してみます。Manifestやbuild.gradleは同じです。
 
MainActivity.java


 
ここではテスト用IDを使っています。

1x1.trans - [Android] Android Studio でのAdMob広告の実装

 

実機での広告テスト

 
Enable test devicesによるとリリース前に広告のテストをするために、実機をテストデバイスとして登録して確認する事ができるようです。また、Emulatorは自動的にテストデバイスと認識されます。
 
今までのコードで実機で起動させると
 


 
のようなtest device IDがLogcatに表示されるので、これを設定します。
 


 

次に、アプリIDとadUnitIdをテスト用のIDから
各自のそれぞれのIDに変更します

これで実際のAdMobのIDに変えてテストすると「Test Ad」となっていてテスト用IDを使った場合と同じですがバナー広告が違います。

面倒なんですけど!! Google AdMob ガイドには以下のような説明があります
テストモードを使わずに多くの広告をクリックすると、無効なアクティビティとしてアカウントが警告を受ける恐れがあります。
自分の広告を自分でクリックし確認したい気持ちは分かりますが、こういったリスクがあることを知っておきましょう
 

アプリ ID と広告ユニット ID

 
AdMobに登録が済んでいない場合は申し込みをします。
AdMob に申し込む
 
アプリ IDは、AdMob にアプリを追加すると割り当てられる一意の ID 番号でアプリの識別に使用されます。
 
アプリ ID の確認:

Monetize and promote your app with AdMob.
から AdMob アカウントにログイン
サイドバーで該当する [アプリ] をクリック
再びサイドバーで「アプリの設定」アイコンをクリック
 
 ca-app-pub-9999999999999~99999999 のように「〜」が間にあるIDです。
 
1x1.trans - [Android] Android Studio でのAdMob広告の実装


 
広告ユニット ID は、AdMob で作成される各広告ユニットに割り当てられる一意の ID 番号で、バナー広告、インターステーシャル広告などアプリ内の広告を識別するためのものです。
 
広告ユニット ID の確認
Monetize and promote your app with AdMob.
から AdMob アカウントにログイン
サイドバーで [アプリ] をクリックします。
再びサイドバーで「広告ユニット」のアイコンをクリックすると広告ユニットのIDの一覧が表示されます。
 
ca-app-pub-9999999999999/99999999 のように「/」があるIDです。
 
1x1.trans - [Android] Android Studio でのAdMob広告の実装
 
AdMob広告はFirebaseを使う方法もあります
 
activity a00 100x100 - [Android] Android Studio でのAdMob広告の実装
GoogleではFirebaseを使って詳細な解析ができるAdMobサービスを提供しています。今までのsdkを使った方法も残ってはいますが、...

 
関連ページ:

References:
Android向けMobile Ads SDK
AdMob に申し込む

シェアする

  • このエントリーをはてなブックマークに追加

フォローする