Unityで自作したゲームにAdmobのバナー広告を表示する
こんにちは。「仕様です。」(@shiyoumasayume)という名前でSNSをやっているゲームプランナーです。
ふだんはコンシューマータイトルプロジェクトでディレクターやプロデューサーが旗を振ったイメージを具体的にゲームデザインするという仕事をやっています。
また最近では在宅での仕事も増え、結果として自分の自由な時間が増えました。
そこで勉強も兼ねて普段の業務では作れないようなゲームを個人開発したりしています。
今日は自作ゲームへの広告表示についてまとめようと思います。
このnote単体で読んでいただいても大丈夫ですが、作っているゲームについての詳細を知りたいという方は開発内容まとめなどを見ていただけると嬉しいです!
作成中のゲーム「Dr.Holeking」についての全記事はこちら
開発に使うもの
PC
・MacBook Air 2020 13インチモデル
・第10世代の1.2GHzクアッドコアIntel Core i7プロセッサ
・Intel Iris Plus Graphics
・16GB 3,733MHz LPDDR4Xメモリ
・1TB SSDストレージ
ゲームエンジン
・Unity バージョン2020.1.2f1
Google chrome
・調べ物をするときに
Twitter / note
・経過報告用
Macbook AirにUnityというツールを入れてゲームを作っていきます。
1台のノートPCだけでの開発というたいへんコンパクトな装備。M1チップの新型Macbook Airが発売され、「早い…早くない?」と首をかしげるばかりです。
ちなみに、ゲーム中のフォントやSE、BGM素材以外はすべてUnityをインストールするだけで作れる内容で構成しています。
作ろうとしているゲームの概要
今回作っている「Dr.Holeking」というゲームはこんな要素を持っています。
・ポストアポカリプス(崩壊後の世界)なSFモノ
・基地のリソースを管理して襲来する敵を倒す
・敵を倒して得たリソースを使って基地の地下を掘削し、地球の核へと到達する
・iPhoneの縦持ちでプレイ
・ゲーム名:Dr.Holeking
プレイヤーが遊ぶときの流れはこんな具合です。
1.基地のリソースを消費して基地設備を整える
2.襲来する敵を倒す
3.敵を倒して得たリソースでさらに基地を増築or地面の掘削を進める。
敗北条件:所有する基地の設備が襲来する敵を倒しきれなかった
クリア条件:特定の深度まで掘削を進めた
ここで遊べます!
作成中のゲームのプロトタイプをUnityRoomというフリーゲーム投稿サイトに登録しています。
スマホからアクセスすると一部機能が使えなかったりUIが多少ずれたりすることがありますが、基本機能やゲームサイクルを触っていただくことは可能です。
PCのブラウザからアクセスしていただくとおおむねちゃんと遊ぶことができると思います!
収益形態の選定
基本プレイ無料のゲームのマネタイズは色々ありますが、まず形態として大きく分けられるのは、広告収入もしくは直接課金による収入でしょう。
広告収入
動画広告・バナー広告をプレイヤーに見てもらい、それによる収益を受け取る。GoogleAdsenseを利用したAd広告が一番主流なのでは。
直接課金
ユーザーに直接お金を支払ってもらう方式。ガチャや広告解除、ビール代などプラットフォームに登録したクレジットカードから直接アプリに対して課金してもらうようなもの。
Dr.Holekingでは今回広告収入の形態をとります。
直接課金はそれにより発生する責任(メンテナンス、例外処理など)が大きく、勉強を兼ねて作成しているDr.Holekingを今後もメンテし続けるつもりは今の所無いため選択肢として除外しました。
広告収入の形態もその中で大きくざっくりいえば、先に書いたような動画広告とバナー広告の2種類です。
こちらに関しては、最初ということもあり一番シンプルそうなバナー広告の形態を選択しました。
動画の方は、それを差し込むことによるゲームシーケンスへの影響や、動画を見てくれたプレイヤーへの見返り設計、動画がうまく再生されない場合の例外処理など懸念も多かったためです。
最初の広告実装なので、シンプルに、シンプルに、進めていきます。いずれは「コマーシャルタァァァイム!!!」とかやってみたいですね。
バナー広告表示
今回はGoogle Admob(グーグル アドモブ)を使ってバナー広告を実装していきます。
カンタンじゃろと思っていましたが、これがもう、めちゃくちゃに大苦戦しました…。
導入までの流れはこちら。
僕がどハマリしていたことを書いておくと、僕はDr.HolekingというゲームをiOSアプリとしてリリースしようと考えていました。
そういう考えからiOSと名のついた「Mobile Ads SDK (iOS)」を導入しようとしていたのですが、Unityで作るゲームであればMobile Ads SDK (Unity)の手順に従って導入する必要があります。
Mobile Ads SDK (Unity)を導入して、それをiOSやAndroid用にビルドしていくというイメージのようです。
色々とネットの海をさまよい、ターミナルを開いてcocoapodsのインストールをしようとしたり、Rubyのアップデート方法やらなにやらを調べる必要はありません。ありませんでした。
実装してみた
画像の一番上にピョロッと出ているバナー広告。これがGoogle Admobを利用して表示したものです。(テスト用のバナーです)
大雑把な手順としては、広告表示用の空のGameObjectを追加する。
広告表示用のScriptを用意(Admobとか、GoogleAdsenseとか適当な名前)し、上記のGameObjectにアタッチ。
Scriptの中身はこんな感じにしています。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;
public class Admob : MonoBehaviour
{
// Use this for initialization
[System.Obsolete]
void Start()
{
// 本番では自身のアプリIDを設定します
string appId = "ca-app-pub-3940256099942544~3347511713"; // test
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize(appId);
RequestBanner();
}
private void RequestBanner()
{
// 本番では 自身の広告ユニットIDを設定します
string adUnitId = "ca-app-pub-3940256099942544/6300978111"; // test
// Create a 320x50 banner at the top of the screen.
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);
}
// Update is called once per frame
void Update()
{
}
}
Google Mobile Ads Unity Plugin v5.4.0であれば、この内容でゲームを再生するとGameビュー上でバナー広告が表示されます。これより以前のバージョンですと、実機にビルドしてみないと確認できなかったとか。(大変すぎませんかね…。)
ちなみに広告の位置は以下の行で変更可能です。
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
「AdPosition.Top」なら画面の一番上にバナーが表示され、「AdPosition.Bottom」なら画面の一番下に表示されるという具合です。
というわけで
今日は自作ゲームへの広告表示についてをまとめてみました。
今後は広告表示位置の調整や、ゲーム自体のブラッシュアップを行いまして、AppStoreへのリリースを目指していきます。
11月末でブラッシュアップ作業は少なくとも終了させていきたいと思います。本作のお役目完了がだんだん近づいてきました…!
引き続き優しく見守っていただけると幸いです。
ここまで読んでいただきありがとうございました!
よろしければコメント、スキ、フォローお願い致します!
Twitterもやっていますのでよろしければこちらでも絡んでいただけると嬉しいです。
https://twitter.com/shiyoumasayume
他にも色々な記事を書いています。
よろしければサポートお願いします!いただいたサポートをモチベーションにまた活動を続けていきます