cordova-plugin-admob-free:未捕获(承诺)插页式广告尚未准备好

时间:2018-08-19 11:53:51

标签: cordova cordova-admob

我正在尝试使用无cordova-plugin-admob-free在我的HTML5游戏中实现插页广告。

我按如下方式使用它:

var ADMOB_AndroidID = (my Admob ID here);
var ADMOB_iOSID     = "";
var ADMOB_WindowsID = "";

document.addEventListener( 'deviceready', initAdmob );

function initAdmob() {
  var admobid = {};
  if ( /(android)/i.test(navigator.userAgent) ) {  // for android & amazon-fireos
    admobid = {
      banner: ADMOB_AndroidID,
      interstitial: ADMOB_AndroidID
    };
  } else if ( /(ipod|iphone|ipad)/i.test(navigator.userAgent) ) {  // for ios
    admobid = {
      banner: ADMOB_iOSID,
      interstitial: ADMOB_iOSID
    };
  } else {  // for windows phone
    admobid = {
      banner: ADMOB_WindowsID,
      interstitial: ADMOB_WindowsID
    };
  }

  admob.interstitial.config({
    id: admobid.interstitial,
    isTesting: true,
    autoShow: false
  })
  admob.interstitial.prepare();

  document.addEventListener('admob.interstitial.events.CLOSE', function(event) {
    admob.interstitial.prepare();
  } );

}

然后,游戏结束后,我打电话

admob.interstitial.show();

当我在Android模拟器(或真实设备)上运行它时,游戏结束且Chrome调试器显示以下内容时,没有任何反应:

Uncaught (in promise) Interstital not ready yet

那我在做什么错了?

编辑:添加了Chrome控制台的屏幕截图

我的控制台显示了此信息(我在插页式广告的LOAD_FAIL上添加了事件监听器之后):

Chrome Console

2 个答案:

答案 0 :(得分:0)

它无需我进行任何更改即可开始工作。显然,广告单元在创建后需要一段时间(很长时间)才能生效。因此上面的代码有效。

还有一个提示:我首先犯了一个错误,即使用我的 App ID 而不是广告单元ID 。如果您的ID使用代字号(〜)而不是斜杠(/),则您正在使用您的App ID。登录到您的AdMob帐户,创建一个广告单元,然后使用其ID。

答案 1 :(得分:0)

也有这个。

意识到我从未打电话给

admob.interstitial.prepare();

添加后,一切正常。