Closed2
【Flutter】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')),
));
}
}
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の取得方法がわからん
とりまテストデバイス登録の公式ドキュメントを読む。
だが@[ 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の設定が悪い…?
お支払い情報
これでした…お支払い情報設定してなかった…
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にクローズされました