アプリを収益化する上で、広告は有効な手段の1つです。
広告サービスにはいくつかありますが、Googleが提供するAdMobが有名ですので、こちらをCocos2d-xで開発したアプリに組み込んでみました。

環境は以下の通りです。

  • Cocos2d-x 3.5
  • (iOS) Google Mobile Ads SDK 7.1.0
  • (Android) Google Play services rev.23

 

AdMobに登録する

https://www.google.co.jp/ads/admob/

AdMobのページへ行き、「AdMobに申し込む」から登録していく。

AdMob_01

Googleアカウントを用意して、そのアカウントで AdSense, AdWords にも登録する必要がある。
この画面で同時に作成できるので、規約に同意しAdMobの登録を進めていく。

 

広告を作成する

広告ユニットを作成する。
管理画面で「新しいアプリを収益化」ボタンを押下。

AdMob_02

アプリを手動で追加を選択し、アプリ名とプラットフォームを選択する。

AdMob_03

広告タイプを設定して保存をすると広告ユニットが作成できる。

AdMob_04

クロスプラットフォームなら、別のプラットフォームについても同じように登録する。
(ここではiOSとAndroid二つ作成)

作成されたそれぞれの広告ユニットIDは後で必要になる。

AdMob_05

 

iOSへの組み込み

https://developers.google.com/mobile-ads-sdk/download?hl=ja

iOS版の googlemobileadssdkios.zip をダウンロードする。

AdMob_06

適当な場所へ解凍する。(自分の場合は /Users/ユーザ名/Documents/cocos2d-x/GoogleMobileAdsSdkiOS-7.1.0 )

Xcodeでプロジェクトを開き、SDKをインポートする。
プロジェクトで Add Files to … を選択。

AdMob_07

解凍したAdMob SDKのフォルダを選択し、
「Copy items if needed」にチェック、「Create groups」を選択して、Addする。

AdMob_08

プロジェクトを選んで、[General]タブのLinked Frameworks and Libraries から、AdMobに必要なライブラリを追加する。

  • AdSupport
  • AudioToolbox
  • AVFoundation
  • CoreMedia
  • CoreGraphics
  • CoreTelephony
  • EventKit
  • EventKitUI
  • MessageUI
  • StoreKit
  • SystemConfiguration

AdMob_09

cocos2dライブラリ側のプロジェクトにある ios – AppController.h, AppContoller.mm にコードを追加する。

AdMob_11

 

これで実機で確認すると、画面下部に広告が出ていることを確認できる。
なお、SDK 7.0以降では testDevicesにエミュレータIDを指定しなくても、エミュレータ上では広告は表示されないようになっている。
(2015/06/26修正 7.2.1以降ではエミュレータIDを指定する仕様になった。testDevicesにkGADSimulatorIDを追加することで、エミュレータ内でテスト広告になる。)

AdMob_12

testDevicesにデバイスIDを登録すると、その端末ではテスト用広告が表示されるようになる。デバイスIDは、実機デバッグ時にコンソールに表示される。

…… が、

<Google> Advertising tracking may be disabled. To get test ads on this device, enable advertising tracking.

と出ている場合は、端末側の設定で広告制限がされているため、確認ができなくなっている。

実機端末にて、設定 > プライバシー > 広告 > 追跡型広告を制限

をOFFにすることで、デバイスIDをコンソールで確認することができる。

<Google> To get test ads on this device, call: request.testDevices = @[ @”xxxxxxxxxxxxx” ];

うまく設定できると以下のようにテスト用バナーが表示される。
開発時に本番広告をクリックしたりするとポリシー違反となるので、できるだけテスト用バナーが表示されるように設定をしておくのが無難。

AdMob_13

 

Androidへの組み込み

eclipseのメニューから、Window > Android SDK Manager を開く。
Extras にある Google Play services がインストールされていなければ、インストールする。
(Installedになっていたらインストール済みなのでそのまま次へ)

AdMob_14

インストールした Google Play services をプロジェクトに追加する。

File > New > Project… > Android Project from Existing Code から

C:\Android\android-sdk\extras\google\google_play_services\libproject
(Android SDKの配置先がC:\Android\android-sdkの場合)

を選択する。
登録時には、Copy projects into workspace にチェックを入れておく。

AdMob_15

自分のプロジェクト(ここではSampleGame)を右クリックして、Properties を開く。
Android の Library に、登録した google-play-services_lib をAdd する。

AdMob_16

プロジェクトのAndroidManifest.xmlを開き、AndroidManifest.xmlタブより編集を行う。

AdMob_17

 

プロジェクトのsrc内にある AppActivity.java にコードを実装する。

AdMob_18

 

うまくいくと、テスト広告が表示される。

AdMob_19

 

参考:

https://developers.google.com/mobile-ads-sdk/docs/admob/ios/quick-start
http://ladywendy.com/lab/cocos2d-x-v3/189.html
http://ladywendy.com/lab/cocos2d-x-v3/190.html
http://nobuo-create.net/admob/