Unityで作ったAndroidアプリにAdMobのバナー広告を実装する方法【アプリ収益化】

Unityで作ったAndroidアプリに、AdMobのバナー広告を実装する方法を説明します。
自分で作ったアプリに、せっかくなので広告を載せて収益化したい!と言う人が対象です。

この記事では、AdMobへアプリの追加、Unityにプラグイン追加、スクリプトを作成して実機で広告の表示を確認するまでを説明したいと思います。

Admobとは?

一応簡潔に説明しておくと、AdMobとはアプリに広告を配信するGoogleのサービスです。
アプリの開発者は、掲載した広告がクリックされるごとに数円の収益を得ることが出来ます。
Webサイトやブログに同様の仕組みのGoogle Adsense(アドセンス)がありますが、同じような仕組みです。

アプリが大量にダウンロードされれば、何百万円も稼ぐことも夢ではありません!
大量にダウンロードしてもらうことが、そもそも難しいですが・・・

AdMobへの登録方法はこちらの記事を参考にしてください。

【アプリを広告で収益化】AdMobに登録する方法

【アプリを広告で収益化】AdMobに登録する方法
自分で作ったアプリに広告を掲載してお金を稼ぎたい場合に利用できる広告サービスはいろいろありますが、その中で最も有名なのがGoogleが運営する「Admob(アドモブ)」。Admobを利用するのにも、まずは登録が必要です。というわけで、A...

Admobにアプリを追加(登録)する

AdMobアカウントの登録は終わっているものとして話を進めます。
まずは広告を実装したいアプリをAdMobに登録しましょう。

アプリはすでに公開済みのものでも、まだ公開していないものでもOKです。

AdMobに一つもアプリを登録していない場合は上のような画面が表示されます。
とりあえず「スタート」をクリックして始めます。

すでにアプリが登録されている場合は、左のメニューの「アプリ」→「アプリを追加」をクリックします。

Admobにアプリを登録・アプリが公開済みの場合

広告を実装したいアプリがすでに

「Google PlayやApp Storeでアプリを公開していますか」→「はい」をクリック。

アプリ名、デベロッパー名、アプリIDを入力し、公開中の自分のアプリを検索します。

無事に自分のアプリが見つかったら「追加」をクリック。

アプリがAdMobに追加されました。
「ca-app-pub」で始まるアプリIDが表示されるので控えておきます。
Unityに実装するために必要になります。

Admobにアプリを登録・アプリが未公開の場合

アプリがまだ公開されてない場合は、公開中のアプリを検索する代わりにアプリ名を入力します。

「Google PlayやApp Storeでアプリを公開していますか」→「いいえ」をクリック。

アプリ名を入力し「Android」を選択して「追加」をクリック。

アプリがAdMobに追加されました。

広告ユニットの作成

続いて広告ユニットの作成です。

広告のタイプを選ぶ

AdMobを利用してアプリ上に表示できる広告には主に3種類あり、

  • バナー
  • インタースティシャル
  • リワード

となっています。
バナーは画面の上とか下に常駐するタイプのやつ。
少々目障りですが、個人的にはまあ許せる感じです。

インタースティシャルは、画面遷移のタイミングで表示される画像や動画の広告。
動画で15秒とか30秒ある広告を見るのを強制されると、若干うんざりしますね。
5秒位ならまだ許せますが。

リワードは、広告を視聴することでゲーム内のアイテムをもらえたりするタイプ。
なんか貰えるとなると、ユーザーが自分から見てくれるので、ゲームアプリと相性がいいですね。

今回は「バナー」を選択します。

広告ユニット名や広告の種類(テキスト/動画)などを決める

ここでは下記の項目を決めます。(バナー広告の例です。インタースティシャル広告などは設定項目がちょっと違います。)

  • 広告ユニット名
  • 広告の種類
  • 自動更新
  • eCPM Floor

「広告ユニット名」は、自分が分かりやすい名前をつけましょう。
自分で分かれば何でもいいと思います。

