این راهنمای شروع سریع برای ناشران و توسعه دهندگانی است که می خواهند از AdMob برای کسب درآمد از برنامه ای که با Firebase ساخته شده است استفاده کنند. اگر قصد ندارید Firebase را در برنامه خود قرار دهید، به جای آن از راهنمای AdMob مستقل بازدید کنید.
اگر هنوز این کار را نکرده اید، با تمام مزایای استفاده از AdMob، Firebase و Google Analytics با هم آشنا شوید.
اگر اولین باری است که این راهنما را مرور میکنید، توصیه میکنیم با استفاده از برنامه آزمایشی SDK C++ Google Mobile Ads را دانلود کرده و دنبال کنید.
قبل از اینکه شروع کنی
اگر قبلاً پروژه Firebase و برنامه Firebase ندارید، راهنمای شروع Firebase را دنبال کنید: Firebase را به پروژه C++ خود اضافه کنید .
مطمئن شوید که Google Analytics در پروژه Firebase شما فعال است:
اگر در حال ایجاد یک پروژه Firebase هستید، Google Analytics را در جریان کار ایجاد پروژه فعال کنید.
اگر پروژه Firebase موجودی دارید که Google Analytics را فعال نکرده است، میتوانید Google Analytics را از برگه Integrations فعال کنید.
مرحله 1: برنامه خود را در حساب AdMob خود راه اندازی کنید
هر گونه پلتفرم برنامه خود را به عنوان یک برنامه AdMob ثبت کنید.
وارد حساب AdMob شوید یا برای آن ثبت نام کنید .
هر گونه پلتفرم برنامه خود را با AdMob ثبت کنید . این مرحله یک برنامه AdMob با شناسه برنامه AdMob منحصر به فرد ایجاد می کند که بعداً در این راهنما به آن نیاز خواهید داشت.
از شما خواسته می شود SDK تبلیغات موبایل را به برنامه خود اضافه کنید. دستورالعمل های دقیق برای این کار را بعداً در این راهنما بیابید.
هر یک از برنامه های AdMob خود را به برنامه Firebase مربوطه پیوند دهید.
این مرحله اختیاری است اما به شدت توصیه می شود. درباره مزایای فعال کردن معیارهای کاربر و پیوند دادن برنامههای AdMob خود به Firebase بیشتر بدانید.
برای هر نوع پلتفرم، دو مرحله زیر را در داشبورد Apps حساب AdMob خود تکمیل کنید:
User Metrics را فعال کنید تا به AdMob اجازه دهد داده های تجزیه و تحلیل انتخاب شده را در حساب AdMob شما پردازش و نمایش دهد. همچنین یک تنظیم ضروری برای شماست که برنامه AdMob خود را به Firebase پیوند دهید.
برنامه AdMob خود را به پروژه Firebase موجود و برنامه Firebase مربوطه پیوند دهید .
مطمئن شوید که نام بسته (Android) یا شناسه بسته (iOS) را که برای برنامه Firebase خود وارد کردهاید، وارد کنید. نام بسته یا شناسه بسته برنامه Firebase خود را در کارت برنامه های خود پیدا کنید
تنظیمات پروژه . >
مرحله 2: شناسه برنامه AdMob خود را به برنامه خود اضافه کنید
اندروید
با افزودن برچسب <meta-data>
مطابق شکل زیر ، شناسه برنامه AdMob خود را به فایل 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 App ID خود اضافه کنید.
شما می توانید این تغییر را به صورت برنامه ای انجام دهید:
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 --> <key>GADApplicationIdentifier</key> <string>ADMOB_APP_ID</string>
یا آن را در ویرایشگر لیست اموال ویرایش کنید:
مرحله 3: Google Mobile Ads SDK را اضافه کنید
از آنجایی که Google Mobile Ads C++ SDK در فضای نام firebase::gma
قرار دارد، Firebase C++ SDK را دانلود کنید و سپس آن را در فهرستی که انتخاب می کنید از حالت فشرده خارج کنید.
Firebase C++ SDK مختص پلتفرم نیست، اما به پیکربندی کتابخانه مخصوص پلتفرم نیاز دارد.
اندروید
در فایل
gradle.properties
پروژه خود، محل SDK زیپ نشده را مشخص کنید: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 Mobile Ads C++ SDK است.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 Mobile Ads C++ SDK پیکربندی شده است.
iOS
مراحل این بخش نمونه ای از نحوه افزودن Google Mobile Ads C++ SDK به پروژه iOS خود است.
CocoaPods نسخه 1 یا بالاتر را با اجرای:
sudo gem install cocoapods --pre
Google Mobile Ads pod را از SDK خارجشده اضافه کنید.
اگر قبلاً یک پادفایل ندارید ایجاد کنید:
cd YOUR_APP_DIRECTORY
pod init
به Podfile خود، غلاف مربوط به Google Mobile Ads C++ SDK را اضافه کنید:
pod 'Google-Mobile-Ads-SDK'
پاد را نصب کنید، سپس فایل
.xcworkspace
را در Xcode باز کنید.pod install
open YOUR_APP.xcworkspace
چارچوب های زیر را از Firebase C++ SDK به پروژه اضافه کنید:
-
xcframeworks/firebase.xcframework
-
xcframeworks/firebase_gma.xcframework
-
شما آماده اید! برنامه C++ شما برای استفاده از Google Mobile Ads C++ SDK پیکربندی شده است.
مرحله 4: SDK تبلیغات موبایل Google را راه اندازی کنید
قبل از بارگیری تبلیغات، SDK تبلیغات موبایل را با فراخوانی firebase::gma::Initialize()
کنید.
این فراخوانی یک firebase::Future
برمیگرداند که پس از اتمام مقداردهی اولیه (یا پس از یک بازه زمانی 30 ثانیهای) تکمیل میشود. این روش را فقط یک بار و در اسرع وقت، ایده آل هنگام راه اندازی برنامه، فراخوانی کنید.
در اینجا مثالی از نحوه فراخوانی Initialize()
آورده شده است:
اندروید
// 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.
}
}
مرحله 5: یک قالب تبلیغاتی را برای پیاده سازی در برنامه خود انتخاب کنید
AdMob فرمتهای مختلف تبلیغاتی را ارائه میکند، بنابراین میتوانید قالبی را انتخاب کنید که به بهترین وجه با تجربه کاربری برنامهتان مطابقت دارد. برای مشاهده دستورالعملهای اجرایی دقیق در اسناد AdMob، روی دکمهای برای قالب تبلیغات کلیک کنید.
بنر
تبلیغات مستطیلی که در بالا یا پایین صفحه نمایش دستگاه ظاهر می شوند
تبلیغات بنری در حالی که کاربران در حال تعامل با برنامه هستند روی صفحه می مانند و می توانند پس از مدت زمان معینی به طور خودکار بازخوانی شوند. اگر در زمینه تبلیغات موبایلی تازه کار هستید، آنها مکان خوبی برای شروع هستند.
پیاده سازی تبلیغات بنریبینابینی
تبلیغات تمام صفحه که رابط یک برنامه را تا زمانی که توسط کاربر بسته شود پوشش می دهند
تبلیغات بینابینی بهتر است در مکث های طبیعی در جریان اجرای برنامه، مانند بین سطوح یک بازی یا درست پس از اتمام یک کار، استفاده شوند.
اجرای تبلیغات بینابینیپاداش داده شد
تبلیغاتی که به کاربران برای تماشای ویدیوهای کوتاه و تعامل با تبلیغات و نظرسنجیهای قابل پخش پاداش میدهد
تبلیغات با پاداش (یا "بر اساس پاداش") می تواند به کسب درآمد از کاربران رایگان کمک کند.
سایر موضوعات مورد علاقه
مشاهده معیارهای کاربر و داده های تجزیه و تحلیل
پس از راهاندازی اولیه، کیت توسعه نرمافزار تبلیغات موبایلی بهطور خودکار شروع به ثبت رویدادهای تحلیلی و ویژگیهای کاربر از برنامه شما میکند. میتوانید این دادهها را بدون افزودن کد اضافی به برنامه خود یا پیادهسازی هر گونه تبلیغات مشاهده کنید. در اینجا می توانید این داده های تحلیلی را مشاهده کنید:
در کارت معیارهای کاربر حساب AdMob خود (داشبورد صفحه اصلی یا برنامهها )، میتوانید معیارهای انتخابشده کاربر را که از دادههای تحلیلی جمعآوریشده به دست میآیند، مانند میانگین مدت جلسه، ARPU و حفظ مشاهده کنید.
در داشبورد Analytics کنسول Firebase، میتوانید آمار و خلاصهای از معیارهای کلیدی را مشاهده کنید. اگر Firebase SDK را برای Google Analytics اضافه کنید ، همچنین میتوانید تبدیلها را برای کمپینهای تبلیغاتی علامتگذاری کنید و مخاطبان سفارشی را در کنسول Firebase ایجاد کنید .
توجه داشته باشید که برای نمایش بهتر معیارهای ARPU و ARPPU ، ممکن است بخواهید دادههای یک رویداد سفارشی تحلیلی به نام ecommerce_purchase
را در محاسبه درآمد برای این معیارها قرار دهید ( چطور یاد بگیرید ).
(اختیاری) از ویژگی های بیشتر Google Analytics و Firebase استفاده کنید
از فرصت ها و ویژگی های بیشتر برای بهبود کسب درآمد از برنامه و تعامل کاربر استفاده کنید:
افزودن و استفاده از Firebase SDK برای Google Analytics
ثبت رویداد سفارشی را در برنامه خود پیاده کنید.
تبدیل ها را برای کمپین های تبلیغاتی سفارشی علامت گذاری کنید.
دادههای رویداد
ecommerce_purchase
را در محاسبه درآمد برای معیارهای ARPU و ARPPU لحاظ کنید.
برای کسب اطلاعات بیشتر، از راهنمای استفاده از Google Analytics و Firebase با برنامههای AdMob دیدن کنید.
از سایر محصولات Firebase در برنامه خود استفاده کنید
پس از افزودن Firebase SDK برای Google Analytics، از سایر محصولات Firebase برای بهینه سازی تبلیغات در برنامه خود استفاده کنید.
Remote Config شما را قادر می سازد تا رفتار و ظاهر برنامه خود را بدون انتشار به روز رسانی برنامه، بدون هیچ هزینه ای، برای کاربران فعال روزانه نامحدود تغییر دهید.
تست A/B به شما این قدرت را میدهد که تغییرات را در UI، ویژگیها یا کمپینهای تعامل برنامهتان آزمایش کنید تا بدانید که آیا این تغییرات بر معیارهای کلیدی شما (مانند درآمد و حفظ) تأثیر میگذارند یا نه، قبل از انتشار گسترده تغییرات.