با AdMob در پروژه C++ خود شروع کنید

استفاده از SDK های iOS و Android از AdMob را در نظر بگیرید.


این راهنمای شروع سریع برای ناشران و توسعه‌دهندگانی است که می‌خواهند از AdMob برای کسب درآمد از برنامه‌ای که با Firebase ساخته شده است استفاده کنند. اگر قصد ندارید Firebase را در برنامه خود بگنجانید، به جای آن از راهنمای مستقل AdMob دیدن کنید.

اگر هنوز این کار را نکرده‌اید، در مورد تمام مزایای استفاده همزمان از AdMob ، Firebase و Google Analytics کسب کنید.

اگر این اولین باری است که این راهنما را مطالعه می‌کنید، توصیه می‌کنیم برنامه تست Google Mobile Ads C++ SDK را دانلود و با استفاده از آن پیش بروید.

قبل از اینکه شروع کنی

  • اگر از قبل پروژه Firebase و برنامه Firebase ندارید، راهنمای شروع به کار با Firebase را دنبال کنید: Firebase را به پروژه C++ خود اضافه کنید .

  • مطمئن شوید که Google Analytics در پروژه فایربیس شما فعال است:

    • اگر در حال ایجاد یک پروژه جدید Firebase هستید، در طول فرآیند ایجاد پروژه، Google Analytics فعال کنید.

    • اگر یک پروژه Firebase دارید که Google Analytics در آن فعال نیست، می‌توانید Google Analytics از تب Integrations در پروژه خود فعال کنید. > تنظیمات پروژه .

مرحله ۱: برنامه خود را در حساب AdMob خود تنظیم کنید

  1. هر نوع پلتفرم برنامه خود را به عنوان یک برنامه AdMob ثبت کنید.

    1. وارد حساب کاربری AdMob شوید یا ثبت نام کنید .

    2. هر نوع پلتفرم برنامه خود را در AdMob ثبت کنید . این مرحله یک برنامه AdMob با یک شناسه برنامه AdMob منحصر به فرد ایجاد می‌کند که بعداً در این راهنما به آن نیاز خواهید داشت.

    از شما خواسته می‌شود که SDK Mobile Ads را به برنامه خود اضافه کنید. دستورالعمل‌های دقیق برای این کار را بعداً در این راهنما خواهید یافت.

  2. هر یک از برنامه‌های AdMob خود را به برنامه Firebase مربوطه پیوند دهید.

    این مرحله اختیاری است اما اکیداً توصیه می‌شود. درباره مزایای فعال کردن معیارهای کاربر و پیوند دادن برنامه‌های AdMob خود به Firebase بیشتر بدانید.

    برای هر نوع پلتفرم، دو مرحله زیر را در داشبورد برنامه‌های حساب AdMob خود انجام دهید:

    1. معیارهای کاربر را فعال کنید تا AdMob بتواند داده‌های تحلیلی گزینش‌شده را در حساب AdMob شما پردازش و نمایش دهد. همچنین این یک تنظیم ضروری برای پیوند دادن برنامه AdMob خود به Firebase است.

    2. برنامه AdMob خود را به پروژه Firebase موجود و برنامه Firebase مربوطه پیوند دهید .

      مطمئن شوید که همان نام بسته (Android) یا شناسه بسته (iOS) را که برای برنامه Firebase خود وارد کرده‌اید، وارد می‌کنید. نام بسته یا شناسه بسته برنامه Firebase خود را در کارت برنامه‌های خود پیدا کنید. > تنظیمات پروژه .

مرحله ۲: شناسه برنامه AdMob خود را به برنامه خود اضافه کنید

اندروید

شناسه برنامه 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>

آی‌او‌اس

در فایل Info.plist برنامه خود، یک کلید GADApplicationIdentifier با مقدار رشته‌ای از شناسه برنامه AdMob خود اضافه کنید.

شما می‌توانید این تغییر را به صورت برنامه‌نویسی شده انجام دهید:

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

یا، آن را در ویرایشگر لیست ویژگی‌ها ویرایش کنید:

ویرایشگر لیست املاک

مرحله ۳: اضافه کردن SDK تبلیغات موبایلی گوگل

از آنجایی که SDK مربوط به تبلیغات موبایل گوگل (Google Mobile Ads C++ SDK) در فضای نام firebase::gma قرار دارد، SDK مربوط به Firebase C++ را دانلود کنید و سپس آن را در یک دایرکتوری دلخواه از حالت فشرده خارج کنید.

کیت توسعه نرم‌افزاری Firebase C++ مختص پلتفرم خاصی نیست، اما به پیکربندی‌های کتابخانه‌ای مختص پلتفرم نیاز دارد.

اندروید

  1. در فایل gradle.properties پروژه خود، محل SDK از حالت فشرده خارج شده را مشخص کنید:

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. به فایل 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"
  3. به فایل 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
    }
  4. به فایل 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}")
  5. برنامه خود را همگام‌سازی کنید تا مطمئن شوید که همه وابستگی‌ها نسخه‌های لازم را دارند.

