این راهنما برای ناشرانی است که میخواهند از یک برنامه ++C با AdMob و بدون استفاده از Firebase کسب درآمد کنند. اگر قصد دارید Firebase را در برنامه خود بگنجانید - یا اگر در حال بررسی آن هستید - به جای آن، نسخه AdMob with Firebase این راهنما را ببینید.
ادغام SDK ++C تبلیغات موبایل گوگل در یک برنامه، اولین قدم برای نمایش تبلیغات و کسب درآمد است. پس از ادغام SDK، میتوانید یک قالب تبلیغاتی مانند بینابینی یا پاداشی را انتخاب کنید و مراحل پیادهسازی آن را دنبال کنید.
کیت توسعه نرمافزار C++ برای تبلیغات موبایل گوگل، SDKهای iOS و اندروید تبلیغات موبایل گوگل را در بر میگیرد و فقط در این پلتفرمها موجود است. کیت توسعه نرمافزار C++ برای تبلیغات موبایل گوگل از ساختارهای Firebase C++ برای پشتیبانی از عملیات ناهمزمان استفاده میکند، بنابراین در فضای نام firebase::gma قرار دارد.
اگر این اولین باری است که این راهنما را مطالعه میکنید، توصیه میکنیم برنامه تست تبلیغات موبایلی گوگل (Google Mobile Ads C++) را دانلود و با استفاده از آن، مراحل را دنبال کنید.
پیشنیازها
اندروید
- از اندروید استودیو ۳.۲ یا بالاتر استفاده کنید
- مطمئن شوید که فایل ساخت برنامه شما از مقادیر زیر استفاده میکند:
-
minSdkVersionاز ۱۶ یا بالاتر - یک
compileSdkVersionبا نسخه ۲۸ یا بالاتر
-
آیاواس
- از Xcode نسخه ۱۳ یا بالاتر استفاده کنید
- هدف iOS 10.0 یا بالاتر
برنامه خود را در حساب AdMob خود تنظیم کنید
با انجام مراحل زیر، برنامه خود را به عنوان یک برنامه AdMob ثبت کنید:
وارد حساب کاربری AdMob شوید یا ثبت نام کنید .
برنامه خود را در AdMob ثبت کنید . این مرحله یک برنامه AdMob با یک شناسه برنامه AdMob منحصر به فرد ایجاد میکند که بعداً در این راهنما مورد نیاز است.
نصب SDK مربوط به تبلیغات موبایلی گوگل (Google Mobile Ads C++)
از آنجایی که SDK مربوط به تبلیغات موبایل گوگل (Google Mobile Ads C++ SDK) در فضای نام firebase::gma قرار دارد، SDK مربوط به Firebase C++ را دانلود کنید و سپس آن را در یک دایرکتوری دلخواه از حالت فشرده خارج کنید.
کیت توسعه نرمافزاری Firebase C++ مختص پلتفرم خاصی نیست، اما به پیکربندیهای کتابخانهای مختص پلتفرم نیاز دارد.
اندروید
ما استفاده از CMake را توصیه میکنیم، اما میتوانید دستورالعملهای مربوط به ndk-build را در راهنمای عمومی شروع به کار Firebase C++ SDK برای پیوند دادن libfirebase_app.a و libfirebase_gma.a به برنامه خود بیابید.
در فایل
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}")برنامه خود را همگامسازی کنید تا مطمئن شوید که همه وابستگیها نسخههای لازم را دارند.
آیاواس
مراحل این بخش نمونهای از نحوه افزودن SDK ++C تبلیغات موبایلی گوگل به پروژه iOS شما است.
با اجرای دستور زیر، CocoaPods نسخه ۱ یا بالاتر را دریافت کنید:
sudo gem install cocoapods --preپوشه تبلیغات موبایلی گوگل را از SDK از حالت فشرده خارج شده اضافه کنید.
اگر از قبل یک Podfile ندارید، آن را ایجاد کنید:
cd APP_DIRECTORYpod initبه Podfile خود، pod های مربوط به Google Mobile Ads C++ SDK، Google User Messaging Platform SDK و Minimal Firebase core SDK (مورد نیاز GMA C++ SDK) را اضافه کنید:
pod 'Firebase/CoreOnly' pod 'Google-Mobile-Ads-SDK' pod 'GoogleUserMessagingPlatform'پادها را نصب کنید، سپس فایل
.xcworkspaceرا در Xcode باز کنید.pod installopen APP.xcworkspaceفریمورکهای زیر را از Firebase C++ SDK به پروژه اضافه کنید:
-
xcframeworks/firebase.xcframework -
xcframeworks/firebase_gma.xcframework
-
همه چیز آماده است! برنامه C++ شما طوری پیکربندی شده است که از SDK C++ تبلیغات موبایل گوگل بدون هیچ سرویس Firebase دیگری استفاده کند.
شناسه برنامه AdMob برنامه خود را پیکربندی کنید
اندروید
مرحله ۳ از پیکربندی برنامه خود را همانطور که در راهنمای Android SDK تبلیغات موبایل توضیح داده شده است، دنبال کنید و سپس به این صفحه برگردید.
آیاواس
مرحلهی «بهروزرسانی اطلاعات.plist» را همانطور که در راهنمای Mobile Ads SDK iOS توضیح داده شده است، دنبال کنید و سپس به این صفحه برگردید.
مقداردهی اولیه SDK تبلیغات موبایلی گوگل
قبل از بارگذاری تبلیغات، برنامه خود را وادار کنید تا SDK مربوط به تبلیغات موبایل گوگل (Google Mobile Ads C++ SDK) را با فراخوانی firebase::gma::Initialize() مقداردهی اولیه کند. این کار SDK را مقداردهی اولیه کرده و پس از اتمام مقداردهی اولیه (یا پس از یک وقفه 30 ثانیهای)، یک firebase::Future را تکمیل میکند. این کار فقط یک بار، در حالت ایدهآل، در هنگام اجرای برنامه، باید انجام شود.
تبلیغات ممکن است توسط SDK C++ تبلیغات موبایل گوگل یا SDK های شریک واسطه، هنگام فراخوانی Initialize() از قبل بارگیری شوند. اگر نیاز به کسب رضایت از کاربران در منطقه اقتصادی اروپا (EEA) دارید، هرگونه پرچم مخصوص درخواست (مانند tag_for_child_directed_treatment یا tag_for_under_age_of_consent ) را تنظیم کنید، یا قبل از بارگیری تبلیغات، اقدامی انجام دهید، قبل از مقداردهی اولیه SDK C++ تبلیغات موبایل گوگل، با فراخوانی firebase::gma::SetRequestConfiguration() مطمئن شوید که این کار را انجام میدهید. برای اطلاعات بیشتر به راهنمای هدفگیری ما مراجعه کنید.
در اینجا مثالی از نحوه فراخوانی 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.
}
آیاواس
// 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 برمیگردانند، یک متد "last result" متناظر دارند که برنامهها میتوانند از آن برای بازیابی جدیدترین Future برای یک اقدام مشخص استفاده کنند. برای مثال، firebase::gma::Initialize() یک متد متناظر به نام firebase::gma::InitializeLastResult() دارد که یک Future برمیگرداند که برنامه شما میتواند از آن برای بررسی وضعیت آخرین فراخوانی firebase::gma::Initialize() استفاده کند.
اگر وضعیت Future کامل شده و کد خطای آن firebase::gma::kAdErrorCodeNone باشد، عملیات با موفقیت انجام شده است.
همچنین میتوانید callbackهایی را ثبت کنید که هنگام تکمیل یک Future فراخوانی شوند. در برخی موارد، callback در یک thread متفاوت اجرا میشود، بنابراین مطمئن شوید که کد شما thread-safe است. این قطعه کد از یک اشارهگر تابع برای callback استفاده میکند:
// 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.
}
}
انتخاب قالب تبلیغ
اکنون کیت توسعه نرمافزار C++ تبلیغات موبایل گوگل (Google Mobile Ads C++ SDK) وارد شده است و شما آماده پیادهسازی یک تبلیغ هستید. AdMob فرمتهای تبلیغاتی مختلفی را ارائه میدهد، بنابراین میتوانید فرمتی را انتخاب کنید که به بهترین وجه با تجربه کاربری برنامه شما مطابقت داشته باشد.
بنر
تبلیغات مستطیلی که در بالا یا پایین صفحه دستگاه ظاهر میشوند. تبلیغات بنری در حالی که کاربران در حال تعامل با برنامه هستند، روی صفحه باقی میمانند و میتوانند پس از مدت زمان مشخصی به طور خودکار بهروزرسانی شوند. اگر در تبلیغات موبایل تازهکار هستید، آنها مکان بسیار خوبی برای شروع هستند.
بینابینی
تبلیغات تمام صفحه که رابط کاربری یک برنامه را تا زمانی که توسط کاربر بسته شود، میپوشانند. بهترین زمان استفاده از آنها در مکثهای طبیعی در جریان اجرای برنامه، مانند بین مراحل یک بازی یا درست پس از اتمام یک کار است.
تبلیغات بینابینی را پیادهسازی کنید
پاداش داده شده
تبلیغاتی که به کاربران در ازای تماشای ویدیوهای کوتاه و تعامل با تبلیغات و نظرسنجیهای قابل پخش پاداش میدهند. برای کسب درآمد از برنامههای رایگان استفاده میشود.