「広告の種類」は、テキストと画像や動画を含めるかを決めます。
特に理由がなければ、両方にチェックを入れといたほうがいいと思います。

「自動更新」はどれくらいの頻度で広告が切り替わるかを決めます。
「カスタム」を選んだときの設定範囲は30~150秒の間。

「eCPM Floor」を有効にすると、表示される広告の最低額を設定できます。
「何ドル以上」というように設定し、高い数字を入れた場合は1クリックの単価も上がりますが、高くしすぎると表示する広告がない!みたいなことになって、結局収益が低下します。
よく分からない場合は「無効」にしておけばGoogleが良い感じに最適化してくれます。

広告ユニットの作成完了

広告ユニットが作成され、アプリIDと広告ユニットIDが表示されます。
アプリIDはさっき控えたのと同じですが、広告ユニットIDも後で使うのでメモしておきます。
「完了」をクリックして終了です。

アプリIDも広告ユニットIDも「ca-app-pub-」から始まっていて紛らわしいですが、間に「~(波ダッシュ)」が入ってるのがアプリIDで、「/(スラッシュ)」が入ってるのが広告ユニットIDっぽいです。

UnityでのAdMob実装方法

AdMobでアプリIDと広告ユニットIDが取得できたので、いよいよUnityで広告を実装する作業です。
Unity製アプリにAdMob広告を実装する方法は、下記のAdmob公式サイトの情報を参考にしました。

Get started  |  Unity  |  Google for Developers
A mobile ads SDK for AdMob publishers who are building apps on Unity.

Googleの公式情報なので、一番信頼できます。
私が最初に見たときは英語しかなかったと思いますが、今見たら日本語化されてますね。
解説が英語でよく分からないから、日本語で分かりやすく書こう!と思って書き始めましたが、この記事の存在意義が早くも揺らぎ始めています。

気にせず続きを書きますけどね。

Google Mobile Ads Unityプラグインのダウンロードとインポート

UnityにAdMobの広告を簡単に実装出来るプラグイン「Google Mobile Ads Unity」をダウンロードしてUnityにインポートします。

https://github.com/googleads/googleads-mobile-unity/releases

Releases · googleads/googleads-mobile-unity
Official Unity Plugin for the Google Mobile Ads SDK - googleads/googleads-mobile-unity

上のリンクよりGitHubに移動し、「GoogleMobileAds.unitypackage」をクリックしてダウンロード。

unityでインポートします。
メニュー→「Assets」→「Import Package」→「Custom Package」→ファイルダイアログが出るので、さっきダウンロードした「GoogleMobileAds.unitypackage」を選択して「開く」。

デフォルトですべてにチェックが入っていると思います。
そのまま「Import」をクリックしてインポート完了です。

Mobile Ads SDKの追加

メニュー→ 「Assets」→「Play Services Resolver」→「Android Resolver」→「Resolve」をクリック。

この項目は「GoogleMobileAds.unitypackage」をインポートしてないと表示されません。

Google Play Servicesのライブラリのうち、必要なものをプロジェクトにコピーするための追加するための手順だとか。
実行するとUnityの「Assets/Plugins/Android」のディレクトリに必要なファイルがコピーされます。

なんかよく分かりませんが、必要な手順なので細かいことは気にせずやりましょう。

「AndroidManifest.xml」について

Androidアプリの開発において「AndroidManifest.xml」が必ず必要になります。
AndroidアプリにAdMobの広告を実装するさいにもAndroidManifest.xmlを書き換えたりする必要があります。
「GoogleMobileAds.unitypackage」をインポートしたら自動でやってくれるっぽいので、あえて自分で作成したり書き換えたりする必要はないようです。

「AndroidManifest.xml」と言うのがあって、場合によっては書き換える必要がある、程度に思っておけば十分かと思います。

EmptyObjectとスクリプトを作成

Hierarchyを右クリック→「Create Empty」をクリック。Empty Objectを作成し任意の名前(例”AdMob”)をつけます。