همه چیز آماده است! برنامه C++ شما برای استفاده از Google Mobile Ads C++ SDK پیکربندی شده است.

آی‌او‌اس

مراحل این بخش نمونه‌ای از نحوه افزودن SDK ++C تبلیغات موبایلی گوگل به پروژه iOS شما است.

  1. با اجرای دستور زیر، CocoaPods نسخه ۱ یا بالاتر را دریافت کنید:

    sudo gem install cocoapods --pre
  2. افزونه Google Mobile Ads را از SDK خارج شده از حالت فشرده اضافه کنید.

    1. اگر از قبل یک Podfile ندارید، آن را ایجاد کنید:

      cd YOUR_APP_DIRECTORY
      pod init
    2. به Podfile خود، Pod مربوط به Google Mobile Ads C++ SDK را اضافه کنید:

      pod 'Google-Mobile-Ads-SDK'
    3. پاد را نصب کنید، سپس فایل .xcworkspace را در Xcode باز کنید.

      pod install
      open YOUR_APP.xcworkspace
    4. فریم‌ورک‌های زیر را از Firebase C++ SDK به پروژه اضافه کنید:

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

همه چیز آماده است! برنامه C++ شما برای استفاده از Google Mobile Ads C++ SDK پیکربندی شده است.

مرحله ۴: مقداردهی اولیه SDK تبلیغات موبایلی گوگل

قبل از بارگذاری تبلیغات، SDK Mobile Ads را با فراخوانی 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.
}

آی‌او‌اس

// 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.
  }
}

مرحله ۵: یک قالب تبلیغاتی برای پیاده‌سازی در اپلیکیشن خود انتخاب کنید

ادموب فرمت‌های تبلیغاتی مختلفی ارائه می‌دهد، بنابراین می‌توانید فرمتی را انتخاب کنید که به بهترین شکل با تجربه کاربری برنامه شما مطابقت داشته باشد. برای مشاهده دستورالعمل‌های دقیق پیاده‌سازی در مستندات AdMob روی دکمه مربوط به فرمت تبلیغات کلیک کنید.

تبلیغات مستطیلی که در بالا یا پایین صفحه دستگاه ظاهر می‌شوند

تبلیغات بنری در حین تعامل کاربران با برنامه، روی صفحه نمایش باقی می‌مانند و می‌توانند پس از مدت زمان مشخصی به طور خودکار به‌روزرسانی شوند. اگر در تبلیغات موبایلی تازه‌کار هستید، آنها نقطه شروع بسیار خوبی هستند.

اجرای تبلیغات بنری

بینابینی

تبلیغات تمام صفحه که رابط کاربری یک برنامه را تا زمان بسته شدن توسط کاربر پوشش می‌دهند

تبلیغات بینابینی بهتر است در مکث‌های طبیعی در جریان اجرای یک برنامه، مانند بین مراحل یک بازی یا درست پس از اتمام یک کار، استفاده شوند.

تبلیغات بینابینی را پیاده‌سازی کنید

پاداش داده شده

تبلیغاتی که به کاربران برای تماشای ویدیوهای کوتاه و تعامل با تبلیغات و نظرسنجی‌های قابل پخش پاداش می‌دهند

تبلیغات جایزه‌دار (یا «مبتنی بر جایزه») می‌توانند به کسب درآمد از کاربران بازی‌های رایگان کمک کنند.

تبلیغات جایزه‌دار (Rewarded Ads) را پیاده‌سازی کنید

سایر موضوعات مورد علاقه

مشاهده معیارهای کاربر و داده‌های تحلیلی

پس از مقداردهی اولیه، SDK Mobile Ads به طور خودکار شروع به ثبت رویدادهای تحلیلی و ویژگی‌های کاربر از برنامه شما می‌کند. می‌توانید این داده‌ها را بدون اضافه کردن هیچ کد اضافی به برنامه خود یا پیاده‌سازی هیچ تبلیغاتی مشاهده کنید. در اینجا می‌توانید این داده‌های تحلیلی را مشاهده کنید:

توجه داشته باشید که برای نمایش بهتر معیارهای ARPU و ARPPU ، ممکن است بخواهید داده‌های یک رویداد تحلیلی سفارشی به نام ecommerce_purchase را در محاسبه درآمد برای این معیارها لحاظ کنید ( نحوه انجام آن را بیاموزید ).

(اختیاری) از ویژگی‌های بیشتر Google Analytics و فایربیس استفاده کنید

