بدء استخدام AdMob في مشروع C++


دليل البدء السريع هذا مخصّص للناشرين والمطوّرين الذين يريدون استخدام AdMob. لتحقيق الربح من تطبيق تم إنشاؤه باستخدام Firebase. إذا لم تكن تخطط لتضمين Firebase في تطبيقك، انتقِل إلى AdMob المستقل الدليل بدلاً من ذلك.

إذا لم تكن قد تعرفت بعد، فتعرف على جميع مزايا استخدام AdMob وFirebase و"إحصاءات Google" معًا

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

قبل البدء

الخطوة 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 إلى تطبيقك

Android

إضافة رقم تعريف تطبيق 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 على الأجهزة الجوّالة"

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

وحزمة تطوير البرامج (SDK) لمنصة Firebase C++ ليست خاصة بالنظام الأساسي، ولكنّها تتطلّب بإعدادات المكتبة الخاصة بالنظام الأساسي.

Android

  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)، أضِف العنصر المحتوى التالي، والذي يتضمن تبعية المكتبة حزمة C++ SDK لإعلانات Google على الأجهزة الجوّالة.

    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++ لاستخدام حزمة C++ SDK لإعلانات Google على الأجهزة الجوّالة.

iOS

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

  1. يمكنك الحصول على الإصدار 1 من CocoaPods أو إصدار أحدث منه من خلال تنفيذ ما يلي:

    sudo gem install cocoapods --pre
  2. أضِف مجموعة "إعلانات Google على الأجهزة الجوّالة" من حزمة تطوير البرامج (SDK) غير المضغوطة.

    1. أنشئ ملف Podfile إذا لم يكن لديك ملف بالفعل:

      cd YOUR_APP_DIRECTORY
      pod init
    2. إلى ملف Podfile، أضِف لوحة SDK الخاصة بحزمة C++ لإعلانات Google على الأجهزة الجوّالة:

      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++ لاستخدام حزمة C++ SDK لإعلانات Google على الأجهزة الجوّالة.

الخطوة الرابعة: إعداد حزمة "SDK لإعلانات Google على الأجهزة الجوّالة"

قبل تحميل الإعلانات، يجب إعداد حزمة تطوير البرامج (SDK) لعرض الإعلانات على الأجهزة الجوّالة من خلال الاتصال firebase::gma::Initialize()

يعرض هذا الاستدعاء رسالة firebase::Future تكتمل بعد الإعداد ينتهي (أو بعد 30 ثانية). وعليك استدعاء هذه الطريقة مرة واحدة فقط في أقرب وقت ممكن، ويُفضَّل عند إطلاق التطبيق.

إليك مثال على كيفية الاتصال بـ 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.
  }
}

الخطوة 5: اختيار شكل إعلان لتنفيذه في تطبيقك

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

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

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

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

إعلان بيني

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

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

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

تمت المكافأة

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

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

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

مواضيع أخرى تهمّك

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

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

لاحظ أنه من أجل تمثيل متوسط الأرباح لكل مستخدم يدفع رسومًا عند قياس متوسط الأرباح لكل مستخدم يدفع رسومًا قد ترغب في تضمين بيانات من حدث مخصص في Analytics يسمى ecommerce_purchase في احتساب الأرباح لهذه المقاييس (تعرَّف على كيفية إجراء ذلك).

(اختياري) استخدام المزيد من ميزات "إحصاءات Google" وFirebase

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

  • إضافة حزمة تطوير البرامج (SDK) لمنصّة Firebase واستخدامها لخدمة "إحصاءات Google"

    لمزيد من المعلومات، انتقِل إلى دليل استخدام "إحصاءات Google" وFirebase باستخدام تطبيقات AdMob.

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

    بعد إضافة حزمة تطوير البرامج (SDK) لمنصّة Firebase الخاصّة بخدمة "إحصاءات Google"، استخدِم حزمة تطوير برامج Firebase أخرى. المنتجات لتحسين الإعلانات في تطبيقك.

    • تتيح لك ميزة الإعداد عن بُعد تغيير السلوك تطبيقك بدون أي تكلفة وبدون نشر تحديث له عدد غير محدود من المستخدمين النشطين يوميًا.

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