cocos2dxにAdMobを実装(android)

ChainZ(クリエイター)
いろいろやってます。

1.AdMobのアカウント登録

AdMob

http://www.google.co.jp/ads/admob/にアクセスしてAdMob に申し込むから登録できます。登録完了したら、収益化のページに移動し、新しいアプリの収益化を追加します。

AdMob Unit

ステップに沿ってフォームに入力したら、ca-app-pub-xxxxxxxxxxxxxxxxx/xxxxxxx(xは数字)のような広告ユニットIDが取得できます。

2.cocos2d-xプロジェクトを新規作成

cocos new javaAd -l cpp -p com.befool -d <パース>

javaAdはプロジェクト名です。他の名前にしてもいいですが、この記事ではjavaAdを使います。

で新規プロジェクトを作成して

AppDelegate.cpp

auto glview = director->getOpenGLView();
if(!glview) {
glview = GLView::create("My Game");
director->setOpenGLView(glview);
}

直後に、下記のコードを追加

glview->setDesignResolutionSize(800.0f, 480.0f, ResolutionPolicy::FIXED_WIDTH);

HelloWorldScene.cppinit()メソードを下記のように修正

bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !Layer::init() )
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
auto label = Label::createWithSystemFont("Hello", "HiraKaku-W6", 36.0f);
label->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2));
this->addChild(label);
// Hello を画面の真ん中に表示させます。
return true;
}

xcodeでコンパイルすると、こうなります:

hello xcode

3.AndroidにDeployしてみる

Android SDKに入ってるEclipseを開いて、File > Import …で先ほど新規したcocos2dxプロジェクトフォルダ中のcocos2d/cocos/platform/android/javaをインポートする。(これがcocos2dxのlibになります、cocos2dxのプロジェクトはほぼこれを基盤にして動いてるので、これがないとコンパイルされません。)

Eclipse 01 Eclipse 02

同様にproj.androidもインポートします。(これが先ほど作ったjavaAdプロジェクトです)。javaAdを右クリックしてpropertiesを選択して、Androidタブに移動してcocos2dxライブラリが追加されたかどうかを確認します。追加されてないもしくは赤い×が表示されていれば手動で追加しなければなりません。 Eclipse 01 Eclipse 02

上記の流れでやってきたら、javaAdを右クリックして、Run As … > Android Applicationでコンパイルできます。結果はこうなります:

Eclipse 01

4.AdMobを実装

1. Google Play Services libsを取得

AndroidのSDKからGoogle Play Service

2. Google Play Services libsをEclipseにインポートする

File > Import … で Android SDK中のsdk/extras/google/google_play_services/libproject/google-play-services_libフォルダをインポートします。javaAdプロジェクトを右クリックして、Propertiesを選択、Androidタブへ移動してgoogle-play-services_libを追加します。

3. AdViewを追加

<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

final

今回は簡単な実装をやるので、バージョンの低い(3.0以下)Androidは対応していません。(これについて次回検討します)