Closed2

【Flutter】Google Mobile Ads導入時に困ったこと

NoiNoi

導入方法はこちらを参考
https://pub.dev/packages/google_mobile_ads

公式ドキュメントが一番だね。

現状

ShowAds Page
class ShowAdsPage extends StatelessWidget {
  final InterstitialAd myInterstitialAd = InterstitialAd(
      adUnitId: "<my adUnit ID>",
      listener: AdListener(),
      request: AdRequest(testDevices: ["kGADSimulatorID"]));

  Future showAds() async {
    await myInterstitialAd.load();
    myInterstitialAd.show();
  }

  
  Widget build(BuildContext context) {
    return Scaffold(
        body: Center(
      child: TextButton(onPressed: () => showAds(), child: Text('Display Ads')),
    ));
  }
}
NoiNoi

InterstitialAd failed to show because the ad was not ready.

<Google> To get test ads on this device, set: GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers = @[ kGADSimulatorID ];
InterstitialAd failed to show because the ad was not ready.

テストデバイス登録してないのがよろしくないのかと思い、kGADSimulatorIDについて調べてみる。

kGADSimulatorIDの取得方法がわからん

とりまテストデバイス登録の公式ドキュメントを読む。
https://developers.google.com/admob/ios/test-ads#enable_test_devices

だが@[ kGADSimulatorID ];なんて書き方はDartにはないしどこにどう書いたらいいか分からん。

AdRequestの中にtestDeviceパラメータを見つける。

ShowAdsPage
final InterstitialAd myInterstitialAd = InterstitialAd(
      adUnitId: "<my adUnit ID>",
      listener: AdListener(),
      request: AdRequest(testDevices: [ "kGADSimulatorID" ]));

だがうまく行かない。

testDevicesに渡すkGADSimulatorIDは文字列の"kGADSimulatorID"で勝手に判断してくれるわけではなく取得する方法があるのではと勘づく。

kGADSimulatorID取得を目指す

ドキュメント無い、つら。

実機でテストするしか無いんだろうか…

Listnerに処理を追加して状況をWatchしてみる

ShowAdPage
AdListener(
        onAdLoaded: (ad) => print("Ad loaded: $ad"),
        onAdOpened: (ad) => print("Ad opened: $ad"),
        onAdFailedToLoad: (ad, error) => print("Fail to load Ad. $error"),
      )
flutter: Fail to load Ad. LoadAdError(code: 1, domain: com.google.admob, message: Publisher data not found. <https://support.google.com/admob/answer/9905175#9>)

兆しが見えてきた。続きは帰りにでも。

Load Error Code: 1

広告が無いよって言われてるらしい。
アプリID、広告ユニットIDを確認するも異常はなし。

AdMobの設定が悪い…?

お支払い情報

これでした…お支払い情報設定してなかった…
Admob Confirming customer information

flutter: Fail to load Ad. LoadAdError(code: 1, domain: com.google.admob, message: Account not approved yet. <https://support.google.com/admob/answer/9905175#1>)

エラーメッセじーが変わったので、アカウント確認が終われば広告掲載できるはず。

このスクラップは2021/04/23にクローズされました