از فرصت‌ها و ویژگی‌های بیشتر برای بهبود کسب درآمد از اپلیکیشن و تعامل کاربر استفاده کنید:

  • اضافه کردن و استفاده از Firebase SDK برای Google Analytics

    برای کسب اطلاعات بیشتر، به راهنمای استفاده از Google Analytics و فایربیس با برنامه‌های AdMob مراجعه کنید.

  • از سایر محصولات Firebase در برنامه خود استفاده کنید

    پس از افزودن Firebase SDK برای Google Analytics ، از سایر محصولات Firebase برای بهینه‌سازی تبلیغات در برنامه خود استفاده کنید.

    • Remote Config شما را قادر می‌سازد تا رفتار و ظاهر برنامه خود را بدون انتشار به‌روزرسانی برنامه تغییر دهید.

    • A/B Testing به شما این قدرت را می‌دهد که تغییرات در رابط کاربری، ویژگی‌ها یا کمپین‌های تعامل برنامه خود را آزمایش کنید تا ببینید آیا آنها قبل از اعمال تغییرات به طور گسترده، بر معیارهای کلیدی شما (مانند درآمد و حفظ مشتری) تأثیر می‌گذارند یا خیر.

،

استفاده از SDK های iOS و Android از AdMob را در نظر بگیرید.


این راهنمای شروع سریع برای ناشران و توسعه‌دهندگانی است که می‌خواهند از AdMob برای کسب درآمد از برنامه‌ای که با Firebase ساخته شده است استفاده کنند. اگر قصد ندارید Firebase را در برنامه خود بگنجانید، به جای آن از راهنمای مستقل AdMob دیدن کنید.

اگر هنوز این کار را نکرده‌اید، در مورد تمام مزایای استفاده همزمان از AdMob ، Firebase و Google Analytics کسب کنید.

اگر این اولین باری است که این راهنما را مطالعه می‌کنید، توصیه می‌کنیم برنامه تست Google Mobile Ads C++ SDK را دانلود و با استفاده از آن پیش بروید.

قبل از اینکه شروع کنی

  • اگر از قبل پروژه Firebase و برنامه Firebase ندارید، راهنمای شروع به کار با Firebase را دنبال کنید: Firebase را به پروژه C++ خود اضافه کنید .

  • مطمئن شوید که Google Analytics در پروژه فایربیس شما فعال است:

    • اگر در حال ایجاد یک پروژه جدید Firebase هستید، در طول فرآیند ایجاد پروژه، Google Analytics فعال کنید.

    • اگر یک پروژه Firebase دارید که Google Analytics در آن فعال نیست، می‌توانید Google Analytics از تب Integrations در پروژه خود فعال کنید. > تنظیمات پروژه .

مرحله ۱: برنامه خود را در حساب AdMob خود تنظیم کنید

  1. هر نوع پلتفرم برنامه خود را به عنوان یک برنامه AdMob ثبت کنید.

    1. وارد حساب کاربری AdMob شوید یا ثبت نام کنید .

    2. هر نوع پلتفرم برنامه خود را در AdMob ثبت کنید . این مرحله یک برنامه AdMob با یک شناسه برنامه AdMob منحصر به فرد ایجاد می‌کند که بعداً در این راهنما به آن نیاز خواهید داشت.

    از شما خواسته می‌شود که SDK Mobile Ads را به برنامه خود اضافه کنید. دستورالعمل‌های دقیق برای این کار را بعداً در این راهنما خواهید یافت.

  2. هر یک از برنامه‌های AdMob خود را به برنامه Firebase مربوطه پیوند دهید.

    این مرحله اختیاری است اما اکیداً توصیه می‌شود. درباره مزایای فعال کردن معیارهای کاربر و پیوند دادن برنامه‌های AdMob خود به Firebase بیشتر بدانید.

    برای هر نوع پلتفرم، دو مرحله زیر را در داشبورد برنامه‌های حساب AdMob خود انجام دهید:

    1. معیارهای کاربر را فعال کنید تا AdMob بتواند داده‌های تحلیلی گزینش‌شده را در حساب AdMob شما پردازش و نمایش دهد. همچنین این یک تنظیم ضروری برای پیوند دادن برنامه AdMob خود به Firebase است.

    2. برنامه AdMob خود را به پروژه Firebase موجود و برنامه Firebase مربوطه پیوند دهید .

      مطمئن شوید که همان نام بسته (Android) یا شناسه بسته (iOS) را که برای برنامه Firebase خود وارد کرده‌اید، وارد می‌کنید. نام بسته یا شناسه بسته برنامه Firebase خود را در کارت برنامه‌های خود پیدا کنید. > تنظیمات پروژه .

مرحله ۲: شناسه برنامه AdMob خود را به برنامه خود اضافه کنید

اندروید

شناسه برنامه 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>

آی‌او‌اس

در فایل Info.plist برنامه خود، یک کلید GADApplicationIdentifier با مقدار رشته‌ای از شناسه برنامه AdMob خود اضافه کنید.

شما می‌توانید این تغییر را به صورت برنامه‌نویسی شده انجام دهید:

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

یا، آن را در ویرایشگر لیست ویژگی‌ها ویرایش کنید:

