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プロジェクトを新規作成

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

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

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

AppDelegate.cpp

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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を追加

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

final

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