آموزش استفاده از تبلیغات Admob در برنامه نویسی فلاتر

در دنیای توسعه اپلیکیشنهای موبایل، یکی از راههای رایج و موثر برای کسب درآمد، استفاده از تبلیغات درونبرنامهای است. Google AdMob یکی از محبوبترین پلتفرمها در این زمینه است که امکان نمایش تبلیغات گوگل را در اپلیکیشنهای موبایل فراهم میکند. در این مقاله، با نحوه استفاده از AdMob در اپلیکیشنهای فلاتر آشنا میشویم و قدم به قدم مراحل ثبت اپلیکیشن، پیادهسازی انواع تبلیغات و استفاده از کدهای نمونه را بررسی خواهیم کرد.
گوگل ادموب AdMob چیست؟
AdMob (مخفف “Advertising on Mobile”) یک پلتفرم تبلیغاتی متعلق به گوگل است که به توسعهدهندگان موبایل اجازه میدهد تبلیغات را در اپلیکیشنهای خود نمایش دهند و از این طریق کسب درآمد کنند. این پلتفرم از تبلیغات بنری، Interstitial، ویدیویی و Native پشتیبانی میکند و یکی از مزایای اصلی آن، سازگاری کامل با اندروید و iOS و همچنین پشتیبانی خوب از فلاتر است.

علاوه بر AdMob، پلتفرم Firebase نیز یکی دیگر از سرویسهای قدرتمند گوگل برای توسعه اپلیکیشنهای موبایل است که میتواند مکمل بسیار خوبی برای AdMob باشد. Firebase خدماتی مانند تحلیل رفتار کاربران (Analytics)، ارسال اعلان (Push Notification)، احراز هویت، پایگاه داده بلادرنگ (Realtime Database) و مدیریت خطاها را ارائه میدهد.
یکی از ویژگیهای مهم Firebase در کنار AdMob، قابلیت تحلیل درآمد بر اساس رفتار کاربران است. با اتصال AdMob به Firebase، میتوانید بهطور دقیق مشاهده کنید که کدام بخش از اپلیکیشن بیشترین درآمد تبلیغاتی را ایجاد میکند و بر اساس دادهها، تجربه کاربری و استراتژی درآمدزایی خود را بهینهسازی کنید. این یکپارچگی به شما امکان میدهد تا تصمیمات هوشمندانهتری در توسعه و بهینهسازی اپلیکیشن خود بگیرید.
درآمدزایی از AdMob
درآمد از AdMob معمولاً به دو روش زیر محاسبه میشود:
- CPM (Cost Per Mille): بهازای هر هزار بار نمایش تبلیغ به کاربر.
- CPC (Cost Per Click): بهازای هر کلیک واقعی روی تبلیغ.
درآمد نهایی به عوامل مختلفی بستگی دارد، از جمله:
- موقعیت جغرافیایی کاربران
- نوع تبلیغ
- نرخ تعامل کاربر با تبلیغ
- تعداد نصبهای فعال اپلیکیشن
برای استفاده از AdMob در اپلیکیشن Flutter، مراحل زیر را طی کنید:

- وارد سایت https://admob.google.com شوید.
- با حساب گوگل خود وارد شوید.
- روی Add App کلیک کنید.
- سیستمعامل اپلیکیشن (Android یا iOS) را انتخاب کنید.
- اطلاعات اپلیکیشن را وارد کرده و ثبت کنید.
- پس از ثبت، یک App ID دریافت میکنید.
- حالا میتوانید انواع Ad Unitها (مثل بنری یا Interstitial) را بسازید و از شناسه آنها استفاده کنید.
انواع روشهای پیادهسازی تبلیغات AdMob در فلاتر
در فلاتر، برای استفاده از AdMob میتوانید از پکیج رسمی گوگل به نام google_mobile_ads
استفاده کنید.