ویرایشگر لیست املاک

مرحله ۳: اضافه کردن SDK تبلیغات موبایلی گوگل

از آنجایی که SDK مربوط به تبلیغات موبایل گوگل (Google Mobile Ads C++ SDK) در فضای نام firebase::gma قرار دارد، SDK مربوط به Firebase C++ را دانلود کنید و سپس آن را در یک دایرکتوری دلخواه از حالت فشرده خارج کنید.

کیت توسعه نرم‌افزاری Firebase C++ مختص پلتفرم خاصی نیست، اما به پیکربندی‌های کتابخانه‌ای مختص پلتفرم نیاز دارد.

اندروید

  1. در فایل gradle.properties پروژه خود، محل SDK از حالت فشرده خارج شده را مشخص کنید:

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. به فایل 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"
  3. به فایل 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
    }
  4. به فایل 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}")
  5. برنامه خود را همگام‌سازی کنید تا مطمئن شوید که همه وابستگی‌ها نسخه‌های لازم را دارند.

همه چیز آماده است! برنامه C++ شما برای استفاده از Google Mobile Ads C++ SDK پیکربندی شده است.

آی‌او‌اس

مراحل این بخش نمونه‌ای از نحوه افزودن SDK ++C تبلیغات موبایلی گوگل به پروژه iOS شما است.

  1. با اجرای دستور زیر، CocoaPods نسخه ۱ یا بالاتر را دریافت کنید:

    sudo gem install cocoapods --pre
  2. افزونه Google Mobile Ads را از SDK خارج شده از حالت فشرده اضافه کنید.

    1. اگر از قبل یک Podfile ندارید، آن را ایجاد کنید:

      cd YOUR_APP_DIRECTORY
      pod init
    2. به Podfile خود، Pod مربوط به Google Mobile Ads C++ SDK را اضافه کنید:

      pod 'Google-Mobile-Ads-SDK'
    3. پاد را نصب کنید، سپس فایل .xcworkspace را در Xcode باز کنید.

      pod install
      open YOUR_APP.xcworkspace
    4. فریم‌ورک‌های زیر را از Firebase C++ SDK به پروژه اضافه کنید:

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

همه چیز آماده است! برنامه C++ شما برای استفاده از Google Mobile Ads C++ SDK پیکربندی شده است.

مرحله ۴: مقداردهی اولیه SDK تبلیغات موبایلی گوگل

قبل از بارگذاری تبلیغات، SDK Mobile Ads را با فراخوانی 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.
}

آی‌او‌اس

// 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.
  }
}

مرحله ۵: یک قالب تبلیغاتی برای پیاده‌سازی در اپلیکیشن خود انتخاب کنید

ادموب فرمت‌های تبلیغاتی مختلفی ارائه می‌دهد، بنابراین می‌توانید فرمتی را انتخاب کنید که به بهترین شکل با تجربه کاربری برنامه شما مطابقت داشته باشد. برای مشاهده دستورالعمل‌های دقیق پیاده‌سازی در مستندات AdMob روی دکمه مربوط به فرمت تبلیغات کلیک کنید.

تبلیغات مستطیلی که در بالا یا پایین صفحه دستگاه ظاهر می‌شوند

تبلیغات بنری در حین تعامل کاربران با برنامه، روی صفحه نمایش باقی می‌مانند و می‌توانند پس از مدت زمان مشخصی به طور خودکار به‌روزرسانی شوند. اگر در تبلیغات موبایلی تازه‌کار هستید، آنها نقطه شروع بسیار خوبی هستند.

اجرای تبلیغات بنری

بینابینی

تبلیغات تمام صفحه که رابط کاربری یک برنامه را تا زمان بسته شدن توسط کاربر پوشش می‌دهند

تبلیغات بینابینی بهتر است در مکث‌های طبیعی در جریان اجرای یک برنامه، مانند بین مراحل یک بازی یا درست پس از اتمام یک کار، استفاده شوند.

تبلیغات بینابینی را پیاده‌سازی کنید

پاداش داده شده

تبلیغاتی که به کاربران برای تماشای ویدیوهای کوتاه و تعامل با تبلیغات و نظرسنجی‌های قابل پخش پاداش می‌دهند

تبلیغات جایزه‌دار (یا «مبتنی بر جایزه») می‌توانند به کسب درآمد از کاربران بازی‌های رایگان کمک کنند.

تبلیغات جایزه‌دار (Rewarded Ads) را پیاده‌سازی کنید

سایر موضوعات مورد علاقه

مشاهده معیارهای کاربر و داده‌های تحلیلی

پس از مقداردهی اولیه، SDK Mobile Ads به طور خودکار شروع به ثبت رویدادهای تحلیلی و ویژگی‌های کاربر از برنامه شما می‌کند. می‌توانید این داده‌ها را بدون اضافه کردن هیچ کد اضافی به برنامه خود یا پیاده‌سازی هیچ تبلیغاتی مشاهده کنید. در اینجا می‌توانید این داده‌های تحلیلی را مشاهده کنید:

توجه داشته باشید که برای نمایش بهتر معیارهای ARPU و ARPPU ، ممکن است بخواهید داده‌های یک رویداد تحلیلی سفارشی به نام ecommerce_purchase را در محاسبه درآمد برای این معیارها لحاظ کنید ( نحوه انجام آن را بیاموزید ).

(اختیاری) از ویژگی‌های بیشتر Google Analytics و فایربیس استفاده کنید

از فرصت‌ها و ویژگی‌های بیشتر برای بهبود کسب درآمد از اپلیکیشن و تعامل کاربر استفاده کنید:

  • اضافه کردن و استفاده از Firebase SDK برای Google Analytics

    برای کسب اطلاعات بیشتر، به راهنمای استفاده از Google Analytics و فایربیس با برنامه‌های AdMob مراجعه کنید.

  • از سایر محصولات Firebase در برنامه خود استفاده کنید

    پس از افزودن Firebase SDK برای Google Analytics ، از سایر محصولات Firebase برای بهینه‌سازی تبلیغات در برنامه خود استفاده کنید.

    • Remote Config شما را قادر می‌سازد تا رفتار و ظاهر برنامه خود را بدون انتشار به‌روزرسانی برنامه تغییر دهید.

    • A/B Testing به شما این قدرت را می‌دهد که تغییرات در رابط کاربری، ویژگی‌ها یا کمپین‌های تعامل برنامه خود را آزمایش کنید تا ببینید آیا آنها قبل از اعمال تغییرات به طور گسترده، بر معیارهای کلیدی شما (مانند درآمد و حفظ مشتری) تأثیر می‌گذارند یا خیر.

،

استفاده از SDK های iOS و Android از AdMob را در نظر بگیرید.


این راهنمای شروع سریع برای ناشران و توسعه‌دهندگانی است که می‌خواهند از AdMob برای کسب درآمد از برنامه‌ای که با Firebase ساخته شده است استفاده کنند. اگر قصد ندارید Firebase را در برنامه خود بگنجانید، به جای آن از راهنمای مستقل AdMob دیدن کنید.

اگر هنوز این کار را نکرده‌اید، در مورد تمام مزایای استفاده همزمان از AdMob ، Firebase و Google Analytics کسب کنید.

اگر این اولین باری است که این راهنما را مطالعه می‌کنید، توصیه می‌کنیم برنامه تست Google Mobile Ads C++ SDK را دانلود و با استفاده از آن پیش بروید.

قبل از اینکه شروع کنی

  • اگر از قبل پروژه Firebase و برنامه Firebase ندارید، راهنمای شروع به کار با Firebase را دنبال کنید: Firebase را به پروژه C++ خود اضافه کنید .

  • مطمئن شوید که Google Analytics در پروژه فایربیس شما فعال است:

    • اگر در حال ایجاد یک پروژه جدید Firebase هستید، در طول فرآیند ایجاد پروژه، Google Analytics فعال کنید.

    • اگر یک پروژه Firebase دارید که Google Analytics در آن فعال نیست، می‌توانید Google Analytics از تب Integrations در پروژه خود فعال کنید. > تنظیمات پروژه .

مرحله ۱: برنامه خود را در حساب AdMob خود تنظیم کنید

  1. هر نوع پلتفرم برنامه خود را به عنوان یک برنامه AdMob ثبت کنید.

    1. وارد حساب کاربری AdMob شوید یا ثبت نام کنید .

    2. هر نوع پلتفرم برنامه خود را در AdMob ثبت کنید . این مرحله یک برنامه AdMob با یک شناسه برنامه AdMob منحصر به فرد ایجاد می‌کند که بعداً در این راهنما به آن نیاز خواهید داشت.

    از شما خواسته می‌شود که SDK Mobile Ads را به برنامه خود اضافه کنید. دستورالعمل‌های دقیق برای این کار را بعداً در این راهنما خواهید یافت.

  2. هر یک از برنامه‌های AdMob خود را به برنامه Firebase مربوطه پیوند دهید.

    این مرحله اختیاری است اما اکیداً توصیه می‌شود. درباره مزایای فعال کردن معیارهای کاربر و پیوند دادن برنامه‌های AdMob خود به Firebase بیشتر بدانید.

    برای هر نوع پلتفرم، دو مرحله زیر را در داشبورد برنامه‌های حساب AdMob خود انجام دهید:

    1. معیارهای کاربر را فعال کنید تا AdMob بتواند داده‌های تحلیلی گزینش‌شده را در حساب AdMob شما پردازش و نمایش دهد. همچنین این یک تنظیم ضروری برای پیوند دادن برنامه AdMob خود به Firebase است.

    2. برنامه AdMob خود را به پروژه Firebase موجود و برنامه Firebase مربوطه پیوند دهید .

      مطمئن شوید که همان نام بسته (Android) یا شناسه بسته (iOS) را که برای برنامه Firebase خود وارد کرده‌اید، وارد می‌کنید. نام بسته یا شناسه بسته برنامه Firebase خود را در کارت برنامه‌های خود پیدا کنید. > تنظیمات پروژه .