スクリプトを作成し「AdMob」等適当な名前をつけ、先程のエンプティーオブジェクトにアタッチ。
スクリプトに下記を記述します。
バナー広告を上部に表示する例です。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using GoogleMobileAds.Api;


public class AdMob : MonoBehaviour {

    // Use this for initialization
    void Start() {

        // アプリID
        string appId = "ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxx";

        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize(appId);

        RequestBanner();
    }

    private void RequestBanner() {

        // 広告ユニットID
        string adUnitId = "ca-app-pub-5626332249626810/7993728918";
        
        // 320x50の大きさのバナー広告を画面上部に作成する
        BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        bannerView.LoadAd(request);
    }
}

上のコードの「アプリID」と「広告ユニットID」を、AdMobにて取得した自分用のものに書き換えます。

BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);の部分でサイズと位置を指定します。

AdSize.Bannerとしていますが、BANNERが標準の320×50のサイズ。
LARGE_BANNERとすると320×100のサイズになります。
詳しくは下記の表や、Google公式ヘルプを参照してください。

サイズ(幅×高さ) 説明 対応デバイス 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

出典 https://developers.google.com/admob/unity/banner#banner_sizes

AdPosition.Topは画面上にバナー広告を表示する設定ですが、AdPosition.Bottomにすると画面下に表示できます。

注意点 実機(スマホ)じゃないと広告は表示されない

広告は実機(スマホ)に転送してアプリを動かさないと表示されません。
Unity上のプレビューでは広告は出ないのでご注意ください。

私は初めこれを知らなくて、「あれ?スクリプトを追加したのに広告が出ないな?何か間違えてるのかな?」と無駄に確認してしまいました。
これを読んでいるあなたは、こんな無駄な時間を過ごすことがないよう、覚えておいてください。

アプリ開発中は「テスト広告」を表示させるのが吉

AdMobの広告を自分でクリックするのはもちろん規約違反(アカウント削除もあり得るので、絶対にしないように!)ですが、クリックするしないに関わらず開発中のアプリに広告を表示することも規約違反のようです。
じゃあどうするかと言うと、テスト用のサンプル広告ユニットIDを使用するのが推奨されています。

上のコードサンプルに記載されている広告ユニットIDがそのサンプルのIDです。
下表のように、バナーやインタースティシャルなど、広告のタイプによってサンプル広告ユニットIDが異なります。

広告フォーマット サンプル広告ユニット ID
バナー ca-app-pub-3940256099942544/6300978111
インタースティシャル ca-app-pub-3940256099942544/1033173712
動画リワード ca-app-pub-3940256099942544/5224354917
ネイティブ アドバンス ca-app-pub-3940256099942544/2247696110

出典 https://developers.google.com/admob/unity/test-ads

このサンプル広告ユニットIDで表示される広告は、自分でクリックしても問題ありません。
ただし、アプリをリリースするときは忘れずに自分の広告ユニットIDに差し替えるのをお忘れなく。
サンプルのままだと、いくらクリックされても収益は発生しません。

実機で確認してリリース

さっきも書いたように、AdMobの広告はスマホでアプリを動かしたときじゃないと表示されません。
アプリをスマホに転送して確認する手順は下記の記事を参考にしてください

UnityでAndroid向けにビルドしてスマホに転送する方法(Windows編)

UnityでAndroid向けにビルドしてスマホに転送する方法(Windows編)
Unityで作ったゲームをAndroid向けにビルドし、PCとAndroidスマホをUSBケーブルで接続して転送、実機(スマホ)でアプリとして動作させるまでを説明します。ちなみにこの記事で使用しているOSはWindows10です。下...

広告の表示も確認し、アプリも完成したらいよいよリリース。
androidアプリをGoogle Playでリリースする手順は下記記事にまとめていますので、よろしければ御覧ください。

【android】google play consoleでアプリをリリースする手順

【android】google play consoleでアプリをリリースする手順
自作のAndroidアプリをGoogle Play Consoleにアップロードしてアプリをリリースする手順を説明します。UnityやAndroid StudioでAndroidアプリを作ったら、Google Playにリリースしてみん...

コメント