「Flutter/admob/admob flutter」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→サンプル) |
(→準備) |
||
(同じ利用者による、間の6版が非表示) | |||
行7: | 行7: | ||
==準備== | ==準備== | ||
− | AndroidManifest.xml | + | android/app/AndroidManifest.xml |
<pre> | <pre> | ||
<meta-data | <meta-data | ||
android:name="com.google.android.gms.ads.APPLICATION_ID" | android:name="com.google.android.gms.ads.APPLICATION_ID" | ||
− | android:value="ca-app-pub- | + | android:value="ca-app-pub-xxxxxxx-appid"/> |
</pre> | </pre> | ||
行17: | 行17: | ||
<pre> | <pre> | ||
<key>GADApplicationIdentifier</key> | <key>GADApplicationIdentifier</key> | ||
− | <string>ca-app-pub- | + | <string>ca-app-pub-xxxxxxx-appid</string> |
<key>io.flutter.embedded_views_preview</key> | <key>io.flutter.embedded_views_preview</key> | ||
<true/> | <true/> | ||
行94: | 行94: | ||
参考:https://qiita.com/gkn/items/f5fde5be608384f1a272 | 参考:https://qiita.com/gkn/items/f5fde5be608384f1a272 | ||
+ | |||
+ | iosでは広告が表示できたが、androidではTestDevice登録がされてないためか表示できてない。 | ||
==Missing google_app_id. Firebase Analytics disabled.エラーが出る場合== | ==Missing google_app_id. Firebase Analytics disabled.エラーが出る場合== | ||
− | + | firebaseの設定を入れる必要があるかも?(おそらく不要、広告が出ないときに一応出してるだけっぽい) | |
+ | |||
+ | ==Ad failed to loadなメッセージが出る場合== | ||
+ | <pre> | ||
+ | I/Ads ( 6199): Ad failed to load : 3 | ||
+ | D/DynamitePackage( 6199): Instantiating com.google.android.gms.ads.ChimeraAdManagerCreatorImpl | ||
+ | I/Ads ( 6199): Use AdRequest.Builder.addTestDevice("E36Axxxxxxxxxxxxxxxxxx) to get test ads on this device. | ||
+ | </pre> | ||
+ | addTestDeviceを追加すればいけそうだが、そんなadmob_flutterライブラリにそんなメソッドがない? |
2019年12月16日 (月) 11:09時点における最新版
目次
インストール
pubspec.yaml
dependencies: admob_flutter: ^0.3.4
準備
android/app/AndroidManifest.xml
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-xxxxxxx-appid"/>
ios/Runner/Info.Plist
<key>GADApplicationIdentifier</key> <string>ca-app-pub-xxxxxxx-appid</string> <key>io.flutter.embedded_views_preview</key> <true/>
appIdを入れる。
サンプル
初回起動時に設定
import 'package:flutter/material.dart'; import 'package:admob_flutter/admob_flutter.dart'; import 'dart:io'; Admob.initialize(getAppId()); String getAppId() { if (Platform.isIOS) { return 'ca-app-pub-xxxxxxx-appid'; } else if (Platform.isAndroid) { return 'ca-app-pub-xxxxxxx-appid'; } return null; }
広告挿入箇所
@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: _buildListView(), ); } Widget _buildListView() { AdmobBanner admobBanner = AdmobBanner( adUnitId: getBannerAdUnitId(), adSize: AdmobBannerSize.LEADERBOARD, ); final int size = 10; List<Widget> _children = List<Widget>.generate( size, (int index) => _buildListItem(text: "iTem: $index"), ); _children.insert( 2, Padding( padding: const EdgeInsets.all(8.0), child: admobBanner, ), ); return ListView( children: _children, ); } Widget _buildListItem({String text}) { return Container( height: 150, child: Card( color: Colors.grey, child: Padding( padding: const EdgeInsets.all(8.0), child: Center(child: Text(text)), ), ), ); } String getBannerAdUnitId() { if (Platform.isIOS) { return 'ca-app-pub-xxxxxx-unitid'; } else if (Platform.isAndroid) { return 'ca-app-pub-xxxxxx-unitid'; } return null; }
参考:https://qiita.com/gkn/items/f5fde5be608384f1a272
iosでは広告が表示できたが、androidではTestDevice登録がされてないためか表示できてない。
Missing google_app_id. Firebase Analytics disabled.エラーが出る場合
firebaseの設定を入れる必要があるかも?(おそらく不要、広告が出ないときに一応出してるだけっぽい)
Ad failed to loadなメッセージが出る場合
I/Ads ( 6199): Ad failed to load : 3 D/DynamitePackage( 6199): Instantiating com.google.android.gms.ads.ChimeraAdManagerCreatorImpl I/Ads ( 6199): Use AdRequest.Builder.addTestDevice("E36Axxxxxxxxxxxxxxxxxx) to get test ads on this device.
addTestDeviceを追加すればいけそうだが、そんなadmob_flutterライブラリにそんなメソッドがない?