1. تبلیغات بنری (Banner Ads)
این نوع تبلیغ در پایین یا بالای صفحه اپلیکیشن نمایش داده میشود.
2. تبلیغات Interstitial (Interstitial Ads)
در این روش، تبلیغ در بین تعاملات کاربر (مثلاً بین مراحل بازی یا پس از زدن دکمهای خاص) نمایش داده میشود.
3. تبلیغات ویدیویی جایزهدار (Rewarded Video Ads)
کاربر با دیدن یک ویدیو کامل، پاداشی درونبرنامهای دریافت میکند (مثلاً امتیاز یا جان اضافه).
نمونه کد پیاده سازی Admob در فلاتر
ابتدا پکیج را به pubspec.yaml
اضافه کنید:
dependencies:
google_mobile_ads: ^4.0.0
سپس در main.dart
مقداردهی اولیه انجام دهید:
void main() {
WidgetsFlutterBinding.ensureInitialized();
MobileAds.instance.initialize();
runApp(MyApp());
}
نمایش تبلیغ بنری:

تبلیغات بنری، نوعی از تبلیغات تصویری هستند که معمولاً بهصورت یک نوار افقی در پایین یا بالای صفحه اپلیکیشن نمایش داده میشوند. این نوع تبلیغات سادهترین و رایجترین نوع تبلیغ در اپلیکیشنهای موبایل است.
ویژگیها:
- اندازه ثابت دارند (مثل 320×50، 468×60، یا Adaptive).
- بهصورت دائمی یا برای مدت مشخصی در صفحه باقی میمانند.
- مناسب برای اپلیکیشنهایی با تعامل طولانیمدت (مثل بازیها یا اپهای خبری).
مزایا:
- پیادهسازی آسان
- کمترین مزاحمت برای کاربر
- مناسب برای نمایش دائمی و درآمد تدریجی
نکات مهم:
- نباید نزدیک به دکمههای مهم اپلیکیشن قرار گیرد تا باعث کلیکهای ناخواسته نشود.
BannerAd myBanner = BannerAd(
adUnitId: 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx',
size: AdSize.banner,
request: AdRequest(),
listener: BannerAdListener(),
);
Widget adWidget = AdWidget(ad: myBanner);
@override
void initState() {
super.initState();
myBanner.load();
}
نمایش تبلیغ Interstitial:

تبلیغات Interstitial تمامصفحه هستند و معمولاً بین دو بخش از تعامل کاربر (مثلاً پس از پایان یک مرحله یا هنگام تغییر صفحه) نمایش داده میشوند. کاربر برای ادامه استفاده از اپلیکیشن، باید ابتدا تبلیغ را مشاهده کرده یا آن را ببندد.
ویژگیها:
- نمایشی تمامصفحه دارند.
- معمولاً شامل تصویر، متن و دکمه قابل کلیک هستند.
- بعد از بسته شدن، کنترل مجدد به اپلیکیشن بازمیگردد.
مزایا:
- نرخ درآمد بالاتری نسبت به تبلیغات بنری دارند.
- توجه بیشتری از کاربر جلب میکنند.
- مناسب برای اپلیکیشنهایی با وقفه طبیعی در تجربه کاربری (مثل بازیها یا فرمها).
نکات مهم:
- نباید بیش از حد یا بهطور ناگهانی نمایش داده شوند.
- بهترین زمان نمایش: انتهای فعالیت کاربر یا هنگام تغییر مرحله.
InterstitialAd.load(
adUnitId: 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx',
request: AdRequest(),
adLoadCallback: InterstitialAdLoadCallback(
onAdLoaded: (InterstitialAd ad) {
ad.show();
},
onAdFailedToLoad: (LoadAdError error) {
print('Failed to load an interstitial ad: $error');
},
),
);
تبلیغات ویدیویی جایزهدار (Rewarded Video Ads)
در این نوع تبلیغات، کاربر با تماشای کامل یک ویدیوی تبلیغاتی، پاداشی درونبرنامهای دریافت میکند؛ مثلاً امتیاز، سکه، یا دسترسی به یک قابلیت خاص.

