广告未在iOS设备上展示

时间:2018-09-02 12:18:27

标签: dart admob flutter

在扑朔迷离中,我们想使用AdMob。

我们设置如下。 因为可能存在关系,所以我们还编写了Firebase Analytics。

[pubspec.yaml]
dependencies:
  flutter:
    sdk: flutter

  firebase_admob: ^0.5.7
  firebase_analytics: ^1.0.3

[main.dart]
void main() {
  // [Analytics]
  FirebaseAnalytics().logAppOpen();

  // [Initialize:AdMob]
  FirebaseAdMob.instance.initialize(
    appId: Platform.isAndroid
        ? 'ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx'
        : 'ca-app-pub-yyyyyyyyyyyyyyyy~yyyyyyyyyy',
  );

  // [Create Banner Ad:AdMob]
  createBannerAd()
    ..load()
    ..show(
      anchorType: AnchorType.top,
    );

  runApp(MyApp());
}

final MobileAdTargetingInfo targetingInfo = new MobileAdTargetingInfo(
  testDevices: Const.testDevices,
  keywords: <String>[
    'foo',
    'bar',
  ],
  birthday: new DateTime.now(),
  childDirected: true,
  gender: MobileAdGender.female,
);

// [Create Banner Ad:AdMob]
BannerAd createBannerAd() {
  return new BannerAd(
    adUnitId: Platform.isAndroid
        ? 'ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX'
        : 'ca-app-pub-YYYYYYYYYYYYYYYY~YYYYYYYYYY',
    size: AdSize.banner,
    targetingInfo: targetingInfo,
    listener: (MobileAdEvent event) {
      print("BannerAd event $event");
    },
  );
}

我们下载了Firebase配置文件并将其放在下面。 在Xcode的“目标成员身份”中,我们确认已正确设置。

/android/app/google-services.json
/ios/Runner/GoogleService-Info.plist

它在Android设备上正常显示。 但是,它不会显示在iOS设备上。 输出以下日志。

2018-08-29 11:21:58.147849+0900 Runner[459:115739] FirebaseAdMobPlugin <warning> [FIRApp configure]
2018-08-29 11:21:58.157062+0900 Runner[459:115880] 5.5.0 - [Firebase/Core][I-COR000003] The default Firebase app has not yet been configured. Add `[FIRApp configure];` (`FirebaseApp.configure()` in Swift) to your application initialization. Read more:
[abridgement]
2018-08-29 11:21:59.755279+0900 Runner[459:115739] FirebaseAdMobPlugin <warning> adView:didFailToReceiveAdWithError: Request Error: No ad to show. (MobileAd <FLTBannerAd: 0x113ef81b0> PENDING mobileAdId:ZZZZZZZZZ for: <GADBannerView: 0x113efa7b0; frame = (0 0; 320 50); clipsToBounds = YES; layer = <CALayer: 0x113efac40>>)
2018-08-29 11:21:59.757247+0900 Runner[459:115885] flutter: BannerAd event MobileAdEvent.failedToLoad

我们应该如何在抖动中实现[FIRApp configure];? 没必要吗?在示例代码中找不到它。

我们的设置正确吗? 如果再等几天,mobileAdId会不会待处理?

$ flutter doctor -v
[✓] Flutter (Channel dev, v0.7.2, on Mac OS X 10.13.6 17G65, locale ja)
    • Flutter version 0.7.2 at /Applications/flutter
    • Framework revision f8a2fc7c28 (4 days ago), 2018-08-27 20:58:30 +0200
    • Engine revision af42b6dc95
    • Dart version 2.1.0-dev.1.0.flutter-ccb16f7282

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/xxxxx/src/android-sdks
    • Android NDK at /Users/xxxxx/src/android-sdks/ndk-bundle
    • Platform android-27, build-tools 27.0.3
    • ANDROID_HOME = /Users/xxxxx/src/android-sdks
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.4.1, Build version 9F2000
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 27.1.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] VS Code (version 1.25.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 2.17.1

[✓] Connected devices (1 available)
    • iPhone 6 Plus • XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX • ios • iOS 11.4.1

• No issues found!

与此问题同时,我们还与AdMob联系。 不会使用以下应用ID和广告单元ID显示广告。

ca-app-pub-3940256099942544~1458002511
ca-app-pub-3940256099942544/2934735716

2 个答案:

答案 0 :(得分:1)

我们尝试了几个终端。

  • [确定]华硕Z017DA(Android)
  • [确定] iPad mini
  • [确定] iPhone 4s
  • [NG] iPhone 6 Plus
  • [NG] iPhone SE

我们尝试了各种更改,但效果不佳。但是,今天“无广告显示”突然停止了。但是广告尚未展示。

我们认为广告可能会在屏幕外显示。当我们进行以下设置时,广告将显示在我们期望的位置。

_bannerAd
  ..load()
  ..show(
    anchorType: AnchorType.top,
    anchorOffset: 50.0,
  );

但是,在更改之前通常显示的终端中,显示的广告向下移动。我们无法采用这种方法,因为我们无法尝试所有终端。

接下来,我们将广告放置在屏幕下方。

_bannerAd
  ..load()
  ..show(
    anchorType: AnchorType.bottom,
  );

在这种情况下,我们能够确认广告在所有终端上都能正常显示。我们希望将广告放在顶部,但我们放弃了。

AnchorType.top在某些情况下可能不正确。

答案 1 :(得分:0)

->然后隐私

->然后做广告

->限制广告跟踪Admob现在会在重复打开和关闭时显示。

DeviceID处于相同状态可能很糟糕吗?