はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】AdMobを実装して、ダミー広告を表示するまで(2021/12/18)

はじめに

久しぶりにAdMobを実装したいと思うのですが、手順をすっかり忘れてしまたので備忘録の意味合いも兼ねて残しておきたいと思います。

developers.google.com

f:id:hanaaaaaachiru:20211223193603p:plain
ダミー広告表示の様子

AdMobプラグインをインポートする

まずは以下のGitHubからプラグインをダウンロードしてください。

またバージョンは最新のものを選ぶと良いでしょう。というのも古いバージョンだと広告が表示されなくなったりする場合があり、アプリをリリースした後の定期的なプラグイン更新は開発者の恒例行事です。

github.com

f:id:hanaaaaaachiru:20211218153057p:plain
unitypackageのダウンロード

unitypacakgeをUnityに入れれば準備OKです。

f:id:hanaaaaaachiru:20211218154104p:plain
Unityにインストール

全てにチェックマークをつけいている状態でImportを押してください。

Mobile Ads SDKが含まれているか確認する

Mobile Ads SDKがインストールされていなければプラグインは動作しません。

Assets -> External Dependency Manager -> Andriod -> Resolveを選択肢、以下のウィンドウが表示されれば無事にインストールされています。

f:id:hanaaaaaachiru:20211218154804p:plain
この表示が出ればOK

AdMobからアプリIDを取得する

AdMobからアプリを追加し、アプリIDを取得します。
(ストアに出していなくてもアプリを追加できます)

f:id:hanaaaaaachiru:20211218160340p:plain
アプリの追加

あとはプラットフォームを選んで、アプリ名を入れば完了です。

f:id:hanaaaaaachiru:20211218160518p:plain
プラットフォーム選択

アプリIDはアプリ -> アプリ設定を選ぶことで知ることができます。

f:id:hanaaaaaachiru:20211218161352p:plain
アプリIDの確認

UnityプロジェクトとアプリIDを紐づける

先程取得したアプリIDをプロジェクトに設定します。

Assets -> Google Mobile Ads -> Settings...を選択。以下の画像の箇所にアプリIDを入力してください。

f:id:hanaaaaaachiru:20211218161200p:plain
Google Mobile Ads Settingsの開き方
f:id:hanaaaaaachiru:20211219190322p:plain
アプリIDを入力する

広告を実装する

あとはどの広告を実装するか判断しながら、以下の公式サンプルを参照してみてください。

developers.google.com

developers.google.com

developers.google.com

ダミーのバナー広告を表示する

今回は例としてダミーのバナー広告を表示してみます。

using GoogleMobileAds.Api;
using UnityEngine;

public class GoogleMobileAdsBanner : MonoBehaviour
{
#if UNITY_ANDROID
    private const string AdUnitId = "ca-app-pub-3940256099942544/6300978111";
#elif UNITY_IPHONE
    private const string AdUnitId = "ca-app-pub-3940256099942544/2934735716";
#else
    private const string AdUnitId = "unexpected_platform";
#endif
    
    private BannerView _bannerView;

    public void Start()
    {
        // アプリを起動した後に一度だけ実行する
        MobileAds.Initialize(initStatus => { });

        RequestBanner();
    }

    private void RequestBanner()
    {
        // 前のBannerViewのインスタンスが残っていたら破棄する
        if (_bannerView != null)
        {
            _bannerView.Destroy();
            _bannerView = null;
        }
        
        // 新しいバナー広告を作成・表示する
        _bannerView = new BannerView(AdUnitId, AdSize.Banner, AdPosition.Bottom);
        var request = new AdRequest.Builder().Build();
        _bannerView.LoadAd(request);
    }

    private void OnDestroy()
    {
        // バナー広告を破棄するときは必ずDestoryしないと、メモリリークするようです
        _bannerView?.Destroy();
    }
}

MobileAds.Initialize()はアプリを起動した後に一度だけ呼んでください。

上の例だと複数回呼ばれてしまう可能性があるので、実用する上ではSingletonRuntimeInitializeOnLoadMethodあたりを使うと良いかもしれません。

また広告削除の権利を取得・一定回数動画広告を見たら削除等でバナーを削除するときは、BannerView.Destroy()を実行してください。

f:id:hanaaaaaachiru:20211219202459p:plain
バナー広告

さいごに

この記事を書いていて思ったのですが、公式ドキュメント・スタートガイドがかなりしっかりしているのでこんな記事を見ずにそちらを参照した方がいいと思います。
developers.google.com

常に最新の情報が載っていますし、正確性でも良いでしょう。

ではまた。