実現したいこと
monacaでadmob-plus-cordovaプラグインを使用したい
前提
monacaIDEで作成したAndroid向けアプリにプラグインを導入したいです、
言語はjavascript、
コンポーネントはjQuery3.7.0,Cordova(PhoneGap)Loader1.0.5,MonacaCoreUtility2.2.1
ターゲットSDKはver31
プラットフォームはAndroid10.1.2
パッケージタイプはAppBundle
となります。
こちらのサイトを参考にプラグインを導入しました。
https://senmyou.xyz/cordova-admob-plus%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%A7%E5%BA%83%E5%91%8A%E3%82%92%E8%A1%A8%E7%A4%BA/
プラグインの設定から以下の記述を追加しました。
APP_ID_ANDROID=ca-app-pub-****** AdMobで取得したIDです。
PLAY_SERVICES_VERSION=21.0.0
カスタムデバッグビルドを実施し、実機でアプリデバッグをおこないました。
発生している問題・エラーメッセージ
テスト広告が表示されません。
確認したところ、await admob.start()が動作していないようです。
該当のソースコード
showAdMob()をボタン要素からOnClickで呼び出しています。
<ons-button onclick="showAdMob()">テスト</ons-button>
JavaScriptの記述
ons.ready(async function() { init_ad(); }) var gAdMob = 0; // 広告の表示 async function showAdMob() { if (gAdMob) { await gAdMob.show() } } // AdMobの初期化処理(一回だけ実行) async function init_ad() { if (window.admob) { // AdMob SDKの初期化 console.log("start"); await admob.start(); console.log("adstarted"); // インタースティシャル広告の生成 gAdMob = new admob.InterstitialAd({ adUnitId: 'ca-app-pub-3940256099942544/1033173712' // test id }); // 広告の読み込み await gAdMob.load(); // 広告を閉じたときに発生するイベントのリスナーを登録 document.addEventListener('admob.ad.dismiss', async () => { console().log("admob is dismiss. reload"); // show()関数で再表示させるための読み込み await gAdMob.load(); }); } else { console.log("admob is undefined"); } }
試したこと
以下の公式ドキュメントのコードへ差し替えても同じようにadmob.start()が動作しませんでした。
https://admob-plus.github.io/docs/1.x/cordova
setTimeOutでawaitの挙動を確認しましたがそちらは問題ありませんでした。
解決方法がお分かりの方、ご教示お願い致します。
また、monacaで該当のプラグインの導入に成功された方、手順をご指導いただければと思います。
よろしくお願いします。
追記 試したこと
他の箇所が原因である可能性を潰すため、新たに最小限のテンプレートからプロジェクトを作成し同様にビルドを行いました。
結果、やはりテスト広告は表示されませんでした。コードの全文を下記します。
html/javascript
1<!DOCTYPE HTML> 2<html> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover"> 6 <meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"> 7 <script src="components/loader.js"></script> 8 <script src="lib/onsenui/js/onsenui.min.js"></script> 9 10 <link rel="stylesheet" href="components/loader.css"> 11 <link rel="stylesheet" href="lib/onsenui/css/onsenui.css"> 12 <link rel="stylesheet" href="lib/onsenui/css/onsen-css-components.css"> 13 <link rel="stylesheet" href="css/style.css"> 14 15 <script> 16 ons.ready(function() { 17 console.log("Onsen UI is ready!"); 18 init_ad(); 19 }); 20 21var gAdMob = 0; 22 23// 広告の表示 24async function showAdMob() { 25 if (gAdMob) { 26 await gAdMob.show() 27 } 28} 29 30// AdMobの初期化処理(一回だけ実行) 31async function init_ad() { 32 if (window.admob) { 33 // AdMob SDKの初期化 34 console.log("start"); 35 await admob.start(); 36 console.log("adstart"); 37 // インタースティシャル広告の生成 38 gAdMob = new admob.InterstitialAd({ 39 adUnitId: 'ca-app-pub-3940256099942544/1033173712' // test id 40 }); 41 42 // 広告の読み込み 43 await gAdMob.load(); 44 45 // 広告を閉じたときに発生するイベントのリスナーを登録 46 document.addEventListener('admob.ad.dismiss', async () => { 47 console().log("admob is dismiss. reload"); 48 // show()関数で再表示させるための読み込み 49 await gAdMob.load(); 50 }); 51 } else { 52 console.log("admob is undefined"); 53 } 54} 55 </script> 56</head> 57<body> 58 <br /> 59 <button onclick="showAdMob()">テスト</button> 60 This is a template for Onsen UI app. 61</body> 62</html> 63
また、ons.readyの発火タイミングについても調べましたが、公式ドキュメントで利用しているdevisereadyよりも後であるため、問題ないと推察します。
https://qiita.com/keeey/items/ad06afeae0c40b52d9bd
https://ja.onsen.io/v2/guide/fundamentals.html
情報お待ちしております。
回答2件
あなたの回答
tips
プレビュー