۱. مقدمه
آنچه خواهید ساخت
این codelab شما را در اضافه کردن یک بنر، تبلیغات بینابینی و یک تبلیغ جایزهدار به برنامهای به نام Awesome Drawing Quiz راهنمایی میکند، بازیای که به بازیکنان اجازه میدهد نام نقاشی را حدس بزنند.
|
|
اگر در حین کار با این آزمایشگاه کد با هرگونه مشکلی (اشکال در کد، خطاهای دستوری، کلمات نامفهوم) مواجه شدید، لطفاً با کلیک روی پیوند «گزارش اشتباه» در گوشه پایین و سمت چپ آزمایشگاه کد، مشکل را گزارش دهید.
آنچه یاد خواهید گرفت
- نحوه پیکربندی افزونه تبلیغات موبایلی گوگل ادموب
- نحوه پیادهسازی بنر، تبلیغات بینابینی و تبلیغات پاداشی در یک برنامه Flutter
آنچه نیاز دارید
- اندروید استودیو ۴.۱ یا بالاتر
- Xcode نسخه ۱۲ یا بالاتر (برای توسعه iOS)
سطح تجربه خود را با AdMob چگونه ارزیابی میکنید؟
سطح تجربه خود با فلاتر را چگونه ارزیابی میکنید؟
۲. محیط توسعه فلاتر خود را تنظیم کنید
برای تکمیل این آزمایشگاه به دو نرمافزار نیاز دارید - SDK فلاتر و یک ویرایشگر .
شما میتوانید codelab را با استفاده از هر یک از این دستگاهها اجرا کنید:
- یک دستگاه فیزیکی اندروید یا iOS که به رایانه شما متصل شده و روی حالت توسعهدهنده (Developer mode) تنظیم شده باشد.
- شبیهساز iOS (نیاز به نصب ابزارهای Xcode دارد).
- شبیهساز اندروید (نیاز به راهاندازی در اندروید استودیو دارد).
- یک مرورگر (برای اشکالزدایی، کروم مورد نیاز است).
- به عنوان یک برنامه دسکتاپ ویندوز ، لینوکس یا macOS . شما باید روی پلتفرمی که قصد استقرار آن را دارید، توسعه دهید. بنابراین، اگر میخواهید یک برنامه دسکتاپ ویندوز توسعه دهید، باید روی ویندوز توسعه دهید تا به زنجیره ساخت مناسب دسترسی داشته باشید. الزامات خاص سیستم عامل وجود دارد که به تفصیل در docs.flutter.dev/desktop پوشش داده شده است.
کد را دانلود کنید
بعد از دانلود فایل زیپ، محتویات آن را استخراج کنید. پوشهای با نام admob-ads-in-flutter-master خواهید داشت.
روش دیگر، میتوانید مخزن GitHub را از خط فرمان کلون کنید:
$ git clone https://github.com/googlecodelabs/admob-ads-in-flutter
مخزن شامل دو پوشه است:
شروع کننده — کد اولیهای که در این آزمایشگاه کد خواهید ساخت.
کامل — کد تکمیلشده برای این آزمایشگاه کد.
۳. برنامه AdMob و واحدهای تبلیغاتی را تنظیم کنید
از آنجا که Flutter یک SDK چند پلتفرمی است، باید یک برنامه و واحدهای تبلیغاتی را برای اندروید و iOS در AdMob اضافه کنید.
برای اندروید تنظیم کنید
برای راهاندازی برای اندروید، باید یک برنامه اندروید اضافه کنید و واحدهای تبلیغاتی ایجاد کنید.
اضافه کردن اپلیکیشن اندروید
- در کنسول AdMob ، از منوی برنامهها ، روی «افزودن برنامه» کلیک کنید.
- وقتی از شما پرسیده شد که آیا برنامه خود را در گوگل پلی یا اپ استور منتشر کردهاید؟، روی خیر کلیک کنید.
- در قسمت نام برنامه،
Awesome Drawing Quizوارد کنید و پلتفرم اندروید را انتخاب کنید.

- فعال کردن معیارهای کاربر برای تکمیل این کدلاگ ضروری نیست. با این حال، توصیه میکنیم این کار را انجام دهید زیرا به شما امکان میدهد رفتار کاربر را با جزئیات بیشتری درک کنید. برای تکمیل فرآیند، روی ADD کلیک کنید.

