今回の記事では、admob広告をバナーからアダプティブバナーに変更する方法を書きたいと思います。

バナーからアダプティブバナーに変更すると、以下のように表示が変わります。

・バナー広告

・アダプティブバナー広告

画面の横幅に合わせて、高さを自動的に調整して表示してくれます。

では、次から設定方法について書いていきます。

1.Firebaseアシスタントを使ってadmobのバナー広告を設定する

Firebaseアシスタントを利用すると簡単にadmob広告の設定ができます。
基本的にアシスタントに従って設定すれば良いので簡単にできます。
この手順で設定されるのはバナー広告で、次章の手順からアダプティブバナーに変更していく手順を書きます。

1.1.AndroidStudioのFirebaseを選択

1.2.FirebaseアシスタントでAdmobを選択

1.3.アシスタントの手順に従って実装

①から⑤まで手順がありますが、指定されている通りに実装を進めるとバナー広告が表示されるはずです。

2.admobのバナー広告をアダプティブバナー広告に変更する

ここまでの手順でバナー広告が表示されたと思います。ここからは、アダプティブバナー広告にする修正をします。

2.1.layoutファイルを変更する

アシスタントの手順に従ってlayoutファイルにAdViewを追加しましたが、それを以下のように変更します。
・変更前

<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_alignParentBottom="true"
	android:layout_centerHorizontal="true"
	ads:adSize="BANNER"
	ads:adUnitId="ca-app-pub-0000000000000000/0000000000">
</com.google.android.gms.ads.AdView>

・変更後

<FrameLayout
	android:id="@+id/adView_frame"
	android:layout_width="match_parent"
	android:layout_height="wrap_content"
	android:layout_gravity="center|bottom"
	android:layout_alignParentBottom="true" />

2.2.画面サイズを取得してアダプティブバナー広告を表示する

AdViewに広告をロードする処理だったものをサイズを計算して表示するようにします。
・変更前

private AdView mAdView;

protected void onCreate(Bundle savedInstanceState) {
    mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);
    ...
}

・変更後

private FrameLayout adContainerView;
private AdView mAdView;

protected void onCreate(Bundle savedInstanceState) {
    adContainerView = findViewById(R.id.adView_frame_reference);
    adContainerView.post(new Runnable() {
        @Override
        public void run() {
            loadBanner();
        }
    });
    ...
}

private void loadBanner() {
	mAdView = new AdView(this);
	mAdView.setAdUnitId("ca-app-pub-0000000000000000/0000000000");
	adContainerView.removeAllViews();
	adContainerView.addView(mAdView);

	AdSize adSize = getAdSize();
	mAdView.setAdSize(adSize);

	AdRequest adRequest = new AdRequest.Builder().build();

	mAdView.loadAd(adRequest);
}

private AdSize getAdSize() {
	Display display = getWindowManager().getDefaultDisplay();
	DisplayMetrics outMetrics = new DisplayMetrics();
	display.getMetrics(outMetrics);

	float density = outMetrics.density;
	float adWidthPixels = adContainerView.getWidth();

	if (adWidthPixels == 0) {
		adWidthPixels = outMetrics.widthPixels;
	}

	int adWidth = (int) (adWidthPixels / density);
	return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}

手順は以上となります。ビルドしてadmob広告を表示するとサイズが変わっているのがわかると思います。
 
最後に、このアダプティブバナーを利用している、パスコードロック画面付きのIDとパスワード管理アプリ「パスワードメモ」の無料のアプリをGoogle Playで公開しています。パスワードの管理が安全で簡単になりますので是非利用してみて下さい。