مرحله ۲: شناسه برنامه AdMob خود را به برنامه خود اضافه کنید

اندروید

شناسه برنامه 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>

آی‌او‌اس

در فایل Info.plist برنامه خود، یک کلید GADApplicationIdentifier با مقدار رشته‌ای از شناسه برنامه AdMob خود اضافه کنید.

شما می‌توانید این تغییر را به صورت برنامه‌نویسی شده انجام دهید:

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

یا، آن را در ویرایشگر لیست ویژگی‌ها ویرایش کنید:

ویرایشگر لیست املاک

مرحله ۳: اضافه کردن SDK تبلیغات موبایلی گوگل

از آنجایی که SDK مربوط به تبلیغات موبایل گوگل (Google Mobile Ads C++ SDK) در فضای نام firebase::gma قرار دارد، SDK مربوط به Firebase C++ را دانلود کنید و سپس آن را در یک دایرکتوری دلخواه از حالت فشرده خارج کنید.

کیت توسعه نرم‌افزاری Firebase C++ مختص پلتفرم خاصی نیست، اما به پیکربندی‌های کتابخانه‌ای مختص پلتفرم نیاز دارد.

اندروید

  1. در فایل gradle.properties پروژه خود، محل SDK از حالت فشرده خارج شده را مشخص کنید:

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. به فایل 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"
  3. به فایل 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
    }
  4. به فایل 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}")
  5. برنامه خود را همگام‌سازی کنید تا مطمئن شوید که همه وابستگی‌ها نسخه‌های لازم را دارند.

همه چیز آماده است! برنامه C++ شما برای استفاده از Google Mobile Ads C++ SDK پیکربندی شده است.

آی‌او‌اس

مراحل این بخش نمونه‌ای از نحوه افزودن SDK ++C تبلیغات موبایلی گوگل به پروژه iOS شما است.

  1. با اجرای دستور زیر، CocoaPods نسخه ۱ یا بالاتر را دریافت کنید:

    sudo gem install cocoapods --pre
  2. افزونه Google Mobile Ads را از SDK خارج شده از حالت فشرده اضافه کنید.

    1. اگر از قبل یک Podfile ندارید، آن را ایجاد کنید:

      cd YOUR_APP_DIRECTORY
      pod init
    2. به Podfile خود، Pod مربوط به Google Mobile Ads C++ SDK را اضافه کنید:

      pod 'Google-Mobile-Ads-SDK'
    3. پاد را نصب کنید، سپس فایل .xcworkspace را در Xcode باز کنید.

      pod install
      open YOUR_APP.xcworkspace
    4. فریم‌ورک‌های زیر را از Firebase C++ SDK به پروژه اضافه کنید:

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

همه چیز آماده است! برنامه C++ شما برای استفاده از Google Mobile Ads C++ SDK پیکربندی شده است.

مرحله ۴: مقداردهی اولیه SDK تبلیغات موبایلی گوگل

قبل از بارگذاری تبلیغات، SDK Mobile Ads را با فراخوانی 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.
}

آی‌او‌اس

// 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.
  }
}

مرحله ۵: یک قالب تبلیغاتی برای پیاده‌سازی در اپلیکیشن خود انتخاب کنید

ادموب فرمت‌های تبلیغاتی مختلفی ارائه می‌دهد، بنابراین می‌توانید فرمتی را انتخاب کنید که به بهترین شکل با تجربه کاربری برنامه شما مطابقت داشته باشد. برای مشاهده دستورالعمل‌های دقیق پیاده‌سازی در مستندات AdMob روی دکمه مربوط به فرمت تبلیغات کلیک کنید.

تبلیغات مستطیلی که در بالا یا پایین صفحه دستگاه ظاهر می‌شوند

تبلیغات بنری در حین تعامل کاربران با برنامه، روی صفحه نمایش باقی می‌مانند و می‌توانند پس از مدت زمان مشخصی به طور خودکار به‌روزرسانی شوند. اگر در تبلیغات موبایلی تازه‌کار هستید، آنها نقطه شروع بسیار خوبی هستند.

اجرای تبلیغات بنری

بینابینی

تبلیغات تمام صفحه که رابط کاربری یک برنامه را تا زمان بسته شدن توسط کاربر پوشش می‌دهند

تبلیغات بینابینی بهتر است در مکث‌های طبیعی در جریان اجرای یک برنامه، مانند بین مراحل یک بازی یا درست پس از اتمام یک کار، استفاده شوند.

تبلیغات بینابینی را پیاده‌سازی کنید

پاداش داده شده