ایجاد واحدهای تبلیغاتی
برای شروع افزودن واحدهای تبلیغاتی به AdMob:
- از منوی برنامهها در کنسول AdMob ، گزینه Awesome Drawing Quiz را انتخاب کنید.
- روی منوی واحدهای تبلیغاتی کلیک کنید.
بنر
|
|
بینابینی
|
|
پاداش داده شده
|
|
معمولاً چند ساعت طول میکشد تا یک واحد تبلیغاتی جدید بتواند تبلیغات را ارائه دهد.
اگر میخواهید رفتار تبلیغ را فوراً آزمایش کنید، از شناسه برنامه آزمایشی و شناسههای واحد تبلیغ که در جداول شناسه/شناسه واحد تبلیغ برنامه اندروید و شناسه/شناسه واحد تبلیغ برنامه iOS فهرست شدهاند، استفاده کنید.
برای iOS تنظیم کنید
برای راهاندازی برای iOS، باید یک برنامه iOS اضافه کنید و واحدهای تبلیغاتی ایجاد کنید.
اضافه کردن اپلیکیشن iOS
- در کنسول AdMob ، از منوی برنامهها ، روی «افزودن برنامه» کلیک کنید.
- وقتی از شما پرسیده شد که آیا برنامه خود را در گوگل پلی یا اپ استور منتشر کردهاید؟، روی خیر کلیک کنید.
- در قسمت نام برنامه،
Awesome Drawing Quizوارد کنید و پلتفرم iOS را انتخاب کنید.

- فعال کردن معیارهای کاربر برای تکمیل این کدلاگ ضروری نیست. با این حال، توصیه میکنیم این کار را انجام دهید زیرا به شما امکان میدهد رفتار کاربر را با جزئیات بیشتری درک کنید. برای تکمیل فرآیند، روی ADD کلیک کنید.

ایجاد واحدهای تبلیغاتی
برای افزودن واحدهای تبلیغاتی:
- از منوی برنامهها در کنسول AdMob، برنامه Awesome Drawing Quiz را انتخاب کنید.
- روی منوی واحدهای تبلیغاتی کلیک کنید.
بنر
|
|
بینابینی
|
|
پاداش داده شده
|
|
معمولاً چند ساعت طول میکشد تا یک واحد تبلیغاتی جدید بتواند تبلیغات را ارائه دهد.
اگر میخواهید بلافاصله رفتار تبلیغ را آزمایش کنید، از شناسه برنامه آزمایشی و شناسههای واحد تبلیغ ذکر شده در جدول زیر استفاده کنید.
اختیاری: از برنامه آزمایشی AdMob و واحدهای تبلیغاتی استفاده کنید
اگر میخواهید به جای ایجاد یک برنامه و واحدهای تبلیغاتی جدید، از codelab پیروی کنید، میتوانید از شناسه برنامه آزمایشی AdMob و شناسههای واحد تبلیغاتی ذکر شده در جداول زیر استفاده کنید.
شناسه برنامه اندروید/شناسه واحد تبلیغات
مورد | شناسه برنامه/شناسه واحد تبلیغات |
شناسه برنامه AdMob | |
بنر | |
بینابینی | |
پاداش داده شده | |
شناسه برنامه iOS/شناسه واحد تبلیغات
مورد | شناسه برنامه/شناسه واحد تبلیغات |
شناسه برنامه AdMob | |
بنر | |
بینابینی | |
پاداش داده شده | |
برای اطلاعات بیشتر در مورد تبلیغات آزمایشی، به اسناد توسعهدهندگان تبلیغات آزمایشی اندروید و iOS مراجعه کنید.
۴. افزونه Google Mobile Ads Flutter را اضافه کنید
فلاتر از افزونهها برای دسترسی به طیف گستردهای از سرویسهای مختص پلتفرم استفاده میکند. افزونهها شما را قادر میسازند تا به سرویسها و APIها در هر پلتفرم دسترسی داشته باشید.
افزونه google_mobile_ads از بارگذاری و نمایش تبلیغات بنری، بینابینی، پاداشی و بومی با استفاده از API AdMob پشتیبانی میکند.
از آنجا که Flutter یک SDK چند پلتفرمی است، افزونه google_mobile_ads هم برای iOS و هم برای اندروید قابل استفاده است. بنابراین، اگر این افزونه را به برنامه Flutter خود اضافه کنید، توسط هر دو نسخه اندروید و iOS برنامه تبلیغات درون خطی AdMob استفاده میشود.
افزونه تبلیغات موبایلی گوگل را به عنوان یک وابستگی اضافه کنید
برای دسترسی به APIهای AdMob از پروژه تبلیغات درونخطی AdMob ، google_mobile_ads به عنوان یک وابستگی به فایل pubspec.yaml که در ریشه پروژه قرار دارد، اضافه کنید.
pubspec.yaml
...
environment:
# TODO: Update the minimum sdk version to 2.12.0 to support null safety.
sdk: ">=2.17.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
google_fonts: ^3.0.1
# TODO: Add google_mobile_ads as a dependency
google_mobile_ads: ^1.2.0
...
برای نصب افزونه در پروژه Awesome Drawing Quiz، روی Pub get کلیک کنید.

