استفاده از کیتهای توسعه نرمافزار iOS و Android از AdMob را درنظر بگیرید.
این راهنمای شروع سریع برای ناشران و توسعهدهندگانی است که میخواهند از AdMob برای درآمدزایی از برنامهای که با Firebase ساخته شده است استفاده کنند. اگر قصد ندارید Firebase را در برنامهتان بگنجانید، بهجای آن به راهنمای AdMob خوداتکا مراجعه کنید.
اگر هنوز این کار را نکردهاید، با همه مزایای استفاده از AdMob، Firebase، و Google Analytics با هم آشنا شوید.
اگر اولینبار است که این راهنما را میخوانید، توصیه میکنیم برنامه آزمایشی «کیت توسعه نرمافزار C++ تبلیغات در تلفن همراه Google» را بارگیری کنید و بااستفاده از آن راهنما را دنبال کنید.
قبل از شروع
اگر ازقبل پروژه Firebase و برنامه Firebase ندارید، راهنمای شروع به کار Firebase را دنبال کنید: افزودن Firebase به پروژه C++.
مطمئن شوید که Google Analytics در پروژه Firebase شما فعال باشد:
اگر پروژه Firebase جدیدی ایجاد میکنید، Google Analytics را درطول گردش کار ایجاد پروژه فعال کنید.
اگر پروژه Firebase موجودی دارید که Google Analytics در آن فعال نیست، میتوانید Google Analytics را از برگه ادغامها در
> تنظیمات پروژه فعال کنید.
مرحله ۱: برنامه را در حساب AdMob خود راهاندازی کنید
هر گونه پلاتفرم برنامه خود را بهعنوان برنامه AdMob ثبت کنید.
به سیستم حساب AdMob وارد شوید یا ثبتنام کنید.
هر گونه پلاتفرم برنامه خود را در AdMob ثبت کنید. این مرحله برنامه AdMob را با AdMob شناسه برنامه منحصربهفردی ایجاد میکند که بعداً در این راهنما به آن نیاز خواهید داشت.
از شما خواسته میشود Mobile Ads کیت توسعه نرمافزار را به برنامهتان اضافه کنید. دستورالعملهای دقیق این کار را در ادامه این راهنما خواهید دید.
هریک از برنامههای AdMob خود را به برنامه Firebase مربوطه پیوند دهید.
این مرحله اختیاری است اما اکیداً توصیه میشود. درباره مزایای فعال کردن معیارهای کاربر و پیوند دادن برنامههای AdMob به Firebase بیشتر بدانید.
برای هر گونه پلاتفرم، دو مرحله زیر را در داشبورد برنامهها حساب AdMob خود تکمیل کنید:
فعال کردن سنجههای کاربر برای اجازه دادن به AdMob برای پردازش و نمایش دادههای تجزیهوتحلیل گلچینشده در حساب AdMob شما. این تنظیم همچنین برای پیوند دادن برنامه AdMob به Firebase الزامی است.
برنامه AdMob خود را به پروژه Firebase موجود و برنامه Firebase مربوطه پیوند دهید.
مطمئن شوید که همان نام بسته (Android) یا شناسه بسته (iOS) را که برای برنامه Firebase خود وارد کردهاید وارد کنید. نام بسته یا شناسه بسته برنامه Firebase خود را در کارت برنامههای شما در
> تنظیمات پروژه پیدا کنید.
مرحله ۲: «شناسه برنامه» AdMob را به برنامهتان اضافه کنید
Android
AdMob شناسه برنامه
را با افزودن برچسب <meta-data> به فایل AndroidManifest.xml برنامه خود
همانطور که در زیر نشان داده شده است اضافه کنید.
<manifest> <application> <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 --> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ADMOB_APP_ID"/> </application> </manifest>
iOS
در فایل Info.plist برنامه، کلید GADApplicationIdentifier با مقدار رشتهای
AdMob شناسه برنامه خودتان را اضافه کنید.
میتوانید این تغییر را بهصورت برنامهریزیشده انجام دهید:
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 --> <key>GADApplicationIdentifier</key> <string>ADMOB_APP_ID</string>
یا آن را در ویرایشگر فهرست دارایی ویرایش کنید:

