我正试图将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函数下。
答案 0 :(得分:1)
我在admob和ionic v1方面拥有丰富的经验。
首先,请不要使用cordova-admob-pro,他们(他吗?)确实会从您那里窃取收入! tuns of proof here
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错误