【Android】バナー型広告を表示する
無料アプリで収益化するために広告を出しているアプリはたくさんあります。
ここでは画面の固定された部分(下部や上部などに)に表示されるバナー型の広告を出す方法についてまとめます。
広告はAdMobというAdSenseのMobile版を利用します。AdSenseと違い特に審査等はありませんので登録後すぐに使えます。
事前準備
まずAdMobで広告ID(adUnitId)を発行する必要があります。
adUnitIdを発行
AdMobへログイン・またはアカウント作成して「アプリを追加」をクリックします。
https://admob.google.com/intl/ja/home/
- 新しいアプリの設定
開発段階で導入するので「いいえ」を選択
- アプリ名に任意の名前を入力し、プラットフォームにAndroidを選択して「追加」をクリック
(AdMobコンソール上の名前なので実際のアプリと異なっていても問題ない)
- 広告ユニットの追加「広告ユニットを追加」をクリック
- 「バナー」を選択
- 広告ユニット名に任意の名前を入力し、「広告ユニットを作成」をクリック
- 作成された広告ユニット名をクリック
- 広告ユニットIDがadUnitIdになりますこれをソースコードの中で指定するのでコピーしておいてください
実装
ライブラリの追加
app/build.gradle
dependenciesに以下のライブラリを追加(バージョンは適時修正)
compile 'com.google.android.gms:play-services:10.0.1'
権限の設定
AndroidManifest.xml
以下の権限を追加
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
adUnitIdの定義
values/string.xml
adUnitIdを追加(任意)
ソースコードにべた書きでも動きますが、valuesへ定義するのがベターです。
<resources>
<string name="app_name">AddMobTest</string>
<string name="ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>
</resources>
ビューレイアウト
res/layout/activity_main.xml
広告を表示するActivityのレイアウトにAdViewを追加します。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.addmobtest.MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="AdMob Test"
android:textSize="40dp"
android:gravity="center_horizontal|center_vertical" />
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10sp"
ads:adSize="BANNER"
ads:adUnitId="@string/ad_unit_id" />
</RelativeLayout>
広告表示処理
MainActivity.java
最後にアクティビティで広告のロード処理を追加します。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AdView adView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
実行結果
なお今回使用したadUnitIdはサンプル用のadUnitIdです。
https://developers.google.com/admob/android/test-ads#sample_ad_units
起動時にクラッシュする時
返信削除AndroidManifest.xml application にmeta-dataが必要
https://firebase.google.com/docs/admob/android/quick-start?hl=en