مرحله ۳: افزودن «کیت توسعه نرمافزار تبلیغات تلفن همراه Google»
ازآنجاییکه Google Mobile Ads C++ SDK در فضای نام firebase::gma قرار دارد،
Firebase C++ SDK را بارگیری کنید،
و سپس آن را در دایرکتوری دلخواهتان از حالت فشرده خارج کنید.
Firebase C++ SDK مختص پلاتفرم خاصی نیست، اما به پیکربندیهای کتابخانه مختص پلاتفرم نیاز دارد.
Android
در فایل
gradle.propertiesپروژه، مکان کیت توسعه نرمافزار ازحالت فشرده خارجشده را مشخص کنید:systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
محتوای زیر را به فایل
settings.gradleپروژه خود اضافه کنید:def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir') gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir" includeBuild "$firebase_cpp_sdk_dir"
به فایل Gradle واحد (سطح برنامه) خود (معمولاً
app/build.gradle)، محتوای زیر را که شامل وابستگی کتابخانه برای «کیت توسعه نرمافزار تبلیغات تلفن همراه Google C++» است اضافه کنید.android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependency for the Google Mobile Ads C++ SDK apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { gma }
محتوای زیر را به فایل
CMakeLists.txtپروژه خود اضافه کنید.# Add Firebase libraries to the target using the function from the SDK. add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) # Add the Google Mobile Ads C++ SDK. # The Firebase C++ library `firebase_app` is required, # and it must always be listed last. set(firebase_libs firebase_gma firebase_app ) target_link_libraries(${target_name} "${firebase_libs}")
برنامهتان را همگامسازی کنید تا مطمئن شوید همه وابستگیها نسخههای لازم را دارند.
آمادهاید! برنامه C++ شما برای استفاده از «کیت توسعه نرمافزار تبلیغات تلفن همراه Google برای C++» پیکربندی شده است.
iOS
مراحل این بخش نمونهای از نحوه افزودن «کیت توسعه نرمافزار تبلیغات تلفن همراه Google C++» به پروژه iOS شما است.
با اجرای دستور زیر، CocoaPods نسخه ۱ یا جدیدتر را دریافت کنید:
sudo gem install cocoapods --preGoogle Mobile Ads pod را از کیت توسعه نرمافزار ازحالت فشرده خارجشده اضافه کنید.
اگر ازقبل Podfile ندارید، آن را ایجاد کنید:
cd YOUR_APP_DIRECTORYpod initبه Podfile، غلاف را برای کیت توسعه نرمافزار تبلیغات تلفن همراه Google C++ اضافه کنید:
pod 'Google-Mobile-Ads-SDK'واحد را نصب کنید، سپس فایل
.xcworkspaceرا در Xcode باز کنید.pod installopen YOUR_APP.xcworkspaceچارچوبهای زیر را از Firebase C++ SDK به پروژه اضافه کنید:
xcframeworks/firebase.xcframeworkxcframeworks/firebase_gma.xcframework
آمادهاید! برنامه C++ شما برای استفاده از «کیت توسعه نرمافزار تبلیغات تلفن همراه Google برای C++» پیکربندی شده است.
مرحله ۴: مقداردهی اولیه کیت توسعه نرمافزار تبلیغات تلفن همراه Google
پیشاز بار کردن آگهیها، کیت توسعه نرمافزار Mobile Ads را با فراخوانی
firebase::gma::Initialize() مقداردهی اولیه کنید.
این تماس firebase::Future را برمیگرداند که پساز پایان مقداردهی اولیه (یا پساز ۳۰ ثانیه مهلت زمانی) تکمیل میشود. این روش را فقط یکبار و در
اولین فرصت ممکن، ترجیحاً در زمان راهاندازی برنامه، فراخوانی کنید.
در اینجا نمونهای از نحوه تماس با Initialize() آورده شده است:
Android
// Initialize the Google Mobile Ads library firebase::InitResult result; Future<AdapterInitializationStatus> future = firebase::gma::Initialize(jni_env, j_activity, &result); if (result != kInitResultSuccess) { // Initialization immediately failed, most likely due to a missing dependency. // Check the device logs for more information. return; } // Monitor the status of the future. // See "Use a Future to monitor the completion status of a method call" below. if (future.status() == firebase::kFutureStatusComplete && future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization completed. } else { // Initialization on-going, or an error has occurred. }
iOS
// Initialize the Google Mobile Ads library. firebase::InitResult result; Future<AdapterInitializationStatus> future = firebase::gma::Initialize(&result); if (result != kInitResultSuccess) { // Initialization immediately failed, most likely due to a missing dependency. // Check the device logs for more information. return; } // Monitor the status of the future. // See "Use a Future to monitor the completion status of a method call" below. if (future.status() == firebase::kFutureStatusComplete && future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization completed. } else { // Initialization on-going, or an error has occurred. }
از Future برای نظارت بر وضعیت تکمیل تماس روش استفاده کنید
Future روشی برای تعیین وضعیت تکمیل تماسهای روش ناهمزمان دراختیارتان قرار میدهد.
برای مثال، وقتی برنامه شما firebase::gma::Initialize() را فرا میخواند،
firebase::Future جدیدی ایجاد و برگردانده میشود. سپس برنامه شما میتواند
status() Future را نظرسنجی کند تا مشخص شود مقداردهی اولیه چه زمانی تکمیل شده است.
پساز تکمیل، برنامه شما میتواند result() را برای دریافت
AdapterInitializationStatus فراخوانی کند.
روشهایی که Future را برمیگردانند روش «آخرین نتیجه» مربوطه را دارند که
برنامهها میتوانند از آن برای بازیابی جدیدترین Future برای کنش معینی استفاده کنند. برای مثال، firebase::gma::Initialize() روش متناظری بهنام firebase::gma::InitializeLastResult() دارد که Future را برمیگرداند و برنامه شما میتواند از آن برای بررسی وضعیت آخرین تماس با firebase::gma::Initialize() استفاده کند.
اگر وضعیت Future کامل باشد و کد خطای آن firebase::gma::kAdErrorCodeNone باشد، عملیات با موفقیت تکمیل شده است.
همچنین میتوانید کاربرگهایی را ثبت کنید تا وقتی Future تکمیل شد فراخوانی شوند. در
برخیاز موارد، برگشت تماس در رشتهای متفاوت اجرا خواهد شد، بنابراین
مطمئن شوید که کدتان رشته-امن است. این تکهکد از یک اشارهگر تابع برای
بازخوان استفاده میکند:
// Registers the OnCompletion callback. user_data is a pointer that is passed verbatim
// to the callback as a void*. This allows you to pass any custom data to the callback
// handler. In this case, the app has no data, so you must pass nullptr.
firebase::gma::InitializeLastResult().OnCompletion(OnCompletionCallback,
/*user_data=*/nullptr);
// The OnCompletion callback function.
static void OnCompletionCallback(
const firebase::Future<AdapterInitializationStatus>& future, void* user_data) {
// Called when the Future is completed for the last call to firebase::gma::Initialize().
// If the error code is firebase::gma::kAdErrorCodeNone,
// then the SDK has been successfully initialized.
if (future.error() == firebase::gma::kAdErrorCodeNone) {
// success!
} else {
// failure.
}
}
مرحله ۵: انتخاب قالب آگهی برای پیادهسازی در برنامه
AdMob قالبهای آگهی مختلفی را ارائه میدهد، بنابراین میتوانید قالبی را انتخاب کنید که بهترین تناسب را با تجربه کاربری برنامه شما داشته باشد. برای مشاهده دستورالعملهای دقیق پیادهسازی در اسناد AdMob، روی دکمه قالب آگهی کلیک کنید.
بنر
آگهیهای مستطیلی که در بالا یا پایین صفحهنمایش دستگاه نشان داده میشوند
آگهیهای برنمایی درحالیکه کاربران با برنامه تعامل دارند روی صفحه باقی میمانند و میتوانند پساز مدت زمان مشخصی بهطور خودکار بازآوری شوند. اگر در تبلیغات تلفن همراه تازهکار هستید، اینها مکان خوبی برای شروع هستند.
پیادهسازی آگهیهای برنماییبینابینی
آگهیهای تمامصفحه که تا زمانی که کاربر آنها را نبندد، واسط برنامه را میپوشانند
بهترین زمان استفاده از آگهیهای بینابینی در وقفههای طبیعی جریان اجرای برنامه است، مثلاً بین سطوح یک بازی یا درست پساز تکمیل یک تکلیف.
پیادهسازی آگهیهای بینابینیپاداشدادهشده
آگهیهایی که به کاربران برای تماشای ویدیوهای کوتاه و تعامل با آگهیها و نظرسنجیهای قابلبازی پاداش میدهند
آگهیهای پاداشدار (یا «پاداشمحور») میتوانند به درآمدزایی از کاربران رایگان کمک کنند.
موضوعات موردعلاقه دیگر
راههای بیشتری برای اندازهگیری سنجهها و ادغام ویژگیهای Firebase با AdMob کاوش کنید.
مشاهده سنجههای کاربر و دادههای تجزیهوتحلیل
پساز مقداردهی اولیه، کیت توسعه نرمافزار Mobile Ads بهطور خودکار شروع به ثبت رویدادهای تحلیل و داراییهای کاربر از برنامهتان میکند. میتوانید این دادهها را بدون افزودن کد اضافی به برنامهتان یا پیادهسازی آگهی مشاهده کنید. در اینجا میتوانید این دادههای Analytics را ببینید:
در کارت سنجههای کاربر حساب AdMob (داشبورد صفحه اصلی یا برنامهها)، میتوانید سنجههای کاربر گلچینشده را که از دادههای تجزیهوتحلیل جمعآوریشده استخراج شدهاند، مانند میانگین مدت جلسه، ARPU، و ماندگاری مشاهده کنید.
در داشبورد Analytics کنسول Firebase میتوانید آمار تجمیعی و خلاصهای از سنجههای کلیدی را مشاهده کنید. اگر «کیت توسعه نرمافزار Firebase» را برای Google Analytics اضافه کنید، میتوانید تبدیلها را برای پویشهای تبلیغاتی علامتگذاری کنید و مخاطبان سفارشی بسازید در کنسول Firebase.
توجه داشته باشید که برای نمایش بهتر سنجههای
ARPU و
ARPPU، ممکن است بخواهید دادههای رویداد سفارشی Analytics بهنام
ecommerce_purchase
را در محاسبه درآمد برای این سنجهها بگنجانید
(با نحوه انجام این کار آشنا شوید).
(اختیاری) استفاده از ویژگیهای بیشتر Google Analytics و Firebase
از فرصتها و ویژگیهای بیشتری برای بهبود درآمدزایی برنامه و تعامل کاربر استفاده کنید:
افزودن و استفاده از کیت توسعه نرمافزار Firebase برای Google Analytics
گزارش رویداد سفارشی را در برنامهتان پیادهسازی کنید.
تبدیلها را برای پویشهای آگهی سفارشی علامتگذاری کنید.
دادههای رویداد
ecommerce_purchaseرا در محاسبه درآمد برای سنجههای درآمد میانگین بهازای هر کاربر و درآمد میانگین بهازای کاربر پرداختکننده بگنجانید.
برای کسب اطلاعات بیشتر، به راهنمای استفاده از Google Analytics و Firebase با AdMob برنامه مراجعه کنید.
استفاده از دیگر محصولات Firebase در برنامه
پساز افزودن کیت توسعه نرمافزار Firebase برای Google Analytics، از دیگر محصولات Firebase برای بهینهسازی آگهیها در برنامهتان استفاده کنید.
Remote Config به شما امکان میدهد رفتار و ظاهر برنامهتان را بدون انتشار بهروزرسانی برنامه تغییر دهید.
A/B Testing به شما امکان میدهد تغییرات در واسط کاربری، ویژگیها، یا پویشهای تعامل برنامهتان را آزمایش کنید تا ببینید آیا این تغییرات بر سنجههای کلیدی شما (مثل درآمد و حفظ کاربر) تأثیر میگذارند یا نه، قبلاز اینکه تغییرات را بهطور گسترده اعمال کنید.