Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

ابدأ مع AdMob في مشروع C ++

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

دليل البدء السريع هذا مخصص للناشرين والمطورين الذين يرغبون في استخدام AdMob لتحقيق الدخل من تطبيق تم إنشاؤه باستخدام Firebase.

إذا لم تكن قد فعلت ذلك بعد ، فتعرّف على جميع مزايا استخدام AdMob و Firebase و Google Analytics معًا.

إذا كانت هذه هي المرة الأولى التي تستعرض فيها هذا الدليل ، فننصحك بتنزيل ومتابعة استخدام تطبيق اختبار Google Mobile Ads C ++ SDK .

قبل ان تبدأ

  • إذا لم يكن لديك بالفعل مشروع Firebase وتطبيق Firebase ، فاتبع دليل بدء Firebase: أضف Firebase إلى مشروع C ++ الخاص بك .

  • تأكد من تمكين Google Analytics في مشروع Firebase:

    • إذا كنت تنشئ مشروع Firebase جديدًا ، فقم بتمكين Google Analytics أثناء سير عمل إنشاء المشروع.

    • إذا كان لديك مشروع Firebase حالي لم يتم تمكين Google Analytics فيه ، فيمكنك تمكين Google Analytics من علامة التبويب " التكامل " في > إعدادات المشروع .

الخطوة 1: إعداد تطبيقك في حسابك في AdMob

  1. سجّل كل متغير للنظام الأساسي لتطبيقك باعتباره تطبيق AdMob.

    1. سجّل الدخول أو اشترك للحصول على حساب AdMob.

    2. سجّل كل شكل من أشكال النظام الأساسي لتطبيقك في AdMob . تنشئ هذه الخطوة تطبيق AdMob بمعرف تطبيق AdMob الفريد الذي ستحتاجه لاحقًا في هذا الدليل.

    سيُطلب منك إضافة SDK لإعلانات الجوال إلى تطبيقك. اعثر على الإرشادات التفصيلية لهذه المهمة لاحقًا في هذا الدليل.

  2. اربط كل تطبيق من تطبيقات AdMob لديك بتطبيق Firebase المقابل.

    هذه الخطوة اختيارية ولكن يوصى بها بشدة. تعرف على المزيد حول فوائد تمكين مقاييس المستخدم وربط تطبيقات AdMob بـ Firebase.

    لكل متغير للنظام الأساسي ، أكمل الخطوتين التاليتين في لوحة تحكم التطبيقات بحسابك في AdMob:

    1. مكّن مقاييس المستخدم للسماح لبرنامج AdMob بمعالجة وعرض بيانات التحليلات المنظمة في حسابك في AdMob. إنه أيضًا إعداد مطلوب لك لربط تطبيق AdMob بـ Firebase.

    2. اربط تطبيق AdMob بمشروع Firebase الحالي وتطبيق Firebase المقابل.

      تأكد من إدخال نفس اسم الحزمة (Android) أو معرّف الحزمة (iOS) كما أدخلته لتطبيق Firebase. ابحث عن اسم حزمة تطبيق Firebase أو معرّف الحزمة في بطاقة تطبيقاتك في > إعدادات المشروع .

الخطوة 2: أضف معرّف تطبيق AdMob إلى تطبيقك

ذكري المظهر

أضف معرّف تطبيق AdMob إلى ملف AndroidManifest.xml لتطبيقك عن طريق إضافة علامة <meta-data> كما هو موضح أدناه.

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

أو قم بتحريره في محرر قائمة الخصائص:

محرر قائمة الخصائص

الخطوة 3: أضف SDK لإعلانات Google على الجوال

نظرًا لأن حزمة C ++ SDK لإعلانات الجوال من Google موجودة في مساحة اسم firebase::gma ، فقم بتنزيل Firebase C ++ SDK ، ثم قم بفك ضغطه إلى دليل من اختيارك.

إن Firebase C ++ SDK ليس خاصًا بالنظام الأساسي ، ولكنه يتطلب تكوينات مكتبة خاصة بالنظام الأساسي.

