دليل البدء السريع هذا مخصّص للناشرين والمطوّرين الذين يريدون استخدام AdMob لتحقيق الربح من تطبيق تم إنشاؤه باستخدام Firebase. إذا كنت لا تخطّط لتضمين Firebase في تطبيقك، يمكنك الاطّلاع على دليل AdMob الاستخدام المستقل بدلاً من ذلك.
إذا لم يسبق لك ذلك، تعرَّف على جميع المزايا التي يمكنك الاستفادة منها عند استخدام AdMob وFirebase وGoogle Analytics معًا.
إذا كانت هذه هي المرة الأولى التي تستخدم فيها هذا الدليل، ننصحك بتنزيل تطبيق اختبار حزمة تطوير البرامج (SDK) للغة C++ من "إعلانات Google على الأجهزة الجوّالة" واتّباع الخطوات الواردة فيه.
قبل البدء
إذا لم يكن لديك مشروع وتطبيق على Firebase، اتّبِع دليل بدء استخدام Firebase: كيفية إضافة Firebase إلى مشروع C++ الخاص بك.
تأكَّد من تفعيل Google Analytics في مشروعك على Firebase:
إذا كنت بصدد إنشاء مشروع جديد في Firebase، فعِّل Google Analytics أثناء خطوات إنشاء المشروع.
إذا كان لديك مشروع حالي على Firebase لم يتم تفعيل Google Analytics فيه، يمكنك تفعيل Google Analytics من علامة التبويب عمليات الدمج ضمن
. > إعدادات المشروع
الخطوة 1: إعداد تطبيقك في حسابك على AdMob
سجِّل كل صيغة مختلفة من تطبيقك على كل منصة على أنّها AdMob.
سجِّل الدخول أو اشترِك للحصول على حساب AdMob.
سجِّل كل إصدار من تطبيقك مخصّصًا لمنصة معيّنة باستخدام AdMob. تؤدي هذه الخطوة إلى إنشاء AdMob تطبيق برقم AdMob تعريف فريد للتطبيق ستحتاج إليه لاحقًا في هذا الدليل.
سيُطلب منك إضافة Mobile Adsحزمة تطوير البرامج (SDK) إلى تطبيقك. يمكنك الاطّلاع على تعليمات مفصّلة حول هذه المهمة في وقت لاحق من هذا الدليل.
اربط كل تطبيق من تطبيقات AdMob بتطبيق Firebase المقابل.
هذه الخطوة اختيارية، ولكن ننصح بها بشدة. اطّلِع على مزيد من المعلومات حول مزايا تفعيل مقاييس سلوك المستخدمين وربط تطبيقات AdMob بمنصة Firebase.
بالنسبة إلى كل صيغة من صيغ المنصات، أكمِل الخطوتَين التاليتَين في لوحة بيانات التطبيقات ضمن حسابك على AdMob:
فعِّل مقاييس المستخدم للسماح AdMob بمعالجة بيانات الإحصاءات المنسّقة وعرضها في حسابك على AdMob. وهو أيضًا إعداد مطلوب لربط تطبيقك AdMob بمنصة Firebase.
اربط 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) للغة C++ في "إعلانات Google على الأجهزة الجوّالة" تقع في مساحة الاسم firebase::gma
،
نزِّل حزمة تطوير البرامج (SDK) للغة C++ في Firebase،
ثم فكّ ضغطها في دليل من اختيارك.
لا تستهدف حزمة تطوير البرامج (SDK) بلغة C++ من Firebase نظامًا أساسيًا معيّنًا، ولكنها تتطلّب إعدادات مكتبة خاصة بالنظام الأساسي.
Android
في ملف
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
)، والذي يتضمّن مصدر الاعتمادية الخاص بمكتبة حزمة تطوير البرامج (SDK) للغة C++ من "إعلانات 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 }
أضِف المحتوى التالي إلى ملف
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}")
يمكنك مزامنة تطبيقك للتأكّد من أنّ جميع التبعيات تتضمّن الإصدارات اللازمة.
اكتملت عملية الإعداد. تم ضبط تطبيق C++ لاستخدام حزمة تطوير البرامج (SDK) للغة C++ من "إعلانات Google على الأجهزة الجوّالة".
iOS
الخطوات الواردة في هذا القسم هي مثال على كيفية إضافة حزمة تطوير البرامج (SDK) بلغة C++ لخدمة "إعلانات Google على الأجهزة الجوّالة" إلى مشروع iOS.
احصل على الإصدار 1 من CocoaPods أو إصدار أحدث من خلال تنفيذ ما يلي:
sudo gem install cocoapods --pre
أضِف حزمة Google Mobile Ads من حزمة تطوير البرامج (SDK) التي تم فك ضغطها.
أنشِئ Podfile في حال عدم توفّره:
cd YOUR_APP_DIRECTORY
pod init
أضِف مجموعة الإعلانات المتسلسلة لحزمة C++ SDK لإعلانات Google على الأجهزة الجوّالة إلى ملف Podfile:
pod 'Google-Mobile-Ads-SDK'
ثبِّت الحزمة، ثم افتح الملف
.xcworkspace
في Xcode.pod install
open YOUR_APP.xcworkspace
أضِف الأُطر التالية من حزمة تطوير البرامج (SDK) لمنصة Firebase C++ إلى المشروع:
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
اكتملت عملية الإعداد. تم ضبط تطبيق C++ لاستخدام حزمة تطوير البرامج (SDK) للغة C++ من "إعلانات Google على الأجهزة الجوّالة".
الخطوة 4: إعداد حزمة "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.
بانر
إعلانات مستطيلة تظهر في أعلى شاشة الجهاز أو أسفلها
تبقى إعلانات البانر معروضة على الشاشة أثناء تفاعل المستخدمين مع التطبيق، ويمكن إعادة تحميلها تلقائيًا بعد فترة زمنية محدّدة. إذا كنت جديدًا في مجال الإعلانات على الأجهزة الجوّالة، ستكون هذه الإعلانات خيارًا رائعًا للبدء.
عرض إعلانات البانرإعلان بيني
إعلانات بملء الشاشة تغطي واجهة التطبيق إلى أن يغلقها المستخدم
يُفضّل استخدام "الإعلانات البينية" عند التوقف مؤقتًا بشكل طبيعي أثناء تنفيذ التطبيق، مثلاً بين مستويات اللعبة أو بعد إكمال مهمة مباشرةً.
عرض الإعلانات البينيةتمت المكافأة
هي إعلانات تكافئ المستخدمين على مشاهدة فيديوهات قصيرة والتفاعل مع إعلانات تشغيل إصدار بسيط من اللعبة ومع الاستطلاعات.
يمكن أن تساعد الإعلانات مقابل مكافأة (أو "الإعلانات المستندة إلى المكافآت") في تحقيق الربح من مستخدمي ألعاب التشغيل المجاني.
مواضيع أخرى تهمّك
عرض مقاييس المستخدمين وبيانات الإحصاءات
بعد إعداد حزمة Mobile Ads SDK، تبدأ الحزمة تلقائيًا في تسجيل أحداث الإحصاءات وخصائص المستخدم من تطبيقك. ويمكنك الاطّلاع على هذه البيانات بدون إضافة أي رمز إضافي إلى تطبيقك أو عرض أي إعلانات. في ما يلي الأماكن التي يمكنك فيها الاطّلاع على بيانات الإحصاءات هذه:
في بطاقة مقاييس سلوك المستخدمين ضمن حسابك على AdMob (لوحة بيانات الصفحة الرئيسية أو التطبيقات)، يمكنك الاطّلاع على مقاييس مستخدمين منتقاة مستمدّة من بيانات الإحصاءات التي تم جمعها، مثل متوسط مدة الجلسة ومتوسط الأرباح لكل مستخدم ومعدل الاحتفاظ بالمستخدمين.
في لوحة بيانات "إحصاءات Google" الخاصة بمنصة Firebase، يمكنك الاطّلاع على الإحصاءات المجمّعة وملخّصات المقاييس الرئيسية. إذا أضفت حزمة تطوير البرامج (SDK) لمنصة Firebase Google Analytics، يمكنك أيضًا وضع علامة على الإحالات الناجحة للحملات الإعلانية وإنشاء شرائح جمهور مخصّصة في وحدة تحكّم Firebase.
يُرجى العِلم أنّه لتمثيل مقياسَي
متوسط الأرباح من كل مستخدِم
ومتوسط الأرباح لكل مستخدِم يدفع رسومًا بشكل أفضل،
قد تحتاج إلى تضمين بيانات من حدث مخصّص في "إحصاءات Google" باسم
ecommerce_purchase
في عملية احتساب الإيرادات لهذين المقياسين
(كيفية إجراء ذلك).
(اختياري) استخدام المزيد من ميزات Google Analytics وFirebase
استفِد من المزيد من الفرص والميزات لتحسين تحقيق الربح من التطبيقات وتعزيز تفاعل المستخدمين:
إضافة حزمة تطوير البرامج (SDK) لمنصة Firebase واستخدامها في Google Analytics
نفِّذ تسجيل الأحداث المخصّصة في تطبيقك.
تحديد الإحالات الناجحة للحملات الإعلانية المخصّصة
تضمين بيانات حدث
ecommerce_purchase
في عملية احتساب الإيرادات لمقياسَي متوسط الأرباح من كل مستخدم ومتوسط الأرباح لكل مستخدم يدفع رسومًا
لمزيد من المعلومات، يُرجى الاطّلاع على دليل استخدام Google Analytics وFirebase مع تطبيقات AdMob.
استخدام منتجات Firebase الأخرى في تطبيقك
بعد إضافة حزمة تطوير البرامج (SDK) لمنصة Firebase الخاصة بـ Google Analytics، استخدِم منتجات Firebase الأخرى لتحسين الإعلانات في تطبيقك.
تتيح لك خدمة Remote Config تغيير سلوك تطبيقك ومظهره بدون الحاجة إلى إصدار تحديث له، وذلك بدون أي تكلفة، ولعدد غير محدود من المستخدمين النشطين يوميًا.
تتيح لك أداة A/B Testing اختبار التغييرات التي تجريها على واجهة المستخدم أو الميزات أو حملات التفاعل في تطبيقك لمعرفة ما إذا كانت تؤثّر في مقاييسك الرئيسية (مثل الأرباح والاحتفاظ بالمستخدمين) قبل طرح التغييرات على نطاق واسع.