我在Ionic中使用AdMob插件,使用此代码我展示了一个Interstital广告:
function initAd(){
// it will display smart banner at top center, using the default options
if(AdMob) AdMob.createBanner( {
adId: admobid.banner,
bannerId: admobid.banner,
position: AdMob.AD_POSITION.BOTTOM_CENTER,
autoShow: true,
isTesting: false,
success: function() {
console.log('banner created');
},
error: function() {
console.log('failed to create banner');
}
});
window.AdMob.prepareInterstitial({
adId:admobid.interstitial, autoShow:false
});
window.AdMob.showInterstitial();
}
有没有办法每2分钟显示一次间期广告?有人告诉我要添加:setInterval(showInterstitial,1*60*1000)
,但我不知道在哪里添加?
答案 0 :(得分:3)
如果您想每2分钟显示一次,请使用:
setInterval(window.AdMob.showInterstitial, 2*60*1000);
,您应该在initAdd
函数的结束括号之前添加它:
function initAd(){
// it will display smart banner at top center, using the default options
if(AdMob) AdMob.createBanner( {
adId: admobid.banner,
bannerId: admobid.banner,
position:AdMob.AD_POSITION.BOTTOM_CENTER,
autoShow: true,
isTesting: false,
success: function(){
console.log('banner created');
},
error: function(){
console.log('failed to create banner');
}
} );
window.AdMob.prepareInterstitial(
{adId:admobid.interstitial, autoShow:false} );
window.AdMob.showInterstitial();
//!!!add the code here!!! - so, just paste what I wrote above:
setInterval(window.AdMob.showInterstitial, 2*60*1000);
}
您可以在此jsFiddle example上看到简单的setInterval用法:
function a(){
alert("hi every 2 seconds");
};
setInterval(a, 2*1000);
你之所以不应该这样称呼它(注意a
之后的括号):setInterval(a(), 2*1000);
那么你的函数只会被调用一次(你会看到只有一个警告弹出) )。 jsFiddle上的示例:
function a(){
alert("hi every 2 seconds");
};
setInterval(a(), 2*1000);
希望这有助于澄清一些事情。
答案 1 :(得分:2)
通过使用https://github.com/appfeel/admob-google-cordova处的插件,您可以收听onAdLoaded和onAdClosed事件并将autoShowInterstitial设为false:
var isAppForeground = true;
function initAds() {
if (admob) {
var adPublisherIds = {
ios : {
banner : "ca-app-pub-XXXXXXXXXXXXXXXX/BBBBBBBBBB",
interstitial : "ca-app-pub-XXXXXXXXXXXXXXXX/IIIIIIIIII"
},
android : {
banner : "ca-app-pub-XXXXXXXXXXXXXXXX/BBBBBBBBBB",
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,
autoShowInterstitial: false
});
registerAdEvents();
} else {
alert('AdMobAds plugin not ready');
}
}
function onAdLoaded(e) {
if (isAppForeground) {
if (e.adType === admob.AD_TYPE.INTERSTITIAL) {
admob.showInterstitialAd();
}
}
}
function onAdClosed(e) {
if (isAppForeground) {
if (e.adType === admob.AD_TYPE.INTERSTITIAL) {
setTimeout(admob.requestInterstitialAd, 1000 * 60 * 2);
}
}
}
function onPause() {
if (isAppForeground) {
admob.destroyBannerView();
isAppForeground = false;
}
}
function onResume() {
if (!isAppForeground) {
setTimeout(admob.createBannerView, 1);
setTimeout(admob.requestInterstitialAd, 1);
isAppForeground = true;
}
}
// optional, in case respond to events
function registerAdEvents() {
document.addEventListener(admob.events.onAdLoaded, onAdLoaded);
document.addEventListener(admob.events.onAdClosed, onAdClosed);
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
}
function onDeviceReady() {
document.removeEventListener('deviceready', onDeviceReady, false);
initAds();
// display a banner at startup
admob.createBannerView();
// request an interstitial
admob.requestInterstitialAd();
}
document.addEventListener("deviceready", onDeviceReady, false);
答案 2 :(得分:2)
如果您使用的是Ionic ngCordova,我是cordova admob插件的作者。这是我对你的目的的建议。
pygame.video
BTW,根据时间间隔显示插页式广告不是一个好主意,因为它可能会带来糟糕的用户体验并违反Google规则。
最好在后台使用prepareInterstitial(),然后在某些页面或状态发生变化时显示showInterstitial(),例如,游戏结束时用户点击“确定”按钮。
答案 3 :(得分:0)
现在这在admob中是非法的,你的id可能会被禁用,以及显示加载,后退按钮,简单应用程序的许多插页式等等。底线是,如果你想赚钱总而言之,你必须展示插页式广告,因为admob支付点击而不是视图,也没有人点击横幅广告。
因此,最佳做法是在点击X次后设置广告(设置"点击计数器")并将自己的ID设置为自我。或者您的帐户将被禁止,就像我做的那样