بهروزرسانی AndroidManifest.xml (اندروید)
- فایل
android/app/src/main/AndroidManifest.xmlرا در اندروید استودیو باز کنید. - شناسه برنامه AdMob خود را با اضافه کردن یک تگ
<meta-data>با نامcom.google.android.gms.ads.APPLICATION_IDاضافه کنید. برای مثال، اگر شناسه برنامه AdMob شماca-app-pub-3940256099942544~3347511713است، باید خطوط زیر را به فایلAndroidManifest.xmlاضافه کنید.
فایل AndroidManifest.xml
<manifest>
...
<application>
...
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>
</application>
</manifest>
بهروزرسانی Info.plist (iOS)
- فایل
ios/Runner/Info.plistرا در اندروید استودیو باز کنید. - یک کلید
GADApplicationIdentifierبا مقدار رشتهای شناسه برنامه AdMob خود اضافه کنید. برای مثال، اگر شناسه برنامه AdMob شماca-app-pub-3940256099942544~1458002511باشد، باید خطوط زیر را به فایلInfo.plistاضافه کنید.
ios/Runner/Info.plist
...
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>
...
۵. یک کلاس کمکی برای تبلیغات اضافه کنید
یک فایل جدید با نام ad_helper.dart در پوشه lib ایجاد کنید. سپس، کلاس AdHelper را پیادهسازی کنید که یک شناسه برنامه AdMob و شناسههای واحد تبلیغاتی برای اندروید و iOS ارائه میدهد.
مطمئن شوید که شناسه برنامه AdMob ( ca-app-pub-xxxxxx~yyyyy ) و شناسه واحد تبلیغات ( ca-app-pub-xxxxxxx/yyyyyyyy ) را با شناسههایی که در مرحله قبل ایجاد کردهاید، جایگزین میکنید.
lib/ad_helper.dart
import 'dart:io';
class AdHelper {
static String get bannerAdUnitId {
if (Platform.isAndroid) {
return '<YOUR_ANDROID_BANNER_AD_UNIT_ID>';
} else if (Platform.isIOS) {
return '<YOUR_IOS_BANNER_AD_UNIT_ID>';
} else {
throw UnsupportedError('Unsupported platform');
}
}
static String get interstitialAdUnitId {
if (Platform.isAndroid) {
return '<YOUR_ANDROID_INTERSTITIAL_AD_UNIT_ID>';
} else if (Platform.isIOS) {
return '<YOUR_IOS_INTERSTITIAL_AD_UNIT_ID>';
} else {
throw UnsupportedError('Unsupported platform');
}
}
static String get rewardedAdUnitId {
if (Platform.isAndroid) {
return '<YOUR_ANDROID_REWARDED_AD_UNIT_ID>';
} else if (Platform.isIOS) {
return '<YOUR_IOS_REWARDED_AD_UNIT_ID>';
} else {
throw UnsupportedError('Unsupported platform');
}
}
}
اگر میخواهید از شناسه برنامه آزمایشی AdMob و شناسههای واحد تبلیغات آزمایشی استفاده کنید، از قطعه کد زیر استفاده کنید.
lib/ad_helper.dart
import 'dart:io';
class AdHelper {
static String get bannerAdUnitId {
if (Platform.isAndroid) {
return 'ca-app-pub-3940256099942544/6300978111';
} else if (Platform.isIOS) {
return 'ca-app-pub-3940256099942544/2934735716';
} else {
throw new UnsupportedError('Unsupported platform');
}
}
static String get interstitialAdUnitId {
if (Platform.isAndroid) {
return "ca-app-pub-3940256099942544/1033173712";
} else if (Platform.isIOS) {
return "ca-app-pub-3940256099942544/4411468910";
} else {
throw new UnsupportedError("Unsupported platform");
}
}
static String get rewardedAdUnitId {
if (Platform.isAndroid) {
return "ca-app-pub-3940256099942544/5224354917";
} else if (Platform.isIOS) {
return "ca-app-pub-3940256099942544/1712485313";
} else {
throw new UnsupportedError("Unsupported platform");
}
}
}
۶. کیت توسعه نرمافزار تبلیغات موبایلی گوگل (Google Mobile Ads SDK) را راهاندازی کنید
قبل از بارگذاری تبلیغات، باید SDK تبلیغات موبایلی گوگل را مقداردهی اولیه کنید. فایل lib/home_route.dart را باز کنید و _initGoogleMobileAds() را برای مقداردهی اولیه SDK قبل از بارگذاری صفحه اصلی تغییر دهید.
توجه داشته باشید که برای دریافت نتیجه مقداردهی اولیه SDK پس از تکمیل، باید نوع بازگشتی متد _initGoogleMobileAds() را از Future<dynamic> به Future<InitializationStatus> تغییر دهید.
مسیر_خانه.دارت
// TODO: Import google_mobile_ads.dart
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:flutter/material.dart';
...
class HomeRoute extends StatelessWidget {
...
Future<InitializationStatus> _initGoogleMobileAds() {
// TODO: Initialize Google Mobile Ads SDK
return MobileAds.instance.initialize();
}
}
۷. یک بنر تبلیغاتی اضافه کنید
در این بخش، همانطور که در تصویر زیر نشان داده شده است، یک بنر تبلیغاتی در بالای صفحه بازی نمایش میدهید.

