【问题标题】:Google Admob not displaying ads using cordova tabset example?Google Admob 不使用cordova tabset 示例显示广告?
【发布时间】:2014-12-31 13:27:16
【问题描述】:

我正在使用基本的 admob 示例在我的 cordova 应用程序上显示横幅广告,但要么没有广告出现,要么它们可能出现但被另一个窗口遮挡。

这是我正在使用的示例代码:

angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    // for form inputs)
    if(window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    }
    if(window.StatusBar) {
      // org.apache.cordova.statusbar required
      StatusBar.styleDefault();
    }
   var ad_units = {
       ios : {
           banner: 'ca-app-pub-XXXXXXXXXXXXXXXX/2259066653',
       },
       android : {
           banner: 'ca-app-pub-XXXXXXXXXXXXXXXX/2259066653',
       }
    };
       // select the right Ad Id according to platform
    var admobid = ( /(android)/i.test(navigator.userAgent) ) ? ad_units.android : ad_units.ios;

    // Nothing happens.....                          
    if(AdMob) AdMob.createBanner( admobid.banner );

  });
})

有没有人有这方面的经验或者可以提出一些调试方法?

【问题讨论】:

    标签: cordova admob cordova-admob


    【解决方案1】:

    我正在使用 https://github.com/appfeel/admob-google-cordova 中的 AdMob 插件,我从您的代码中推测这是您正在使用的插件。如果是这种情况,您有两种选择:

    第一个:banner 替换为publisherId,将admobid.banner 替换为admobid。此外,出于测试目的,您应该将 isTesting 设置为 true,以防止您的帐户被 Google 屏蔽:

    var ad_units = {
       ios : {
           publisherId: 'ca-app-pub-XXXXXXXXXXXXXXXX/2259066653',
           isTesting: true
       },
       android : {
           publisherId: 'ca-app-pub-XXXXXXXXXXXXXXXX/2259066653',
           isTesting: true
       }
    };
    
    // select the right Ad Id according to platform
    var admobid = ( /(android)/i.test(navigator.userAgent) ) ? ad_units.android : ad_units.ios;                        
    if (AdMob) {
      AdMob.createBanner(admobid);
    }
    

    第二个:你应该将.banner声明为一个包含广告配置的对象:

    var ad_units = {
       ios : {
         banner: {
           publisherId: 'ca-app-pub-XXXXXXXXXXXXXXXX/2259066653',
           isTesting: true
         }
       },
       android : {
         banner: {
           publisherId: 'ca-app-pub-XXXXXXXXXXXXXXXX/2259066653',
           isTesting: true
         }
       }
    };
    
    // select the right Ad Id according to platform
    var admobid = ( /(android)/i.test(navigator.userAgent) ) ? ad_units.android : ad_units.ios;                       
    if (AdMob) {
      AdMob.createBanner(admobid.banner);
    }
    

    我还使用 Ionic 测试了它,使用 ionic.Platform.ready(function () { ... }); 而不是 $ionicPlatform。否则,为了防止代码被缩小时出错,Angular 建议以这种方式使用它(但如果你不缩小代码应该不会影响):

    app.run(['$ionicPlatform', function ($ionicPlatform) {
      ...
    }]);
    

    【讨论】:

    • 嗨,我遇到了和 OP 一样的问题。您能否提供一个关于 Ionic 应用程序中的运行/配置设置以及如何在状态/页面中创建/显示横幅的简单小提琴?
    • @IsmailKuruca 有一个great tutorial here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    相关资源
    最近更新 更多