Unityで作ったAndroidアプリに、AdMobのバナー広告を実装する方法を説明します。
自分で作ったアプリに、せっかくなので広告を載せて収益化したい!と言う人が対象です。
この記事では、AdMobへアプリの追加、Unityにプラグイン追加、スクリプトを作成して実機で広告の表示を確認するまでを説明したいと思います。
Admobとは?
一応簡潔に説明しておくと、AdMobとはアプリに広告を配信するGoogleのサービスです。
アプリの開発者は、掲載した広告がクリックされるごとに数円の収益を得ることが出来ます。
Webサイトやブログに同様の仕組みのGoogle Adsense(アドセンス)がありますが、同じような仕組みです。
アプリが大量にダウンロードされれば、何百万円も稼ぐことも夢ではありません!
大量にダウンロードしてもらうことが、そもそも難しいですが・・・
AdMobへの登録方法はこちらの記事を参考にしてください。
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公式サイトの情報を参考にしました。
Googleの公式情報なので、一番信頼できます。
私が最初に見たときは英語しかなかったと思いますが、今見たら日本語化されてますね。
解説が英語でよく分からないから、日本語で分かりやすく書こう!と思って書き始めましたが、この記事の存在意義が早くも揺らぎ始めています。
気にせず続きを書きますけどね。
Google Mobile Ads Unityプラグインのダウンロードとインポート
UnityにAdMobの広告を簡単に実装出来るプラグイン「Google Mobile Ads Unity」をダウンロードしてUnityにインポートします。
・https://github.com/googleads/googleads-mobile-unity/releases
上のリンクより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編)
広告の表示も確認し、アプリも完成したらいよいよリリース。
androidアプリをGoogle Playでリリースする手順は下記記事にまとめていますので、よろしければ御覧ください。
【android】google play consoleでアプリをリリースする手順
コメント