シェアする

UnityアプリにAdMob広告を実装する方法

先日、現在開発しているアプリにAdMob広告を実装しました。

AdMobをアプリ内で表示する為には、Unity以外でもいくつか設定が必要になるので紹介します。

はじめに

今回紹介する方法では、Unityにパッケージをインストールします。

誤って追加、削除してしまうとゲームが正しくビルドできなくなる可能性がありますので注意してください。

ではまず、AdMobのUnity用パッケージをインストールしましょう。

AdMobパッケージをインポートする

以下のサイトから、Google公式の「Unity用AdMob SDK」が配布されているので最新版をダウンロードしておいてください。

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

ダウンロードしたファイルを開くと「GoogleMobileAds.unitypackage」というパッケージファイルが見つかると思いますので、ダブルクリックしてUnityプロジェクトにインポートしましょう。
スクリーンショット 2016-05-09 2.58.24

インポートされたフォルダは、広告を表示する際に必要になるので削除しないようにしてください。

基本的に、これだけでAdMobの実装は完了しました。

続いて広告を呼び出すタイミングで使用するコードを書いていきましょう。

コードを書く

AdMob広告を表示するためには、コードを用いて広告コードを取得する必要があります。

まずは「バナー広告」を表示するためのコードを紹介します。以下のようなコードを作成してください。

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

public class AdMobBanner : MonoBehaviour {

	public string Android_Banner;
	public string ios_Banner;

	public BannerView bannerView;
	AdRequest request;

	// Use this for initialization
	void Start () {
	}
	void Awake(){
		DontDestroyOnLoad (this);
		// バナー広告を表示
		RequestBanner ();
	}
	
	// Update is called once per frame
	void Update () {

	}
	private void RequestBanner()
	{
		#if UNITY_ANDROID
		string adUnitId = Android_Banner;
		#elif UNITY_IPHONE
		string adUnitId = ios_Banner;
		#else
		string adUnitId = "unexpected_platform";
		#endif

		// Create a 320x50 banner at the top of the screen.

		bannerView = new BannerView (adUnitId, AdSize.Banner, AdPosition.Top);

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

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

このようなコードを空のGameObjectに追加し、Android_Bannerとios_Bannerにそれぞれの広告コードを設定してください。

あとは、広告を表示したいタイミングで「bannerView.Show( )」を呼び出すことで、バナー広告を表示することができ、「bannerView.Hide( )」で広告を非表示、「bannerView.Destroy( )」でバナー広告を削除できます。

また、DondDestroyOnLoadでシーンをまたいでも削除しないようになっているので、毎シーン配置する必要はありません。

続いて、インタースティシャル広告を表示するコードを書いていきましょう。インタースティシャル広告を表示するためのコードは以下のものになります。

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

public class AdMob : MonoBehaviour {

	public string Android_Interstitial;
	public string ios_Interstitial;

	private BannerView bannerView;
	private InterstitialAd _interstitial;

	bool is_close_interstitial = false; 

	// Use this for initialization
	void Awake () {
	}
	// Use this for initialization
	void Start () {
		// 起動時にインタースティシャル広告をロードしておく
		RequestInterstitial ();
	}
	public void RequestInterstitial()
	{
		#if UNITY_ANDROID
		string adUnitId = Android_Interstitial;
		#elif UNITY_IPHONE
		string adUnitId = ios_Interstitial;
		#else
		string adUnitId = "unexpected_platform";
		#endif

		if (is_close_interstitial == true) {
			_interstitial.Destroy ();
		}

		// Initialize an InterstitialAd.
		_interstitial = new InterstitialAd (adUnitId);
		// Create an empty ad request.
		AdRequest request = new AdRequest.Builder ().AddTestDevice("").Build ();
		// Load the interstitial with the request.
		_interstitial.LoadAd (request);

		is_close_interstitial = false;
	}

	void HandleAdClosed (object sender, System.EventArgs e)
	{
		is_close_interstitial = true;
	}
}

こちらの「Android_Interstitial」と「ios_Interstitial」にも広告コードを設定しておいてください。

AdMobのインタースティシャル広告は、1度表示するともう使うことはできなくなってしまうので、「is_close_interstitial == true」でインタースティシャル広告を閉じたタイミングで削除するようにしています。

このコードからインタースティシャル広告を呼び出すためには、任意のタイミングで「_interstitial.Show( )」と書いてあげれば表示することができます。

テスト広告の設定

AdMobではテスト広告が用意されています。

AdRequest request = new AdRequest.Builder ().AddTestDevice(“”).Build ();

の「AddTestDevice()」内にテストデバイスのIDを入力することによって、表示される広告をテスト用のものに変更することができます。

テスト用デバイスのIDを取得するには少し特殊な方法になるのですが、AdMobを導入したアプリをiOS端末にインストールする際にXcode経由で行うと思います。

XcodeからRunを押すとアプリの実機テストが行われるのですが、インストールしたアプリの起動直後に以下の画像のような文面があります。

スクリーンショット 2015-11-02 19.06.39

ここでは隠しているのですが、接続している端末によって表示される内容が変わると思います。ここに書かれたIDを先ほどの「.AddTestDevice(” テストデバイスID “)」に書き加えてあげることで、テスト用広告に差し変わります。

※AdMobはアドセンスと同様に規約が厳しくなっていると思われます。誤って広告を自分でクリックしてしまわないように、必ずテスト広告を使用するようにしてください。

iPhoneでAdMob広告を表示する

AdMob広告を表示するために設定はまだあります。ここからはiPhoneとAndroidそれぞれ設定する項目が変わってきますので、どちらか片方だけでリリースするという方は両方設定する必要はありません。

ではまずiPhoneでの設定から説明します。

iPhoneでAdMob広告を導入するためには、幾つかのframeworkが必要になります。

AdMobを実装したiOSアプリをビルドするときに必要なframeworkをこちらの記事でまとめていますので、確認してください。

XcodeでAdMobアプリ実機テスト時に必要なframework
先日、現在作成中のアプリを実機にインストールしようとしたところ、Xcodeでエラーが発生してしまい、ビルドできませんでした。 ...

おそらくframeworkが足りていないと、Buildすることもできないと思います。続いてAndroidアプリの場合の設定項目を紹介していきます。

AndroidでAdMob広告を表示する

AndroidアプリにAdMob広告を表示する場合、iPhoneの時とは違い「アプリはインストールできるが、広告が表示されない」と言うような状況に陥りやすいと思います。

そのような場合は、「AndroidManifest.xml」が正しい位置に配置されていなかったり、Unityパッケージに不備があったりといった原因が考えられます。

AndroidManifest.xmlを配置する場所についてはこちらの記事で説明していますので、確認してください。

AdMob広告がAndroidに表示されない時に確認する事
先日、Unityで開発しているアプリにAdMob広告を実装しました。 iOSでテストした時には正しく広告が表示されるのに、An...

これで端末ごとの設定は以上です。あとは実際にアプリを起動し、広告が表示されているかを確認してみてください。

>こちらの記事もよく読まれています<

まとめ

今回の方法を使えば、Unityで開発したアプリにAdMob広告を表示できるようになると思います。

無料アプリで広告を貼ることによって、収益を得られたりアプリを紹介できたりするので、まだアプリ内広告を実装していない方は試してみてはいかがでしょうか。

今回紹介した「AdMob」以外にも「nend」だったり、動画広告の「UnityAds」や「AdColony」などの広告サービスもありますので、調べてみて自分の開発したアプリに最適な広告サービスを探してみましょう。

ではまた。

この記事が気に入ったら
いいね ! しよう

Twitter で

コメント