Плагин AdMob - Как реализовать промежуточную страницу, а затем HTML-страницу
Я разрабатываю одно приложение Cordova с плагином AdMobpro с плавающей точкой. Приложение имеет следующие коды:
index.html
<a href=“mainpage.html" id="btn_prepare" class="pure-button pure-button-primary">GO TO APP</a>
в admobshow.js у меня есть эти фрагменты:
$('#btn_prepare').click(function(){
AdMob.prepareInterstitial({
adId:admobid.interstitial,
});
AdMob.showInterstitial();
window.open($(this).attr('href'));
});
(Код взят здесь: https://github.com/floatinghotpot/cordova-admob-pro/blob/master/test/index.html
Я хочу, чтобы это произошло: 1.) Пользователь нажимает кнопку Перейти к приложению, и плагин показывает Interstitial. 2.) Когда пользователь закрывает рекламную вставку, должен открыться файл mainpage.html.
Но сейчас происходит следующее: 1.) Сначала открывается mainpage.html, а затем показывается вставка через несколько секунд.
Я хочу, чтобы mainpage.html показывался только после показа вставки. (Или когда выполняется вставка.) Я не хочу, чтобы mainpage.html показывался автоматически.
Может кто-нибудь помочь мне как настроить вышеуказанный код?
2 ответа
Посмотрите ответ в этом вопросе для некоторого кода и идей о том, как реализовать: /questions/24610314/pokazyivat-reklamnoe-obyavlenie-cherez-admob-v-ionic-kazhdyie-2-minutyi/24610335#24610335
РЕДАКТИРОВАТЬ
Предполагается, что плагин Cordova-AdMob, в принципе идея может быть такой:
<a onclick="showInterstitial()" id="btn_prepare" class="pure-button pure-button-primary">GO TO APP</a>
И в вашем коде JS:
var isAppForeground = true;
var isShowMainOnCloseAd = false;
var isMainAlreadyShown = false;
var isInterstitialAvailable = false;
function showInterstitial() {
if (isInterstitialAvailable) {
admob.showInterstitialAd();
} else {
showMain(function () {
isMainAlreadyShown = 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('cordova-admob plugin not ready');
}
}
function onAdLoaded(e) {
if (isAppForeground) {
if (e.adType === admob.AD_TYPE.INTERSTITIAL) {
isInterstitialAvailable = true;
}
}
}
function onAdOpened(e) {
if (e.adType === admob.AD_TYPE.INTERSTITIAL && !isMainAlreadyShown) {
isShowMainOnCloseAd = true;
}
}
function onAdClosed(e) {
if (e.adType === admob.AD_TYPE.INTERSTITIAL && isShowMainOnCloseAd) {
isShowMainOnCloseAd = false;
if (!isMainAlreadyShown) {
showMain(function () {
isMainAlreadyShown = true;
});
}
}
}
function onPause() {
if (isAppForeground) {
isAppForeground = false;
}
}
function onResume() {
if (!isAppForeground) {
setTimeout(admob.requestInterstitialAd, 1);
isAppForeground = true;
}
}
function registerAdEvents() {
document.addEventListener(admob.events.onAdLoaded, onAdLoaded);
document.addEventListener(admob.events.onAdOpened, onAdOpened);
document.addEventListener(admob.events.onAdClosed, onAdClosed);
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
}
function onDeviceReady() {
document.removeEventListener('deviceready', onDeviceReady, false);
initAds();
// request an interstitial
admob.requestInterstitialAd();
}
document.addEventListener("deviceready", onDeviceReady, false);
Вам нужен код, который готовит промежуточный AdMob.prepareInterstitial
быть вызванным за некоторое время до того, как пользователь нажмет эту кнопку. Плагину нужно некоторое время на его подготовку, поэтому он не может сразу показать его, когда вы звоните AdMob.showInterstitial()
,
Просто подготовьте вставку, когда пользователь заходит на страницу, например.