不显示插页式广告

Posted

技术标签:

【中文标题】不显示插页式广告【英文标题】:Interstitial Ad doesn't appear 【发布时间】:2016-12-01 17:09:08 【问题描述】:

我不能用插页式添加做一个简单的 html 页面。我是编程新手,我不知道这段代码有什么问题。我正在用phonegap做一个应用程序。我还在我的 config.xml 中添加了 <gap:plugin name="com.admob.plugin" version="3.0.0" source="plugins.cordova.io" />。请帮忙。这就是我已经拥有的:

<!DOCTYPE html>
<html>
<head>
</head>
<body>


<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
function showInterstitial()
    admob.isInterstitialReady(function(isReady)
        if(isReady)
            admob.showInterstitial();
        else
            alert("need cached before show");
        
    );

function onInterstitialReceive (message) 
    alert("onMInterstitialReceive ,you can show it now");

function onReceiveFail (message) 
    var msg=admob.Error[message.data];
    if(msg==undefined)
       msg=message.data;
    
   alert("load fail: "+message.type+"  "+msg);

function onDeviceReady() 
    admob.initAdmob("ca-app-pub-5461976332457981/1789654352","ca-app-pub-5461976332457981/7220849555");
    document.addEventListener(admob.Event.onInterstitialReceive, onInterstitialReceive, false);
    document.addEventListener(admob.Event.onInterstitialFailedReceive,onReceiveFail, false);


document.addEventListener('deviceready',onDeviceReady, false);
</script>
</body>
</html>

【问题讨论】:

【参考方案1】:

使用新的插件规范(用连字符代替点):

<gap:plugin name="phonegap-admob" source="npm"/>

那么您的代码应该是这样的(您还可以在此处查看有关如何每 2 分钟自动显示插页式广告的示例:https://github.com/appfeel/admob-google-cordova/wiki/setOptions):

var isAppForeground = true;
var isInterstitialAvailable = false;

function onAdLoaded(e) 
  if (isAppForeground && e.adType === admob.AD_TYPE.INTERSTITIAL) 
    isInterstitialAvailable = true;
  


function onAdOpened(e) 
  if (isAppForeground && e.adType === admob.AD_TYPE.INTERSTITIAL) 
    isInterstitialAvailable = false;
    admob.requestInterstitialAd(); // Request next interstitial
  


function onPause() 
  if (isAppForeground) 
    admob.destroyBannerView();
    isAppForeground = false;
    isInterstitialAvailable = false;
  


function onResume() 
  if (!isAppForeground) 
    setTimeout(admob.createBannerView, 1);
    setTimeout(admob.requestInterstitialAd, 1);
    isAppForeground = true;
  


function registerAdEvents() 
  document.addEventListener(admob.events.onAdLoaded, onAdLoaded);
  document.addEventListener(admob.events.onAdOpened, onAdOpened);

  document.addEventListener("pause", onPause, false);
  document.addEventListener("resume", onResume, false);


function initAds() 
  var ids = 
    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)) ? ids.android : ids.ios;

  admob.setOptions(
    publisherId:          admobid.banner,
    interstitialAdId:     admobid.interstitial,
    autoShowInterstitial: false,
    isTesting:            true // False on production apps
  );

  registerAdEvents();


function onDeviceReady() 
  document.removeEventListener('deviceready', onDeviceReady, false);

  if (window.admob) 
    initAds();
    admob.createBannerView(); // display a banner at startup
    admob.requestInterstitialAd(); // cache an interstitial
   else 
    alert('Admob plugin not ready');
  


document.addEventListener("deviceready", onDeviceReady, false);

function showInterstitial() 
  if (isInterstitialAvailable) 
    admob.showInterstitialAd();
   else 
    console.log('Interstitial is not yet available');
  

【讨论】:

以上是关于不显示插页式广告的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Audience Network 插页式广告未显示

RecycleViewerAdapter 未完美显示 admob 插页式广告

单击四个按钮中的任何一个时显示插页式广告

Admob插页式广告显示带有新广告单元ID的黑色

如何在 facebook 受众网络插页式广告中设置点击计数器?

如何在应用退出后停止显示插页式广告?