ویژگیها:
- تعامل داوطلبانه کاربر با تبلیغ
- فقط در صورت مشاهده کامل ویدیو، پاداش تعلق میگیرد
- طول ویدیو معمولاً بین ۱۵ تا ۳۰ ثانیه است
مزایا:
- بالاترین نرخ تعامل (Engagement)
- افزایش رضایت کاربر بهدلیل دریافت پاداش
- بهبود تجربه کاربری نسبت به تبلیغات اجباری
موارد استفاده مناسب:
- اپلیکیشنهای بازی (پاداش سکه یا جان اضافه)
- اپلیکیشنهای آموزشی (باز کردن ویدیو یا دوره ویژه)
- اپلیکیشنهای خدماتی (دسترسی رایگان به قابلیتهای پرمیوم برای مدت محدود)
نکات مهم:
- پاداش باید متناسب و واقعی باشد تا انگیزه ایجاد کند.
- باید امکان رد کردن تبلیغ (Skip) را نداشته باشد تا درآمد کامل محاسبه شود.
سناریو:
در یک بازی یا اپلیکیشن، کاربر با دیدن کامل یک ویدیو تبلیغاتی میتواند ۵ سکه رایگان دریافت کند.
RewardedAd? _rewardedAd;
int coinBalance = 0;
void loadRewardedAd() {
RewardedAd.load(
adUnitId: 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx', // آیدی تبلیغ جایزهدار
request: AdRequest(),
rewardedAdLoadCallback: RewardedAdLoadCallback(
onAdLoaded: (RewardedAd ad) {
_rewardedAd = ad;
_showRewardedAd(); // نمایش تبلیغ بعد از بارگیری موفق
},
onAdFailedToLoad: (LoadAdError error) {
print('Failed to load rewarded ad: $error');
},
),
);
}
void _showRewardedAd() {
_rewardedAd?.show(
onUserEarnedReward: (AdWithoutView ad, RewardItem reward) {
setState(() {
coinBalance += reward.amount.toInt(); // افزایش سکه پس از دیدن کامل ویدیو
});
print('🎁 کاربر پاداش گرفت: ${reward.amount}');
},
);
_rewardedAd?.fullScreenContentCallback = FullScreenContentCallback(
onAdDismissedFullScreenContent: (RewardedAd ad) {
ad.dispose();
},
onAdFailedToShowFullScreenContent: (RewardedAd ad, AdError error) {
ad.dispose();
},
);
}
نمایش دکمه در UI:
ElevatedButton(
onPressed: loadRewardedAd,
child: Text('🎬 دیدن ویدیو برای دریافت ۵ سکه'),
),
سوالات متداول
آیا استفاده از AdMob رایگان است؟
بله، استفاده از پلتفرم AdMob برای توسعهدهندگان رایگان است. شما از تبلیغاتی که نمایش میدهید کسب درآمد میکنید.
آیا میتوانم همزمان از چند نوع تبلیغ استفاده کنم؟
بله، میتوانید بنر، Interstitial و تبلیغات جایزهدار را در اپلیکیشن خود ترکیب کنید.
آیا برای iOS و Android تنظیمات متفاوتی لازم است؟
بله، هر سیستمعامل نیاز به App ID و Ad Unit ID مخصوص به خود دارد و همچنین باید تنظیمات خاصی در فایلهای AndroidManifest.xml
و Info.plist
اعمال کنید.
نتیجهگیری
استفاده از AdMob در فلاتر یک راه عالی برای کسب درآمد از اپلیکیشنهای موبایلی است. با استفاده از پکیج رسمی google_mobile_ads
و کمی تنظیمات اولیه، میتوانید تبلیغات متنوعی را در اپلیکیشن خود نمایش دهید. فقط به خاطر داشته باشید که تبلیغات نباید تجربه کاربری را مختل کند و بهتر است به صورت اصولی و در زمانهای مناسب نمایش داده شوند.
دیدگاهتان را بنویسید