Cocos2d-x android 全画面型

提供: GAMEFEAT マニュアル
移動: 案内検索

Cocos2d-xでのAndroid 全画面広告の実装方法の手順を解説します。

目次

SDKファイルのダウンロード

パートナー管理画面 SDK/マニュアルからAndroidのSDKファイルをダウンロードして下さい。

jarファイルの読み込み

ダウンロードしたSDKに付属されている「GameFeatSdk.jar」をEclipseのlibsディレクトリへ配置してください。

配置方法は、プロジェクト名を右クリックして、「Javaのビルド・パス > ライブラリ」で「外部Jar追加...」を選択し、GameFeatSdk.jarを追加します。

AndroidManifest.xmlの編集

パーミッション設定

AndroidManifest.xmlのmanifestタグ内に以下のコードを記述してください。

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

※ GameFeatSDKではインターネット通信が必要となるため、上記のパーミッションが必要となります。

GAME FEATの基本設定

GameFeatSDKの基本情報を設定します。

AndoridManifest.xmlのapplicationタグ内に、以下のコードを記述してください。

<!-- GameFeat START -->
<meta-data android:name="gamefeat_site_id" android:value="【メディアID】" />
<activity
	android:name="jp.basicinc.gamefeat.android.sdk.view.GameFeatAppActivity"
	android:configChanges="orientation|keyboardHidden"
	android:label="GameFeat" >
</activity>
<activity
  	android:name="jp.basicinc.gamefeat.android.sdk.view.GameFeatAppChildActivity"
  	android:configChanges="orientation|keyboardHidden"
	android:label="GameFeat"
	android:screenOrientation="sensor" >
</activity>
<receiver
	android:name="jp.basicinc.gamefeat.android.sdk.receiver.GameFeatBroadcastReceiver"
	android:enabled="true"
	android:exported="false">
	<intent-filter>
		<action android:name="android.intent.action.PACKAGE_ADDED"/>
		<data android:scheme="package"/>
	</intent-filter>
</receiver>
<!-- GameFeat END -->

※【メディアID】は管理画面よりご確認いただけます。

APIレベルが13以上の場合は android:configChanges 属性に screenSize を追加して下さい。

<activity
	android:name="jp.basicinc.gamefeat.android.sdk.view.GameFeatAppActivity"
	android:configChanges="orientation|keyboardHidden|screenSize"
	android:label="GameFeat" >
</activity>
<activity
  	android:name="jp.basicinc.gamefeat.android.sdk.view.GameFeatAppChildActivity"
  	android:configChanges="orientation|keyboardHidden|screenSize"
	android:label="GameFeat"
	android:screenOrientation="sensor" >
</activity>

GAME FEAT初期化設定

GAME FEATの広告を表示するために、srcディレクトリ内のCocos2dxActivityを継承したアクティビティにて、SDKの初期化設定が必要です。

import jp.basicinc.gamefeat.android.sdk.controller.GameFeatAppController;
// 略…

GameFeatAppController gfAppController;
private static MainActivity me = null;


@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	me = this;
		
	gfAppController = new GameFeatAppController();

        // 指定された回数毎に表示させる
	gfAppController.setPopupProbability(1);
}

@Override
public void onStart() {
	super.onStart();
	// 広告設定初期化
	gfAppController.activateGF(me, true, true, true);
}

※setPopupProbabilityにより、全画面広告を表示する頻度を指定できます。ただし、アプリケーションが最初にshowPopupAdを呼び出したタイミングでは必ず全画面広告は表示されます。

// 初期化コードの引数
activateGF(【Activity名】.this, カスタム広告の使用, アイコン広告の使用, 全画面広告の使用);

使用する広告の種類に合わせてBoolean(true / false)を引数として設定をしてください。 オファーウォール呼び出し型のみを使用される場合は、

gfAppController.activateGF(me, false, false, false);

と記述をしてください。

全画面広告の表示方法

上記のActivityに広告を表示するメソッドを用意し、NativeBridgeを経由してC++から呼ぶことで実装できます。

まず、ActivityにNativeBridgeが呼ぶ広告表示メソッドを記述します。