تبلیغاتی که به کاربران برای تماشای ویدیوهای کوتاه و تعامل با تبلیغات و نظرسنجی‌های قابل پخش پاداش می‌دهند

تبلیغات جایزه‌دار (یا «مبتنی بر جایزه») می‌توانند به کسب درآمد از کاربران بازی‌های رایگان کمک کنند.

تبلیغات جایزه‌دار (Rewarded Ads) را پیاده‌سازی کنید

سایر موضوعات مورد علاقه

مشاهده معیارهای کاربر و داده‌های تحلیلی

پس از مقداردهی اولیه، SDK Mobile Ads به طور خودکار شروع به ثبت رویدادهای تحلیلی و ویژگی‌های کاربر از برنامه شما می‌کند. می‌توانید این داده‌ها را بدون اضافه کردن هیچ کد اضافی به برنامه خود یا پیاده‌سازی هیچ تبلیغاتی مشاهده کنید. در اینجا می‌توانید این داده‌های تحلیلی را مشاهده کنید:

توجه داشته باشید که برای نمایش بهتر معیارهای ARPU و ARPPU ، ممکن است بخواهید داده‌های یک رویداد تحلیلی سفارشی به نام ecommerce_purchase را در محاسبه درآمد برای این معیارها لحاظ کنید ( نحوه انجام آن را بیاموزید ).

(اختیاری) از ویژگی‌های بیشتر Google Analytics و فایربیس استفاده کنید

از فرصت‌ها و ویژگی‌های بیشتر برای بهبود کسب درآمد از اپلیکیشن و تعامل کاربر استفاده کنید:

  • اضافه کردن و استفاده از Firebase SDK برای Google Analytics

    برای کسب اطلاعات بیشتر، به راهنمای استفاده از Google Analytics و فایربیس با برنامه‌های AdMob مراجعه کنید.

  • از سایر محصولات Firebase در برنامه خود استفاده کنید

    پس از افزودن Firebase SDK برای Google Analytics ، از سایر محصولات Firebase برای بهینه‌سازی تبلیغات در برنامه خود استفاده کنید.

    • Remote Config شما را قادر می‌سازد تا رفتار و ظاهر برنامه خود را بدون انتشار به‌روزرسانی برنامه تغییر دهید.

    • A/B Testing به شما این قدرت را می‌دهد که تغییرات در رابط کاربری، ویژگی‌ها یا کمپین‌های تعامل برنامه خود را آزمایش کنید تا ببینید آیا آنها قبل از اعمال تغییرات به طور گسترده، بر معیارهای کلیدی شما (مانند درآمد و حفظ مشتری) تأثیر می‌گذارند یا خیر.

،

استفاده از SDK های iOS و Android از AdMob را در نظر بگیرید.


This quickstart guide is for publishers and developers who want to use AdMob to monetize an app that's built with Firebase. If you don't plan to include Firebase in your app, visit the standalone AdMob guide instead.

If you haven't yet, learn about all the benefits of using AdMob , Firebase, and Google Analytics together.

If this is your first time going through this guide, we recommend that you download and follow along using the Google Mobile Ads C++ SDK test app .

قبل از اینکه شروع کنی

  • If you don't already have a Firebase project and a Firebase app, follow the Firebase getting started guide: Add Firebase to your C++ project .

  • Make sure that Google Analytics is enabled in your Firebase project:

    • If you're creating a new Firebase project, enable Google Analytics during the project creation workflow.

    • If you have an existing Firebase project that doesn't have Google Analytics enabled, you can enable Google Analytics from the Integrations tab of your > Project settings .

Step 1: Set up your app in your AdMob account

  1. Register each platform variant of your app as an AdMob app.

    1. Sign into or sign up for an AdMob account.

    2. Register each platform variant of your app with AdMob . This step creates an AdMob app with a unique AdMob App ID that you'll need later in this guide.

    You'll be asked to add the Mobile Ads SDK to your app. Find detailed instructions for this task later in this guide.

  2. Link your each of your AdMob apps to the corresponding Firebase app.

    This step is optional but strongly recommended. Learn more about the benefits of enabling user metrics and linking your AdMob apps to Firebase.

    For each platform variant, complete the following two steps in the Apps dashboard of your AdMob account:

    1. Enable User Metrics to allow AdMob to process and display curated analytics data in your AdMob account. It's also a required setting for you to link your AdMob app to Firebase.

    2. Link your AdMob app to your existing Firebase project and corresponding Firebase app.

      Make sure that you enter the same package name (Android) or bundle ID (iOS) as you entered for your Firebase app. Find your Firebase app's package name or bundle ID in the Your apps card of your > Project settings .

Step 2: Add your AdMob App ID to your app

اندروید

Add your AdMob App ID to your app's AndroidManifest.xml file by adding the <meta-data> tag as shown below.

<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>

آی‌او‌اس

