flutter 앱에서 firebase_admob에서 google_mobile_ads로 전환했습니다.
Flutter의 기사를 정리하고 책으로 만들었습니다.
소개
개요
대상 독자
요약 기사
관련 기사
시작 (전제 조건)
목표(성취할 수 있는 것)
개발 환경
console.sh
flutter --version
Flutter 2.0.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision c5a4b4029c (6 days ago) • 2021-03-04 09:47:48 -0800
Engine • revision 40441def69
Tools • Dart 2.12.0
본편
패키지 가져오기
pubsub.yml
google_mobile_ads: "0.11.0+3"
최소 SDK 버전 변경
android/app/build.gradle
// 中略
defaultConfig {
//中略
minSdkVersion 19 //19以上に変更する
}
관리 클래스 만들기
AdBanner.dart
import 'package:flutter/material.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'dart:io';
// StatelessWidgetを継承して作成
class AdBanner extends StatelessWidget {
const AdBanner({
this.size, // サイズは利用時に指定
});
final AdSize size;
Widget build(BuildContext context) {
final banner = BannerAd(
// サイズ
size: size,
// 広告ID
adUnitId: BannerAd.testAdUnitId,
// イベントのコールバック
listener: AdListener(
onAdLoaded: (Ad ad) => print('Ad loaded.'),
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('Ad failed to load: $error');
},
onAdOpened: (Ad ad) => print('Ad opened.'),
onAdClosed: (Ad ad) => print('Ad closed.'),
onApplicationExit: (Ad ad) => print('Left application.'),
),
// リクエストはデフォルトを使う
request: AdRequest())
// 表示を行うloadをつける
..load();
// 戻り値はContainerで包んで返す
return Container(
width: banner.size.width.toDouble(),
height: banner.size.height.toDouble(),
child: AdWidget(ad: banner));
}
// 広告IDをプラットフォームに合わせて取得
static String get bannerAdUnitId {
if (Platform.isAndroid) {
return "XXX";
} else if (Platform.isIOS) {
return "XXX";
} else {
//どちらでもない場合は、テスト用を返す
return BannerAd.testAdUnitId;
}
}
}
광고를 게재하는 쪽에서 사용
main.dart
void main() {
//初期化
WidgetsFlutterBinding.ensureInitialized();
MobileAds.instance.initialize();
runApp(MyApp());
}
class _MyHomePageState extends State<MyHomePage> {
//中略
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
// カウンタの偶奇で表示を切り替えて、バナーを表示(今回はラージサイズ)
if (_counter % 2 != 0) AdBanner(size: AdSize.largeBanner),
Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
}
이미지
소감
보충
비고
기조 강연 동영상의 admob_adk 동영상 (56 분경 ~)을 참고로했습니다.
참고문헌
firebase_admob (비추천)
Reference
이 문제에 관하여(flutter 앱에서 firebase_admob에서 google_mobile_ads로 전환했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kazutxt/items/8ea0eab5dfac2c59366d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)