public static void showAllGameFeatJNI()
{
    me.runOnUiThread(new Runnable(){
	@Override
	public void run() {
		gfAppController.showPopupAdDialog(me);
	}
    });
}


次にXcode側でNativeBridgeファイルを作成します。

※ AndroidはNativeBridge.cpp iOSはNativeBridge.mmとして作成していただき、ヘッダーファイルは一つのみ作成してください。

【NativeBridge.h】

#ifndef _NATIVE_BRIDGE_H_
#define _NATIVE_BRIDGE_H_

class NativeBridge
{
public:       
     //全画面型GameFeat
    static void showAllGameFeat();
};

#endif
【NativeBridge.cpp】

#include "NativeBridge.h"
#include <android/log.h>
#include <jni.h>
#include "platform/android/jni/JniHelper.h"

#define CLASS_NAME "org/cocos2dx/cpp/AppActivity"

using namespace std;
using namespace cocos2d;

/**
 * 全画面型GameFeat表示
 */
void NativeBridge::showAllGameFeat()
{
    JniMethodInfo t;
    if (JniHelper::getStaticMethodInfo(t, CLASS_NAME, "showAllGameFeatJNI", "()V"))
    {
        t.env->CallStaticVoidMethod(t.classID, t.methodID);
    }
}

CLASS_NAMEは呼び出すCocosActivityを継承したアクティビティのsrcディレクトリ以降のパスを記述してください。

またディレクトリごとに/で区切ってください。

広告を表示したいタイミングで

NativeBridge.h

を読み込み、showGameFeatメソッドを実行してください。

【MainScene.cpp】

#include "MainScene.h"
#include "NativeBridge.h"

void MainScene::onClickBtn()
{
    NativeBridge::showGameFeat();
}

実行すると、GameFeatの広告一覧が表示されます。

全画面広告のリスナー設定

全画面広告を開いた時/閉じた時/開けなかった時に、イベントリスナーを設定することが出来ます。

import jp.basicinc.gamefeat.android.sdk.controller.GameFeatAppController;
import jp.basicinc.gamefeat.android.sdk.view.listener.GameFeatPopupListener;
// 略…


GameFeatAppController gfAppController;

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);

	// GFコントローラ
	gfAppController = new GameFeatAppController();

	// 指定された回数毎に表示させる
	gfAppController.setPopupProbability(1);

	// GF 全画面起動
	gfAppController.showPopupAdDialog(【アクティビティ名】.this, new GameFeatPopupListener() {

		@Override
		public void onViewSuccess() {
			// 全画面広告を開いた時
		}

		@Override
		public void onViewError() {
			// 全画面広告が開けなかった時
		}

		@Override
		public void onClickFinished() {
			// アプリ終了ボタン押下時(終了時広告時に使用)
		}

		@Override
		public void onClickClosed() {
			// 広告閉じるボタン押下時
		}
	});
}

コンバージョン確認方法

GameFeat SDKの広告一覧画面よりアプリを選択するとGoogle Playが起動いたしますので、対象のアプリをインストールしてください。

インストール完了後、GameFeat SDKがインストール情報をGameFeatサーバーへ送信いたしますので、管理画面より成果をご確認いただけます。

※管理画面の反映には10分程度かかります。

サンプルプロジェクト

GameFeat SDKのサンプルプロジェクトを用意いたしました。

SDKを管理画面からダウンロードしていただき、サンプルプロジェクトに含めてください。

また、AndroidManifest.xml内の

<meta-data android:name="gamefeat_site_id" android:value="サイトID" />

こちらを適宜変更の上、動作のご確認をよろしくお願いいたします。

GAMEFEAT_cocos2dx ver3.x.x sample
GAMEFEAT_cocos2dx ver2.x.x sample

個人用ツール
名前空間

変種
操作
Androidへの導入
iOSへの導入 (新SDK)
iOSへの導入 (旧 GAMEFEAT SDK)
Unityへの導入方法
Cocos2dx(Android)への導入方法
Cocos2dx(iOS)への導入方法
Q&A
ツールボックス