Android Unity対応 v3.3

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

Unityで作られたAndroidアプリへGAMEFEAT SDKを導入する方法を解説します。

v2.1の実装マニュアルについては、こちらを参照してください。

※Windows環境にてUnityを利用して開発されている方は、必ずこちらをご確認くださいませ。

※より詳細な導入方法は こちらをご確認くださいませ。

目次

Android広告IDについて

GAMEFEAT SDK v3.3.0から、Android広告IDに対応しました。SDKの導入には、Google Play Serviceへの対応が必要になります。

また、動作環境としてはAndroid2.3以降となります。

Google Play Servicesの対応はこちらをご覧ください

※2016/07/14 追記
現在google-play-services_libは提供を終了しているようです。
既存の方法で動作しない場合は https://unity3d.sakura.ne.jp/unity/android-admob.html 等をご参考いただき、お試し頂くようお願いいたします。

必要なファイル

  1. GameFeatSDK_v3.3.0.zip
  2. gamefeat_unity_android.unitypackage

導入方法

gamefeat_unity_android.unitypackageを立ちあげて、Unityプロジェクトにimportしてください。(サンプルスクリプトとしてGameFeatObserver.csを付属しておりますので、そちらを参考に実装してください。)

その後、GameFeatSDK_v3.3.0.zipを解凍して中にあるGameFeatSDK.jarを/Assets/Plugins/Androidに配置をしてください。AndroidManifest.xmlの中のメディアIDを自身のものに書き換えれば完了です。

GAME FEAT初期化設定

GAME FEATの広告を表示するために、メインアクティビティ(一番最初に起動されるアクティビティ)にて、SDKの初期化設定が必要です。

void Start () {
	unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
	activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");

	plugin = new AndroidJavaClass("jp.basicinc.gamefeat.android.unity.GameFeatUnityPlugin");
	plugin.CallStatic("activateGF", activity, false, true, true);
}

void OnApplicationPause (bool pauseStatus){
	if (!pauseStatus) {
		unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
		activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
		plugin = new AndroidJavaClass("jp.basicinc.gamefeat.android.unity.GameFeatUnityPlugin");
		plugin.CallStatic("activateGF", activity, false, true, true);
	}
}

オファーウォール 起動方法

AndroidJavaObject plugin = new AndroidJavaObject("jp.basicinc.gamefeat.android.sdk.controller.GameFeatAppController");
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
plugin.Call("show", activity);

オファーウォールの起動ボタンを管理画面から追加

オファーウォールの起動ボタンを管理画面から追加していただき、アプリに表示する事が可能です。

さらにどのボタンから広告クリック、コンバージョンに至ったかまで管理画面から確認する事ができます。

オファーウォール起動ボタン入稿画面

https://www.gamefeat.net/partner_site/index/

上記ページからアプリを選択して、「ウォール起動ボタン」のタブから入稿可能です。

※GAME FEAT SDK3.2以上でご利用することができます

void Start () {

	unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
	activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
	plugin = new AndroidJavaClass("jp.basicinc.gamefeat.android.unity.GameFeatUnityPlugin");

	plugin.CallStatic("activateGF", activity, true, true, true);

	// 第1引数 : 実行メソッド
	// 第2引数 : アクティビティ
	// 第3引数 : 設置箇所コード
	// 第4, 5引数 : 縦横サイズ
	// 第6, 7引数 : xy軸
	plugin.CallStatic("drawGFButton", activity, "button1", 40, 40, 10, 100);

	// 設置箇所コードを省略した場合は表示する設定になっているボタンからランダムに選択されたボタンが表示されます
	plugin.CallStatic("drawGFButton", activity, 10, 200);

}

アイコン型広告 起動方法

void Start () {
	 
	// アイコン型広告の実装サンプル
	AndroidJavaClass plugin = new AndroidJavaClass("jp.basicinc.gamefeat.android.unity.GameFeatUnityPlugin");
	AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
	AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
	
	// アイコン型広告 : 初期化
	plugin.CallStatic("initIconAd", activity);
	
	// アイコン型広告 : 配置(width / height / x / y)
	plugin.CallStatic("setIconAd", activity, 70, 70, 0, 300);
	plugin.CallStatic("setIconAd", activity, 70, 70, 90, 300);
	plugin.CallStatic("setIconAd", activity, 70, 70, 180, 300);
	plugin.CallStatic("setIconAd", activity, 70, 70, 270, 300);
	
	// アイコン型広告 : 表示開始
	plugin.CallStatic("loadIconAd", activity);
	
	OnGUI();
}

void OnApplicationPause (bool pauseStatus){
        if (pauseStatus) {
		// アプリがバックグラウンド移行したときアイコンのリフレッシュを停止する
		plugin.CallStatic("stopIconAd", activity); 
	}else{
	       	unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
		activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");

		plugin = new AndroidJavaClass("jp.basicinc.gamefeat.android.unity.GameFeatUnityPlugin");
		plugin.CallStatic("activateGF", activity, false, true, false);

		// アプリが復帰したときアイコンのリフレッシュを再開する
		plugin.CallStatic("startIconAd", activity); 
	}
}

void invisibleIconAd(){
	// アイコン型広告 : 非表示
	plugin.CallStatic("invisibleIconAd", activity);
}
	
void visibleIconAd(){
	// アイコン型広告 : 表示
	plugin.CallStatic("visibleIconAd", activity);
}

全画面型広告 起動方法

loadPopupAdの第2引数にはゲームオブジェクト名を指定してください。

// 全画面型広告の実装サンプル
AndroidJavaClass plugin = new AndroidJavaClass("jp.basicinc.gamefeat.android.unity.GameFeatUnityPlugin");
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");

// 全画面型広告 : N回に1回表示するかの設定
plugin.CallStatic("setPopupProbability", 1);
plugin.CallStatic("loadPopupAd", activity,  "Main Camera");

アプリ終了時全画面型広告 起動方法

loadExitPopupAdの第2引数にはゲームオブジェクト名を指定してください。

// 全画面型広告の実装サンプル
AndroidJavaClass plugin = new AndroidJavaClass("jp.basicinc.gamefeat.android.unity.GameFeatUnityPlugin");
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
plugin.CallStatic("loadExitPopupAd", activity, "Main Camera");

アプリ終了時全画面型広告 「アプリ終了」ボタン実装

GameFeatUnityPluginに「アプリ終了」ボタン押下時のコールバック関数が定義されているので、終了時用の全画面広告を表示するスクリプト内に以下のメソッドを定義してください。

// 終了時用全画面広告の実装サンプル
void didFinishGameFeatPopup(string msg) {
	// GameFeat全画面が閉じた時の処理
	Application.Quit();
}

全画面型広告コールバック処理一覧

全画面広告が呼ばれた,閉じられた際のコールバックをご用意しております。全画面広告を表示するスクリプト内に以下のメソッドを定義してください。

// GameFeat全画面が開いた際のコールバック先
void didShowGameFeatPopup(string msg) {

}
	
// GameFeat全画面が閉じた際のコールバック先
void didCloseGameFeatPopup(string msg) {
	
}
	
// GameFeat全画面(アプリ終了)が開いた際のコールバック先
void didFinishGameFeatPopup(string msg) {
Application.Quit();
}
	
// GameFeat全画面が開けなかった際の処理コールバック先
void failGameFeatPopupData(string msg) {

}
個人用ツール
名前空間

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