ذكري المظهر

  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.

iOS

الخطوات الواردة في هذا القسم هي مثال على كيفية إضافة حزمة SDK لإعلانات Google للجوال C ++ إلى مشروع iOS الخاص بك.

  1. احصل على الإصدار 1 من CocoaPods أو إصدار لاحق من خلال تشغيل:

    sudo gem install cocoapods --pre
  2. أضف لوحة إعلانات Google للجوال من SDK غير المضغوط.

    1. قم بإنشاء ملف Podfile إذا لم يكن لديك واحد بالفعل:

      cd YOUR_APP_DIRECTORY
      pod init
    2. إلى Podfile الخاص بك ، أضف لوحة إعلانات Google للجوال 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.

الخطوة 4: تهيئة Google Mobile Ads SDK

قبل تحميل الإعلانات ، قم بتهيئة حزمة 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.

الإعلانات المستطيلة التي تظهر أعلى أو أسفل شاشة الجهاز

تظل إعلانات البانر على الشاشة أثناء تفاعل المستخدمين مع التطبيق ، ويمكن تحديثها تلقائيًا بعد فترة زمنية معينة. إذا كنت جديدًا في مجال إعلانات الأجهزة المحمولة ، فهي مكان رائع للبدء.

تنفيذ إعلانات البانر

بيني

إعلانات بملء الشاشة تغطي واجهة التطبيق حتى يغلقها المستخدم

من الأفضل استخدام الإعلانات البينية في فترات التوقف المؤقت الطبيعية في تدفق تنفيذ التطبيق ، مثل بين مستويات اللعبة أو بعد اكتمال المهمة مباشرة.

تنفيذ الإعلانات البينية

يكافأ

الإعلانات التي تكافئ المستخدمين على مشاهدة مقاطع الفيديو القصيرة والتفاعل مع الإعلانات القابلة للتشغيل والاستطلاعات

يمكن أن تساعد الإعلانات بمكافأة (أو "المستندة إلى المكافأة") في تحقيق الدخل من مستخدمي الألعاب المجانية.

تنفيذ الإعلانات بمكافأة

مواضيع أخرى ذات أهمية

عرض مقاييس المستخدم وبيانات التحليلات

بعد التهيئة ، يبدأ Mobile Ads SDK تلقائيًا في تسجيل أحداث التحليلات وخصائص المستخدمين من تطبيقك. يمكنك عرض هذه البيانات دون إضافة أي كود إضافي إلى تطبيقك أو تنفيذ أي إعلانات. هنا حيث يمكنك رؤية بيانات التحليلات هذه:

لاحظ أنه لتمثيل مقاييس ARPU و ARPPU بشكل أفضل ، قد ترغب في تضمين البيانات من حدث مخصص للتحليلات يسمى ecommerce_purchase في حساب الإيرادات لهذه المقاييس ( تعرف على كيفية القيام بذلك).

(اختياري) استخدم المزيد من ميزات Google Analytics و Firebase

استفد من المزيد من الفرص والميزات لتحسين تحقيق الدخل من التطبيق وجذب المستخدمين:

  • أضف واستخدم Firebase SDK لبرنامج Google Analytics

  • استخدم منتجات Firebase الأخرى في تطبيقك

    بعد إضافة Firebase SDK لـ Google Analytics ، استخدم منتجات Firebase الأخرى لتحسين الإعلانات في تطبيقك.

    • يمكّنك Remote Config من تغيير سلوك ومظهر تطبيقك دون نشر تحديث للتطبيق ، بدون تكلفة ، لعدد غير محدود من المستخدمين النشطين يوميًا.

    • يمنحك اختبار A / B القدرة على اختبار التغييرات التي تطرأ على واجهة المستخدم لتطبيقك أو الميزات أو حملات التفاعل لمعرفة ما إذا كان لها تأثير على مقاييسك الرئيسية (مثل الإيرادات والاحتفاظ) قبل طرح التغييرات على نطاق واسع.

للبدء ، تفضل بزيارة دليل استخدام Google Analytics و Firebase مع تطبيقات AdMob .