In your app's Info.plist file, add a GADApplicationIdentifier key with a string value of your AdMob App ID .

You can make this change programmatically:

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

Or, edit it in the property list editor:

Property List Editor

Step 3: Add the Google Mobile Ads SDK

Since the Google Mobile Ads C++ SDK resides in the firebase::gma namespace, download the Firebase C++ SDK , and then unzip it to a directory of your choice.

The Firebase C++ SDK is not platform-specific, but it does require platform-specific library configurations.

اندروید

  1. In your project's gradle.properties file, specify the location of the unzipped SDK:

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. To your project's settings.gradle file, add the following content:

    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"
  3. To your module (app-level) Gradle file (usually app/build.gradle ), add the following content, which includes the library dependency for the 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
    }
  4. To your project's CMakeLists.txt file, add the following content.

    # 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}")
  5. Sync your app to ensure that all dependencies have the necessary versions.

You're all set! Your C++ app is configured to use the Google Mobile Ads C++ SDK.

آی‌او‌اس

The steps in this section are an example of how to add the Google Mobile Ads C++ SDK to your iOS project.

  1. Get CocoaPods version 1 or later by running:

    sudo gem install cocoapods --pre
  2. Add Google Mobile Ads pod from the unzipped SDK.

    1. Create a Podfile if you don't already have one:

      cd YOUR_APP_DIRECTORY
      pod init
    2. To your Podfile, add the pod for the Google Mobile Ads C++ SDK:

      pod 'Google-Mobile-Ads-SDK'
    3. Install the pod, then open the .xcworkspace file in Xcode.

      pod install
      open YOUR_APP.xcworkspace
    4. Add the following frameworks from the Firebase C++ SDK to the project:

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

You're all set! Your C++ app is configured to use the Google Mobile Ads C++ SDK.

Step 4: Initialize the Google Mobile Ads SDK

Before loading ads, initialize the Mobile Ads SDK by calling firebase::gma::Initialize() .

This call returns a firebase::Future that completes once initialization finishes (or after a 30-second timeout). Call this method only once and as early as possible, ideally at app launch.

Here's an example of how to call 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.
}

Use a Future to monitor the completion status of a method call

A Future provides you a way to determine the completion status of your asynchronous method calls.

For example, when your app calls firebase::gma::Initialize() , a new firebase::Future is created and returned. Your app can then poll the status() of the Future to determine when the initialization has completed. Once complete, your app can invoke result() to obtain the resulting AdapterInitializationStatus .

Methods that return a Future have a corresponding "last result" method that apps can use to retrieve the most recent Future for a given action. For example, firebase::gma::Initialize() has a corresponding method called firebase::gma::InitializeLastResult() , which returns a Future that your app can use to check the status of the last call to firebase::gma::Initialize() .

If the status of the Future is complete and its error code is firebase::gma::kAdErrorCodeNone , then the operation has completed successfully.

You can also register callbacks to be invoked when a Future is completed. In some cases, the callback will be running in a different thread, so make sure your code is thread-safe. This code snippet uses a function pointer for the 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.
  }
}

Step 5: Choose an ad format to implement in your app

AdMob offers a number of different ad formats, so you can choose the format that best fits the user experience of your app. Click a button for an ad format to view detailed implementation instructions in the AdMob documentation.

Rectangular ads that appear at the top or bottom of the device screen

Banner ads stay on screen while users are interacting with the app, and can refresh automatically after a certain period of time. If you're new to mobile advertising, they're a great place to start.

Implement banner ads

Interstitial

Full-screen ads that cover the interface of an app until closed by the user

Interstitial ads are best used at natural pauses in the flow of an app's execution, such as between levels of a game or just after a task is completed.

Implement interstitial ads

پاداش داده شده

Ads that reward users for watching short videos and interacting with playable ads and surveys

Rewarded (or "reward-based") ads can help monetize free-to-play users.

Implement rewarded ads

Other topics of interest

View user metrics and analytics data

After its initialization, the Mobile Ads SDK automatically starts logging analytics events and user properties from your app. You can view this data without adding any additional code to your app or implementing any ads. Here's where you can see this analytics data:

Note that to better represent ARPU and ARPPU metrics, you might want to include data from an analytics custom event called ecommerce_purchase in the revenue calculation for these metrics ( learn how ).

(Optional) Use more features of Google Analytics and Firebase

Take advantage of more opportunities and features to improve app monetization and user engagement:

  • Add and use the Firebase SDK for Google Analytics

    To learn more, visit the guide for using Google Analytics and Firebase with AdMob apps .

  • Use other Firebase products in your app

    After you add the Firebase SDK for Google Analytics , use other Firebase products to optimize ads in your app.

    • Remote Config enables you to change the behavior and appearance of your app without publishing an app update.

    • A/B Testing gives you the power to test changes to your app's UI, features, or engagement campaigns to learn if they make an impact on your key metrics (like revenue and retention) before rolling the changes out widely.