我在制作广告时遇到了一些问题。我无法说清楚为什么它不起作用。我安装了以下插件:
com.google.playservices 19.0.0“适用于Android的Google Play服务” com.rjfun.cordova.plugin.admob 2.1.7“AdMob” 我已经使用过本教程:https://blog.nraboy.com/2014/06/using-admob-ionicframework/1
这是我在apps.js中的代码:
.run(function ($ionicPlatform) {
$ionicPlatform.ready(function () {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if (window.StatusBar) {
StatusBar.styleDefault();
}
// select the right Ad Id according to platform
if (window.plugins && window.plugins.AdMob) {
var admob_key = "ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx";
var admob = window.plugins.AdMob;
admob.createBannerView(
{
'publisherId': admob_key,
'adSize': admob.AD_SIZE.BANNER,
'bannerAtTop': false
},
function () {
admob.requestAd(
{'isTesting': false},
function () {
admob.showAd(true);
},
function () {
console.log('failed to request ad');
}
);
},
function () {
console.log('failed to create banner view');
}
);
}
});
});
这会在应用底部生成黑色横幅区域,但不会加载任何广告。这段代码目前正在使用,在admob网站上我可以看到几百个会话。但是,我的印象和请求rpm现在都是零几天。任何人都知道可能出现什么问题?
答案 0 :(得分:8)
我也花了2天的时间才使它工作,在阅读了很多文档之后我终于开始工作了。下面的代码对我有用。我还写了详细的博客文章和工作代码下载以及工作apk。 Read Here或按照以下步骤(我假设您已经拥有发布商ID和所有其他内容)
1)安装admob插件
ionic plugin add cordova-admob
2)包含angular-admob.js
文件
<script src="lib/angular-admob/angular-admob.js"></script>
3)将body onload函数调用到init admob
<body ng-app="starter" onload="runads()">
4)将以下代码放在页面底部(别忘了用'ca-app-pub-XXXXXXXXXXXXXXXX / IIIIIIIIII'替换您的发布商ID)。它仅适用于移动设备,而不适用于PC浏览器。应用开始后,等待20-25秒加载广告。
<script type="text/javascript">
function runads(){
document.addEventListener("deviceready", onDeviceReady, false);
}
function initAds() {
if (admob) {
var adPublisherIds = {
ios : {
banner : "ca-app-pub-XXXXXXXXXXXXXXXX/IIIIIIIIII"
},
android : {
banner : "ca-app-pub-XXXXXXXXXXXXXXXX/IIIIIIIIII",
interstitial : "ca-app-pub-XXXXXXXXXXXXXXXX/IIIIIIIIII"
}
};
var admobid = (/(android)/i.test(navigator.userAgent)) ? adPublisherIds.android : adPublisherIds.ios;
admob.setOptions({
publisherId: admobid.banner,
interstitialAdId: admobid.interstitial,
tappxIdiOs: "/XXXXXXXXX/Pub-XXXX-iOS-IIII",
tappxIdAndroid: "/XXXXXXXXX/Pub-XXXX-Android-AAAA",
tappxShare: 0.5
});
registerAdEvents();
} else {
alert('AdMobAds plugin not ready');
}
}
function onAdLoaded(e) {
if (e.adType === admob.AD_TYPE.INTERSTITIAL) {
admob.showInterstitialAd();
showNextInterstitial = setTimeout(function() {
admob.requestInterstitialAd();
}, 2 * 60 * 1000); // 2 minutes
}
}
// optional, in case respond to events
function registerAdEvents() {
document.addEventListener(admob.events.onAdLoaded, onAdLoaded);
document.addEventListener(admob.events.onAdFailedToLoad, function (e) {});
document.addEventListener(admob.events.onAdOpened, function (e) {});
document.addEventListener(admob.events.onAdClosed, function (e) {});
document.addEventListener(admob.events.onAdLeftApplication, function (e) {});
document.addEventListener(admob.events.onInAppPurchaseRequested, function (e) {});
}
function onDeviceReady() {
document.removeEventListener('deviceready', onDeviceReady, false);
initAds();
// display a banner at startup
admob.createBannerView();
// request an interstitial
admob.requestInterstitialAd();
}
</script>
答案 1 :(得分:1)
Raymond是对的,我使用以下代码来安装插件
> Ionic plugin add cordova-plugin-admobpro
注意:请将您的cordova CLI升级到版本5
打开 app.js ,然后将以下代码粘贴到 .run 方法中并完成!
var admobid = {};
// select the right Ad Id according to platform
if( /(android)/i.test(navigator.userAgent) ) {
admobid = { // for Android
banner: 'ca-app-pub-3940256099942544/6300978111',
interstitial: 'ca-app-pub-XXXXXXXXXXXXXXXX/NNNNNNNNNN'
};
} else if(/(ipod|iphone|ipad)/i.test(navigator.userAgent)) {
admobid = { // for iOS
banner: 'ca-app-pub-3940256099942544/6300978111',
interstitial: 'ca-app-pub-XXXXXXXXXXXXXXXX/NNNNNNNNNN'
};
} else {
admobid = { // for Windows Phone
banner: 'ca-app-pub-3940256099942544/6300978111',
interstitial: 'ca-app-pub-XXXXXXXXXXXXXXXX/NNNNNNNNNN'
};
}
if(window.AdMob) AdMob.createBanner( {
adId:admobid.banner,
isTesting: true,
position:AdMob.AD_POSITION.BOTTOM_CENTER,
autoShow:true} );
if(window.AdMob) AdMob.prepareInterstitial( {
adId:admobid.interstitial,
autoShow:true} );
别忘了设置'isTesting:false&#39;同时将您的应用程序部署到 存储。
答案 2 :(得分:0)
我有同样的问题。事实上,博客文章中的AdMob插件版本不再受支持,你必须使用新的一个cordova-admob-pro,它适用于所有Android版本和iOS版本。
这是一篇关于如何使用新版本的博客文章:
http://redwanhilali.com/ionic-admob-integration/
我希望它有所帮助。
答案 3 :(得分:0)
我是您正在使用的插件的作者。请迁移到专业版:
cordova plugin add com.google.cordova.admob
或(如果您使用的是cordova CLI v5.x),
cordova plugin add cordova-plugin-admobpro
这是一个在Ionic框架APP中使用cordova-plugin-admobpro的工作演示: https://github.com/floatinghotpot/admob-demo-app-ionic
推荐:
https://github.com/floatinghotpot/admob-demo-app-ionic/blob/master/demo/js/admob.js
您甚至可以直接将此文件复制到项目中,然后在index.html中引用:
<script src="js/admob.js"></script>
像这个演示index.html: https://github.com/floatinghotpot/admob-demo-app-ionic/blob/master/demo/index.html#L21