Cordova admobpro广告未在Android设备上展示

时间:2019-04-08 11:55:49

标签: javascript android cordova admob

我正试图将AdMob广告放入我的离子安卓应用中,并测试其功能,我制作了一个名为AdMobTest的离子应用。我使用的插件是cordova-admob-pro插件。这是我的AdMob代码:

var admobid = {};
if (/(android)/i.test(navigator.userAgent)) { //Android
  admobid = {
    banner : 'ca-app-pub-2586564966169402/9782816366',
    interstitial : 'ca-app-pub-2586564966169402/8345912938',
    gotHereMsg1 : 'banner and interstitial have the android IDs'
  };
} else if (/(ipod|iphone|ipad)/i.test(navigator.userAgent)) { //iOS
  admobid = {
    banner : 'Stand in iOS banner ID',
    interstitial: 'stand in iOS interstitial ID',
    gotHereMsg1 : 'banner and interstitial have the iOS IDs'
  };
} else { //Neither
  admobid = {
    gotHereMsg1 : 'banner and interstitial have no IDs'
  }
}

if (window.AdMob) {
  var admob = window.AdMob;
  admob.createBanner ({
    adId : admobid.banner,
    position : admob.AD_POSITION.BOTTOM_CENTER,
    isTesting : false, //False for live ; True for production
    autoShow : true
  });
  admob.prepareInterstitial ({
    adId : admobid.interstitial,
    autoShow : false
  });
  gotHereMsg2 = "window.AdMob is true";
} else {
  gotHereMsg2 = "window.AdMob is not true";
}

//Got an ID and the actual ID's
document.getElementById("getIdCheck").innerHTML = admobid.gotHereMsg1;
document.getElementById("bannerId").innerHTML = admobid.banner;
document.getElementById("interstitialId").innerHTML = admobid.interstitial;
//window.AdMob is true and banner is created + interstitial is prepared
document.getElementById("isWindowAdmob").innerHTML = gotHereMsg2;
//Show interstitial function is executed or has not been executed
document.getElementById("startInterstitial").onclick = function () {
  if (window.AdMob) {
    var admob = window.AdMob;
    admob.showInterstitial();
    gotHereMsg3 = "Show Interstitial function has been executed";
  } else {
    gotHereMsg3 = "Show Interstitial function has not been executed";
  }
  document.getElementById("checkInterstitial").innerHTML = gotHereMsg3;
}

为了显示在使用“ gotHereMsg”变量进行的测试中保持的工作原理。所有变量都到达我希望它们去的地方。

所以gotHereMsg1包含有关android ID的消息,并且ID也正确。

gotHereMsg2返回“ window.AdMob为true”,这意味着正在执行createBanner和prepareInterstitial函数。

最后,当我单击按钮时,getHereMsg3返回“显示插页式功能已执行”。

即使所有功能都已执行并且显然可以识别window.AdMob也没有显示横幅。希望这提供了足够的信息来解决此问题。

可能值得注意的是,我正在使用ionicv1,并且代码已写入ionic的app.js文件中的$ ionicPlatform.ready函数下。

1 个答案:

答案 0 :(得分:1)

我在admob和ionic v1方面拥有丰富的经验。

首先,请不要使用cordova-admob-pro,他们(他吗?)确实会从您那里窃取收入! tuns of proof here

使用cordova-plugin-admob-free

if (window.admob !== undefined) {
            admob.banner.config({
                id: 'ca-app-pub-...',
                autoShow: true
            });

            // Create banner
            admob.banner.prepare();

            // Show the banner
            admob.banner.show();

            admob.interstitial.config({
                id: 'ca-app-pub-....',
                autoShow: false
            });
            admob.interstitial.prepare();
        }

第二,我真的没有发现任何错误... 我建议您在使用远程检查时在浏览器控制台窗口中运行admob命令。 并同时观看adb logcat,看看是否收到“ NO FILL”或任何其他admob错误