cordova-plugin-admobpro不在设备上显示插页式广告或横幅广告

时间:2015-10-28 00:03:04

标签: cordova ionic banner interstitial ngcordova

我试图让广告在Ionic应用中使用此插件,并通过插页式广告和横幅获得非常不一致的结果。

当前代码在$ ionicPlatform.ready()中设置插页式广告和横幅广告:

angular.module('myApp',
  [
    'ionic',
    'ngCordova',
    'ngIOS9UIWebViewPatch'
  ])
  .constant('myConf', {
    ads: {
      appBanner: '/1234567/*******************',
      appInterstitial: '/1234567/*******************',
      roaInterstitial: '/1234567/*******************'
    }
  })
  .run(function ($ionicPlatform, $rootScope, $ionicLoading, myConf, $cordovaKeyboard, $cordovaGoogleAds) {
    $ionicPlatform.ready(function () {
      if ($cordovaKeyboard) {
        $cordovaKeyboard.hideAccessoryBar(true);
      }
      if (window.StatusBar) {
        StatusBar.styleDefault();
      }
      if (AdMob) {
        AdMob.prepareInterstitial({
          interstitialAdId: myConf.ads.roaInterstitial,
          autoShow: false
        });
        AdMob.createBanner({
          adId: myConf.ads.appBanner,
          autoShow: false
        });
      }
    });
  )};

然后在main.js和控制器中:

if (AdMob) {
  AdMob.showInterstitial();
}

if (AdMob) {
  AdMob.showBanner(AdMob.AD_POSITION.BOTTOM_CENTER);
}

不可否认,代码包含在回调中并且有点复杂,但在测试中,我已将代码与此配对,将广告代码从if语句中取出或在if语句中执行console.log(代码肯定是进入if语句),并尝试了autoShow:true,结果相同。

我们正在测试ios& android模拟器和离子视图。广告代码是正确的,这些测试广告没有频率或其他限制。

我在ios模拟器上一直看到横幅,但在android或ios设备上没有(通过离子视图)。

插页式广告仅偶尔出现在ios模拟器上,而且从未出现在ios或Android设备上。

如果我跑:

$ ionic run ios -l -c

我看到来自cordova-plugin-extension的多个警告:

while processing /Library/WebServer/www/my_app/platforms/ios/myApp/Plugins/cordova-plugin-extension/libCordovaGenericAd.a(GenericAdPlugin.o):
warning: /Users/liming/Library/Developer/Xcode/DerivedData/ModuleCache/1UIOVPNM0I1EA/CoreGraphics-N94D31PLFESQ.pcm: No object file for requested architecture
while processing /Library/WebServer/www/my_app/platforms/ios/myApp/Plugins/cordova-plugin-extension/libCordovaGenericAd.a(GenericAdPlugin.o):
warning: Could not resolve external type c:objc(cs)NSObject

我不知道这是否相关,虽然我认为这可以在https://github.com/floatinghotpot/cordova-extension/issues/5中修复

2 个答案:

答案 0 :(得分:0)

我发现了一些问题:

  • 语法错误:prepareInterstitial()对象包含“interstitialAdId”而不是“adId”。不确定那里有多少,但导致“无法确定请求类型。您的广告单元ID是否正确?”错误。
  • 我需要持续离子平台rm / add ios - 代码更改不会自动放入平台目录。
  • 我需要在createBanner()和prepareInterstitial()对象中添加“isTesting:true” - DFP可能会在一段时间后阻止我的广告请求。

答案 1 :(得分:0)

已找到最终解决方案 - 离子视图阻止了广告!一旦我编译应用程序并将其分发到itunes connect,它们就可以了!

我必须克服一些障碍才能编译,我将分享这些障碍,以便任何有类似问题的人都可以找到答案:

  • 编译失败,找不到'Cordova / CDVViewController.h'文件
  • clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

    ld:无法生成bitcode包,因为'/Library/WebServer/www/myApp/platforms/ios/myApp/Plugins/cordova-plugin-extension/libCordovaGenericAd.a(GenericAdPlugin.o)'是在没有完整bitcode的情况下构建的。必须从Xcode Archive或Install build for architecture armv7

    生成bitcode的所有目标文件和库
    • 我通过在构建设置中关闭“启用Bitcode”来修复此问题。