- فایل
lib/game_route.dartرا باز کنید وad_manager.dartرا وارد کنید. - با اضافه کردن خطوط زیر
ad_helper.dartوgoogle_mobile_ads.dartرا وارد کنید:
lib/game_route.dart
...
// TODO: Import ad_helper.dart
import 'package:awesome_drawing_quiz/ad_helper.dart';
// TODO: Import google_mobile_ads.dart
import 'package:google_mobile_ads/google_mobile_ads.dart';
class GameRoute extends StatefulWidget {
...
}
- در کلاس
_GameRouteState، اعضای زیر را برای یک بنر تبلیغاتی اضافه کنید.
lib/game_route.dart
class _GameRouteState extends State<GameRoute> implements QuizEventListener {
...
// TODO: Add _bannerAd
BannerAd? _bannerAd;
...
}
- در متد
initState()، یکBannerAdبرای بنر 320x50 (AdSize.banner) ایجاد و بارگذاری کنید. توجه داشته باشید که یک شنونده رویداد تبلیغ (ad event listener) طوری پیکربندی شده است که هنگام بارگذاری یک تبلیغ، رابط کاربری (setState()) را بهروزرسانی کند.
lib/game_route.dart
@override
void initState() {
...
// TODO: Load a banner ad
BannerAd(
adUnitId: AdHelper.bannerAdUnitId,
request: AdRequest(),
size: AdSize.banner,
listener: BannerAdListener(
onAdLoaded: (ad) {
setState(() {
_bannerAd = ad as BannerAd;
});
},
onAdFailedToLoad: (ad, err) {
print('Failed to load a banner ad: ${err.message}');
ad.dispose();
},
),
).load();
}
- متد
build()را طوری تغییر دهید که در صورت وجود، بنر تبلیغاتی نمایش داده شود.
lib/game_route.dart
@override
Widget build(BuildContext context) {
return Scaffold(
...
body: SafeArea(
child: Stack(
children: [
Center(
...
),
// TODO: Display a banner when ready
if (_bannerAd != null)
Align(
alignment: Alignment.topCenter,
child: Container(
width: _bannerAd!.size.width.toDouble(),
height: _bannerAd!.size.height.toDouble(),
child: AdWidget(ad: _bannerAd!),
),
),
],
),
),
...
);
}
- منبع مرتبط با شیء
BannerAdرا با فراخوانی متدBannerAd.dispose()در متد فراخوانیdispose()آزاد کنید.
lib/game_route.dart
@override
void dispose() {
// TODO: Dispose a BannerAd object
_bannerAd?.dispose();
...
super.dispose();
}
همین! پروژه را اجرا کنید و یک بازی جدید را شروع کنید. پس از بارگذاری یک تبلیغ، یک بنر تبلیغاتی در بالای صفحه مشاهده خواهید کرد.

