2

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

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

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 );

  });
})

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

4

1 回答 1

2

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

第一:替换bannerpublisherIdadmobid.banneradmobid此外,出于测试目的,您应该设置isTestingtrue以防止您的帐户被 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) {
  ...
}]);
于 2014-11-04T21:45:00.187 回答