UnityでAdMob広告表示

今日はAndroid向けにビルドしたUnityアプリにAdMob広告を表示できたので手順をメモします。



>追記：黄昏さんが公開してるバージョンのプラグインではAdMobSDKも最新版に差し替えられており、広告表示位置もUnity側から自由に変更できます。こっちを使った方がてっとり早そうです。（汗
>http://tasogare66.blog.fc2.com/blog-entry-41.html



#１．AdMobの表示
Unityのバージョンは4.1.5f1
AdMob表示プラグインは
GitHubのhttps://github.com/keijiro/unity-adbanner-example
の
[unity-adbanner-plugin-20120420.unitypackage](https://github.com/downloads/keijiro/unity-adbanner-example/unity-adbanner-plugin-20120420.unitypackage)
を使わせていただきました。


基本的にはこちらのサイトの手順通りにやれば表示できますのでとりあえずご参照ください( ^ 8 ^;)
>http://noplan-x-noplan.hatenablog.jp/entry/2013/08/26/224013

簡単な手順ですがそれでも僕がつまづいた点があったので注意点を書き出します。

##注意点
・僕の場合、適当なフォルダからプラグインのunitypackageをインポートしようとしましたが失敗しました。Standard Packageフォルダからはインポートできたので、パスに日本語が含まれてると良くないのかもしれません。

・Unityからjarファイルを使うにはPlugins/Androidなどフォルダ構成に決まりがあるらしいので、インポート時のフォルダ構成は変更しない方が良さそうです。
Projectビュー直下にPlugins、その下にAndroidフォルダがある状態が正しいです。間に違うフォルダなどを挟むと、ビルドエラーは出ませんがアプリ起動に失敗するようになり頭を抱える事になります。
>参照：http://d.hatena.ne.jp/shimobayashi/20120407/1333810136
>http://www.atmarkit.co.jp/ait/articles/1107/04/news109.html

・MAd Mob Publissher IdにはパブリッシャーＩＤ↓
![パブリッシャーＩＤ.jpg](https://qiita-image-store.s3.amazonaws.com/0/22396/c8118f43-897a-b2db-bbe1-a77ef4546309.jpeg)


ではなく広告ユニットID↓
![広告ユニットＩＤ.jpg](https://qiita-image-store.s3.amazonaws.com/0/22396/dba262d0-8b85-889e-8d7f-f9e7488d2b3c.jpeg)


の方を入力してください。

・MAd Mob Test Device Idは入力しないとDeveropment Build時に広告が表示されない？と思ってましたが無くても表示されたので別に入力不要のようです。

・広告が表示されない場合はちゃんとWifiや3G通信が繋がってるか再接続などして確認してみてください。

・何かの拍子で端末上でアプリが起動失敗するようになったら通信の再接続や端末の再起動を試してみてください。


##広告表示成功！
これで端末画面で広告表示させる事ができました！
![device-2013-08-30-153706.jpg](https://qiita-image-store.s3.amazonaws.com/0/22396/6c5d0e3b-0d46-2b9b-b429-02875318b415.jpeg)

#２．AdMob広告の画面位置変更

広告は表示できましたが、僕が製作中のゲームの場合は、画面の下端に広告があると操作の邪魔過ぎるので、広告は上端に表示したいです。
そのためにはプラグイン（jarファイル)自体の変更が必要になります。
面倒くさそうですがとにかくやってみましょう。

まず先ほどのGitHubのプロジェクトページ
https://github.com/keijiro/unity-adbanner-example
から「Download Zip」より最新のリポジトリを入手します。
![downloadzip.jpg](https://qiita-image-store.s3.amazonaws.com/0/22396/d080d8fe-6e19-976a-3ada-49b8b0f371ec.jpeg)

Eclipseを起動してFile→Import→General / Existing Projects into Workspaceを選択して、
Select root directory で先ほどダウンロードしたファイルのunity-adbanner-example-master/AndroidPluginフォルダを選択してから、Finishを押してプラグインのプロジェクトを開きます。

プロジェクトのsrcの中にあるAdBannerController.javaを開くと、23行目に
`layout.setGravity(Gravity.BOTTOM);`
とあり、この記述により広告が画面下端に表示されるらしいので
`layout.setGravity(Gravity.TOP);`
と書き換えます。

あとはビルドするだけです。
このプロジェクトはAntプロジェクトですので、プロジェクト内のbuild.xmlを右クリックして、Run as→Ant Buildを選択することでビルドできます。
>参照：http://allabout.co.jp/gm/gc/80644/2/

しかし、ここでビルドエラーが出ると思います。
local.propertiesが無いと言われてしまいます。何やらコマンドラインからの操作が必要らしいので、コマンドプロンプトでカレントフォルダをプロジェクトフォルダに移動して
`Android update project --path .`
と打ち込めばlocal.propertiesなどのファイルが自動生成されるはずです。
>参照：http://blogs.yahoo.co.jp/ndoird_k/3601156.html
>http://d.hatena.ne.jp/tarosay/20110117/1295234981

改めてビルドすれば、無事成功するはずです。

ビルドされたプラグインファイルはプロジェクトのbinフォルダ内にactivity_entry_name.jarという名前で生成されていると思います。


このactivity_entry_name.jarをAdMobPlugin.jarにリネームして、UnityのProject内のAdMobPluginに差し替えて実行すれば…

![device-2013-08-30-161933.jpg](https://qiita-image-store.s3.amazonaws.com/0/22396/3c609863-5d76-2e90-b59d-26254235099f.jpeg)

画面の上端に広告が表示されました！

##おまけ：AdMobSDKを最新に

プラグインのビルドついでにAdMobSDKも最新バージョンに差し替える方法を紹介します。（現時点で6.4.1）

とりあえずGoogle Developersから最新版SDKをダウンロードします。
>https://developers.google.com/mobile-ads-sdk/download?hl=ja
![mobsdk.jpg](https://qiita-image-store.s3.amazonaws.com/0/22396/d54f5d3d-a89b-345c-f5d2-1a122d22a676.jpeg)

先ほどのeclipseのプラグインプロジェクトの中のlibsフォルダにある古いSDK（GoogleAdMobAdsSdk-4.3.1.jar）を最新版SDK(GoogleAdMobAdsSdk-6.4.1.jar)に差し替えてからactivity_entry_name.jarを再度ビルドします。

新しくできたactivity_entry_name.jarを例によってAdMobPlugin.jarにリネームしてUnityProject内のAdMobPluginと差し替え、同様にUnity内のGoogleAdMobAdsSdk-4.3.1もGoogleAdMobAdsSdk-6.4.1に差し替えます。

以上でSDK最新バージョンへの差し替え完了です。



手探りでやったので間違ってる記述がもしありましたらご指摘ください。