AdMob未在离子/角度应用中加载广告

Ron*_*Ron 5 android admob angularjs cordova ionic-framework

我在制作广告时遇到了一些问题.我无法说清楚为什么它不起作用.我安装了以下插件:

com.google.playservices 19.0.0"适用于Android的Google Play服务"com.rjfun.cordova.plugin.admob 2.1.7"AdMob"我使用过本教程:https://blog.nraboy.com/2014/ 06 /使用-的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');
                }
            );
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

这会在应用底部生成黑色横幅区域,但不会加载任何广告.这段代码目前正在使用,在admob网站上我可以看到几百个会话.但是,我的印象和请求rpm现在都是零几天.有人知道可能有什么问题吗?

www*_*.me 8

我也花了两天的时间来使它工作,在阅读了很多文档之后我终于开始工作了.下面的代码对我有用.我还写了详细的博客文章和工作代码下载以及工作apk.阅读此处或按照以下步骤(我假设您已经拥有发布者ID和所有其他内容)

1)安装admob插件

ionic plugin add cordova-admob
Run Code Online (Sandbox Code Playgroud)

2)包含angular-admob.js文件

 <script src="lib/angular-admob/angular-admob.js"></script>
Run Code Online (Sandbox Code Playgroud)

3)调用body onload函数到init admob

 <body ng-app="starter" onload="runads()">
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)


Red*_*pIT 0

我遇到过同样的问题。事实上,博客文章中的 AdMob 插件版本不再受支持,您必须使用新的 cordova-admob-pro,它也适用于所有 Android 版本和 iOS 版本。

这里有一篇关于如何使用新版本的博客文章:

http://redwanhilali.com/ionic-admob-integration/

我希望它有帮助。