Lab

Cocos2d-x v3:AdMobを表示させる(Android)

 Tag :  Published : 2014-10-22

Pocket

Cocos2d-xでAdMobを表示させます。(Android)
環境は、 cocos2d-xがv3.3beta0、Google Play services SDKがVersion16です。
> Ver2.x : 『AdMobを表示させる(Android)』はこちら

1.AdMobに申し込む

AdMobに登録して、広告ユニットID(ca-app-pub-から始まる番号)を控えておきます。

2.Google Mobile Ads SDKのインストール

Eclipseメニューから、Window > Android SDK Managerを選択します。
Extrasフォルダの中にある、Google Play services SDKをインストールします。

cocos2d-x Google Mobile Ads SDKのインストール

3.Google Play servicesをプロジェクトに追加

インストールしたファイルは、
<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/
に入っています。

これをプロジェクトに追加します。
Eclipseメニューから、File > New > Projectを選択します。
Android Project from Existing Codeを選択して、Google Play servicesを追加します。

cocos2d-x Google Play servicesをプロジェクトに追加

4.Google Play servicesをCocos2d-xのプロジェクトに紐付け

あらかじめ作成してあるCocos2d-xのプロジェクト(今回はSampleという名前にしてあります)を右クリックして、Propertiesを選択します。
Androidの項目を選んで、Library内のAddボタンを押します。

cocos2d-x Google Play servicesをプロジェクトに追加

google-play-services_libを追加します。

cocos2d-x google-play-services_libを追加

5.広告を表示する準備

AndroidManifest.xmlに以下を追加します。

cocos2d-x AndroidManifest.xml
AndroidManifest.xml:applicationタグの中

        <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"/>
    
AndroidManifest.xml:manifestタグの中

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    

つづいてAppActivity.javaファイルです。

cocos2d-x AppActivity.java
AppActivity.java

public class AppActivity extends Cocos2dxActivity {
	private static AdView adView;
	private final int lp = LinearLayout.LayoutParams.WRAP_CONTENT; 

	public Cocos2dxGLSurfaceView mGLView;

	@SuppressLint("NewApi")
	protected void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);		

		adView = new AdView(this);
				
		Display dp = getWindowManager().getDefaultDisplay();
		Point size = new Point();
		dp.getSize(size);

		adView.setAdSize(AdSize.BANNER);
		adView.setBackgroundColor(Color.TRANSPARENT);
		adView.setAdUnitId("ca-app-pub-から始まる広告ユニットIDをここに");

		FrameLayout.LayoutParams adParams = new FrameLayout.LayoutParams(lp,lp);
		adParams.gravity = (Gravity.BOTTOM|Gravity.CENTER); 
		addContentView(adView, adParams);

		AdRequest adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR).addTestDevice("ABCDE12345").build();
		adView.loadAd(adRequest);	
	}

	public Cocos2dxGLSurfaceView onCreateView() {
		Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);
		glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);
		mGLView = glSurfaceView;
		return glSurfaceView;
	}
		    
	protected void onDestroy(){
		if(adView != null){
			adView.destroy();
		}
		super.onDestroy();
	}
}
    

“AdRequest adRequest = new AdRequest.Builder()”の後に”.addTestDevice(指定する端末)”をつなげると、該当する端末には、テスト用バナーが表示されます。

上記の場合には、AdRequest.DEVICE_ID_EMULATOR(エミュレーター)とIDがABCDE12345の端末ではテスト用バナーが表示される設定になっています。

6.広告を表示させる

それでは実行してみます。

cocos2d-x cocos2d-x AdMob表示されたー

できましたー。
キャプチャはエミュレーターなので、ちゃんとテストバナーが表示されています。

pageTop