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