2019年05月28日

AdMob広告の実装【RPGツクールMV+cordova】

cordovaでAdMobを実装するプラグインはいろいろあるみたいですが、
「cordova-plugin-admob-free」というやつを使いました。
なんとなく一番簡単そうだったので。

前提として、ここでは書きませんが
AdMobへ登録して広告コードを取得しておいてください。

 

参考サイト:

【Cordova】AdMob Free版のインストール・使い方

 

まず必要なプラグインをインストール。
コマンドプロンプトでcordovaのフォルダに移動して

cordova plugin add cordova-promise-polyfill
cordova plugin add cordova-admob-sdk
cordova plugin add cordova-plugin-admob-free

とプラグインを3つインストール。

次に、広告の表示処理をjavascriptで実装します。

自分は「ad.js」という名前でjavascriptファイルを作り、index.htmlから呼び出すようにしました。

// AdMob 広告ID設定
var admobid = {};
if (/(android)/i.test(navigator.userAgent)) {
	// Android
	admobid = {
		banner: '広告ID(android)'
	}
} else if (/(ipod|iphone|ipad)/i.test(navigator.userAgent)) {
	// ios
	admobid = {
		banner: '広告ID(iOS)'
	}
}

//初期処理
if(( /(ipad|iphone|ipod|android|windows phone)/i.test(navigator.userAgent) )) {
	document.addEventListener('deviceready', initAppCordova, false);
} else {
	initAppCordova();
}

// バナー広告表示処理
function initAppCordova() {
	try {
		admob.banner.config({
			id: admobid.banner,
			isTesting: true,  // テスト広告
			autoShow: true,
		})
		admob.banner.prepare();
	} catch(e){
	}
}

こんな感じです。

任意のタイミングでバナー広告を表示させたい場合は、initAppCordovaを任意のタイミングで呼び出せばいいと思います。

RPGツクールMVの場合、スクリプトで
initAppCordova();
とすれば呼び出されると思います。
(試してないので恐らくですが。)

 

そして、自分の場合もう一つ落とし穴がありました。

android版はこれですんなり実装できたのですが、iOS版でエラーが発生。

main.mの32行目、

int retVal = UIApplicationMain(argc, argv, nil, nil);

のところで signal SIGABRT エラーが発生。
このsignal SIGABRTというやつ、昔Objective-Cのcocos2dで開発してた時もさんざん苦しめられた記憶がある。

色々調べた結果、見つけたのがこちら

https://github.com/ratson/cordova-plugin-admob-free/issues/353

 

解決策:

iOS用にビルドしたプロジェクトファイルをXcodeで開き、
Resource/XXXX(プロジェクト名)-plist を開く。

Information Priority Listの右の+で行を追加し、

Key:GADIsAdManagerApp
Type:Boolean
Value:YES

を入力。

これで貼れてAdMob広告が表示されました。

 

疲れた…

 

 

コメントを残す