個人製作で生計を立てたい人が目標を達成すべく制作物や開発日記や技術メモを記録しておくサイトです!
cordovaでAdMobを実装するプラグインはいろいろあるみたいですが、
「cordova-plugin-admob-free」というやつを使いました。
なんとなく一番簡単そうだったので。
前提として、ここでは書きませんが
AdMobへ登録して広告コードを取得しておいてください。
参考サイト:
まず必要なプラグインをインストール。
コマンドプロンプトで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広告が表示されました。
疲れた…