۸. یک تبلیغ بینابینی اضافه کنید
در این بخش، شما یک تبلیغ بینابینی را پس از پایان بازی (در مجموع ۵ مرحله) نمایش میدهید.
- فایل
lib/game_route.dartرا باز کنید. - در کلاس
_GameRouteState، اعضا و متدهای زیر را برای یک تبلیغ بینابینی اضافه کنید.
توجه داشته باشید که یک شنونده رویداد تبلیغ طوری پیکربندی شده است که بررسی کند آیا تبلیغ آماده است یا خیر ( onAdLoaded() و onAdFailedToLoad() ) و صفحه اصلی برنامه را هنگام بسته شدن تبلیغ نمایش دهد ( onAdDismissedFullScreenContent() )
lib/game_route.dart
class _GameRouteState extends State<GameRoute> implements QuizEventListener {
...
// TODO: Add _interstitialAd
InterstitialAd? _interstitialAd;
// TODO: Implement _loadInterstitialAd()
void _loadInterstitialAd() {
InterstitialAd.load(
adUnitId: AdHelper.interstitialAdUnitId,
request: AdRequest(),
adLoadCallback: InterstitialAdLoadCallback(
onAdLoaded: (ad) {
ad.fullScreenContentCallback = FullScreenContentCallback(
onAdDismissedFullScreenContent: (ad) {
_moveToHome();
},
);
setState(() {
_interstitialAd = ad;
});
},
onAdFailedToLoad: (err) {
print('Failed to load an interstitial ad: ${err.message}');
},
),
);
}
...
}
- در این کدلب، یک تبلیغ بینابینی پس از اینکه کاربر ۵ سطح را کامل کرد نمایش داده میشود. برای به حداقل رساندن درخواستهای غیرضروری تبلیغات، وقتی کاربر به سطح ۳ رسید، درخواست تبلیغ دهید.
در متد onNewLevel() ، خطوط زیر را اضافه کنید.
lib/game_route.dart
@override
void onNewLevel(int level, Drawing drawing, String clue) {
...
// TODO: Load an Interstitial Ad
if (level >= 3 && _interstitialAd == null) {
_loadInterstitialAd();
}
}
- وقتی بازی تمام میشود، پنجرهی امتیاز بازی نمایش داده میشود. وقتی کاربر پنجره را میبندد، به صفحهی اصلی مسابقهی نقاشی فوقالعاده هدایت میشود.
از آنجا که تبلیغات بینابینی باید بین انتقالهای صفحه نمایش داده شوند، ما وقتی کاربر روی دکمه بستن کلیک میکند، تبلیغ بینابینی را نشان میدهیم.
متد onGameOver() را به صورت زیر تغییر دهید.
lib/game_route.dart
@override
void onGameOver(int correctAnswers) {
showDialog(
context: _scaffoldKey.currentContext,
builder: (context) {
return AlertDialog(
title: Text('Game over!'),
content: Text('Score: $correctAnswers/5'),
actions: [
FlatButton(
child: Text('close'.toUpperCase()),
onPressed: () {
// TODO: Display an Interstitial Ad
if (_interstitialAd != null) {
_interstitialAd?.show();
} else {
_moveToHome();
}
},
),
],
);
},
);
}
- منبع مرتبط با شیء
InterstitialAdرا با فراخوانی متدInterstitialAd.dispose()در متد فراخوانیdispose()آزاد کنید.
lib/game_route.dart
@override
void dispose() {
...
// TODO: Dispose an InterstitialAd object
_interstitialAd?.dispose();
...
super.dispose();
}
همین! پروژه را اجرا کنید و بازی را کامل کنید. اگر یک تبلیغ بینابینی بارگذاری شده باشد، به محض کلیک روی دکمه CLOSE از پنجره امتیاز، یک تبلیغ بینابینی مشاهده خواهید کرد.

