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


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

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

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

قبل البدء

الخطوة 1: إعداد تطبيقك في حسابك على 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 اسم الحزمة أو رقم تعريف الحزمة في بطاقة تطبيقاتك في > إعدادات المشروع:

الخطوة 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 Mobile Ads من حزمة تطوير البرامج (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) لنظام التشغيل Mobile Ads من خلال الاتصال 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) "Mobile Ads" تحليلات التسجيل الأحداث خصائص المستخدِمين من تطبيقك. يمكنك عرض هذه البيانات بدون إضافة أي رمز إضافي إلى التطبيق أو تنفيذ أي إعلانات. يمكنك الاطّلاع في ما يلي على بيانات الإحصاءات هذه:

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

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

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

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

    لمزيد من المعلومات، انتقِل إلى دليل استخدام Google Analytics وFirebase. مع AdMob تطبيقًا.

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

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

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

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