困った時の自分用メモ

読んだ本を考察してメモったり、自分でいじった物の感想をメモったりする場。週1更新を目指します。

Androidの話~Admobの実装方法2:プログラム実装~

アプリに広告を出す手段に、GoogleAdmobという物があると知ったので、試しに「点数計算機メモるくん」に搭載してみた。

play.google.com

今回は、プログラム実装方法。

1:まずは、Admob実装用のSDKをダウンロードしてくる。

github.com

ここに飛んだら、

GoogleMobileAds.unitypackage

をダウンロードして、Unityプロジェクトに展開する。

2:実装

using UnityEngine;
using System;
using System.Collections;
using GoogleMobileAds.Api;

public class GoogleAdmobManager : Singleton<GoogleAdmobManager> {

    private InterstitialAd InterstitialAd = null;
#if false
    // 広告ユニット ID を記述します
    private string adUnitId = "ca-app-pub-3940256099942544/1033173712";// テストらしい
#else
    private string adUnitId = "ca-app-pub-**/**";// こっちは、本番
#endif

    public void Initialize() {
        InterstitialAd = new InterstitialAd(adUnitId);
        InterstitialAd.OnAdFailedToLoad += OnAdFailedToLoad;
        InterstitialAd.OnAdLoaded += OnAdLoaded;
        InterstitialAd.OnAdClosed += OnAdClosed;
    }

    public void OnAdLoaded(object sender, System.EventArgs arg) {
        InterstitialAd.Show();
    }

    public void OnAdClosed(object sender, System.EventArgs arg) {
    }

    public void OnAdFailedToLoad(object sender, AdFailedToLoadEventArgs arg) {
    }

    public bool IsInitialized() {
        return InterstitialAd.IsLoaded();
    }

    // 流れとしては
    // LoadAd->ちょっとかかる->OnAdLoaded->Show()で表示
    // Show()を行うと、自動的にLoadAdが呼び出されて準備が整うっぽい
    public void ShowAdmob() {
#if UNITY_EDITOR
#else
        AdRequest request = new AdRequest.Builder().Build();
        InterstitialAd.LoadAd(request);
#endif
    }
}

これで、ShowAdmob()を呼び出すたびに、広告が表示される。
LoadAdとか一回やればいいんじゃね?とも思ったのだが、それだとどうもうまく行かなかった。