۹. یک تبلیغ جایزهدار اضافه کنید
در این بخش، شما یک تبلیغ جایزهدار اضافه میکنید که به کاربر یک راهنمایی اضافی به عنوان جایزه میدهد.
- فایل
lib/game_route.dartرا باز کنید. - در کلاس
_GameRouteState، اعضای یک تبلیغ جایزهدار را اضافه کنید و متد_loadRewardedAd()را پیادهسازی کنید. توجه داشته باشید که وقتی تبلیغ بسته میشود (onAdDismissedFullScreenContent) یک تبلیغ جایزهدار دیگر را بارگذاری میکند تا تبلیغ در اسرع وقت ذخیره شود.
lib/game_route.dart
class _GameRouteState extends State<GameRoute> implements QuizEventListener {
...
// TODO: Add _rewardedAd
RewardedAd? _rewardedAd;
// TODO: Implement _loadRewardedAd()
void _loadRewardedAd() {
RewardedAd.load(
adUnitId: AdHelper.rewardedAdUnitId,
request: AdRequest(),
rewardedAdLoadCallback: RewardedAdLoadCallback(
onAdLoaded: (ad) {
ad.fullScreenContentCallback = FullScreenContentCallback(
onAdDismissedFullScreenContent: (ad) {
setState(() {
ad.dispose();
_rewardedAd = null;
});
_loadRewardedAd();
},
);
setState(() {
_rewardedAd = ad;
});
},
onAdFailedToLoad: (err) {
print('Failed to load a rewarded ad: ${err.message}');
},
),
);
}
...
}
- برای درخواست یک تبلیغ جایزهدار هنگام شروع بازی، تابع
_loadRewardedAd()را از متدinitState()فراخوانی کنید.
lib/game_route.dart
class _GameRouteState extends State<GameRoute> implements QuizEventListener {
...
@override
void initState() {
...
// COMPLETE: Load a Rewarded Ad
_loadRewardedAd();
}
...
}
- به کاربران اجازه دهید با کلیک روی دکمه شناور، یک تبلیغ جایزهدار را تماشا کنند. این دکمه فقط در صورتی نمایش داده میشود که کاربر در سطح فعلی از راهنمایی استفاده نکرده باشد و تبلیغ جایزهدار بارگذاری شده باشد.
متد _buildFloatingActionButton() را به صورت زیر تغییر دهید تا دکمه عملیاتی شناور نمایش داده شود. توجه داشته باشید که برگرداندن null دکمه را از صفحه نمایش پنهان میکند.
توجه داشته باشید که onUserEarnedReward مهمترین رویداد تبلیغاتی در یک تبلیغ جایزهدار است. این رویداد زمانی فعال میشود که کاربر واجد شرایط دریافت جایزه شود (برای مثال، تماشای یک ویدیو را تمام کند).
در این کد، متد QuizManager.instance.useHint() از تابع فراخوانی فراخوانی میشود که یک کاراکتر دیگر را در رشتهی راهنما نشان میدهد. برنامه یک تبلیغ جایزهدار را در تابع فراخوانی onAdClosed بارگذاری مجدد میکند تا مطمئن شود تبلیغ در اسرع وقت آماده است.
lib/game_route.dart
Widget? _buildFloatingActionButton() {
// TODO: Return a FloatingActionButton if a rewarded ad is available
return (!QuizManager.instance.isHintUsed && _rewardedAd != null)
? FloatingActionButton.extended(
onPressed: () {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text('Need a hint?'),
content: Text('Watch an Ad to get a hint!'),
actions: [
TextButton(
child: Text('cancel'.toUpperCase()),
onPressed: () {
Navigator.pop(context);
},
),
TextButton(
child: Text('ok'.toUpperCase()),
onPressed: () {
Navigator.pop(context);
_rewardedAd?.show(
onUserEarnedReward: (_, reward) {
QuizManager.instance.useHint();
},
);
},
),
],
);
},
);
},
label: Text('Hint'),
icon: Icon(Icons.card_giftcard),
)
: null;
}
- منبع مرتبط با شیء
RewardedAdرا با فراخوانی متدRewardedAd.dispose()در متد فراخوانیdispose()آزاد کنید.
lib/game_route.dart
@override
void dispose() {
...
// TODO: Dispose a RewardedAd object
_rewardedAd?.dispose();
...
super.dispose();
}
همین! پروژه را اجرا کنید و بازی را انجام دهید. به محض اینکه یک تبلیغ جایزهدار بارگذاری شد، یک دکمه راهنما در پایین صفحه مشاهده خواهید کرد. برای دریافت یک راهنمای اضافی، روی دکمه راهنما کلیک کنید.

۱۰. همه چیز تمام شد!
شما آزمایشگاه کد را تکمیل کردهاید. میتوانید کد تکمیلشده برای این آزمایشگاه کد را در
پوشه کامل .
برای یادگیری نحوه پیادهسازی بنر و تبلیغات درونخطی بومی، به بخش افزودن بنر AdMob و تبلیغات درونخطی بومی به آزمایشگاه کد برنامه Flutter مراجعه کنید.
برای کسب اطلاعات بیشتر، سایر آزمایشگاههای کد فلاتر را امتحان کنید.




