המדריך הזה מיועד לבעלי אפליקציות שרוצים לייצר הכנסות מאפליקציית C++ באמצעות AdMob, באמצעות Firebase. אם אתם מתכוונים לכלול את Firebase באפליקציה, או כדאי לבחון את האפשרות הזו - ראו AdMob עם גרסת Firebase הזו במדריך הזה.
שילוב של C++ SDK של מודעות Google לנייד באפליקציה הוא הצעד הראשון לקראת הצגת מודעות וייצור הכנסות. אחרי השילוב של ה-SDK, אפשר בוחרים פורמט מודעה, כמו מעברון או מודעה מתגמלת, ופועלים לפי השלבים להטמיע אותו.
ערכת ה-SDK של מודעות Google לנייד (C++ SDK) כוללת את ערכות ה-SDK של מודעות Google לנייד ב-iOS וב-Android,
וזמינה רק בפלטפורמות האלה. ערכת ה-SDK של מודעות Google לנייד (C++ SDK) מאפשרת
שימוש ב-builds של Firebase C++ כדי לתמוך בפעולות אסינכרוניות, כלומר
במרחב השמות firebase::gma
.
אם זו הפעם הראשונה שאתם קוראים את המדריך הזה, אנחנו ממליצים להוריד ולעקוב אחריו באמצעות בדיקת C++ של מודעות Google לנייד app.
דרישות מוקדמות
Android
- צריך להשתמש ב-Android Studio 3.2 ואילך
- יש לוודא שקובץ ה-build של האפליקציה משתמש בערכים הבאים:
minSdkVersion
מתוך 16 ומעלהcompileSdkVersion
של 28 ומעלה
iOS
- צריך להשתמש ב-Xcode מגרסה 13 ואילך
- יעד iOS 10.0 ומעלה
הגדרת האפליקציה בחשבון AdMob
כדי לרשום את האפליקציה כאפליקציית AdMob, מבצעים את השלבים הבאים:
רושמים את האפליקציה באמצעות AdMob. השלב הזה יוצר AdMob אפליקציה עם מזהה אפליקציה ייחודי ב-AdMob ותשתמשו בה בהמשך המדריך הזה.
התקנת Google Mobile Ads C++ SDK
מאחר ש-C++ SDK של מודעות Google לנייד נמצא במרחב השמות firebase::gma
,
מורידים את Firebase C++ SDK,
ולאחר מכן מחלצים אותו בספרייה לבחירתכם.
ה-SDK של Firebase C++ לא ספציפי לפלטפורמה, אבל נדרש הגדרות של ספריות ספציפיות לפלטפורמה.
Android
מומלץ להשתמש ב-CMake, אבל אפשר למצוא הוראות ליצירה של ndk-build
כללי תחילת העבודה עם SDK + Firebase ב-Firebase
מדריך
לקשר את libfirebase_app.a
ואת libfirebase_gma.a
לאפליקציה שלך.
בקובץ
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 עבור 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 }
לקובץ
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}")
צריך לסנכרן את האפליקציה כדי לוודא שלכל יחסי התלות יש את הגרסאות הנדרשות.
iOS
השלבים בקטע הזה מדגימים איך להוסיף את מודעות Google לנייד. C++ SDK לפרויקט iOS שלכם.
כדי להוריד את CocoaPods בגרסה 1 ואילך, מריצים את:
sudo gem install cocoapods --pre
מוסיפים את רצף המודעות של Google לנייד מה-SDK לאחר חילוץ.
אם עדיין אין לכם קובץ Podfile, צריך ליצור אותו:
cd APP_DIRECTORY
pod init
ל-Podfile, מוסיפים את רצפי המודעות של Google Mobile Ads C++ SDK, Google User Messaging Platform SDK וה-SDK המינימלי של Firebase (נדרש על ידי GMA C++ SDK):
pod 'Firebase/CoreOnly' pod 'Google-Mobile-Ads-SDK' pod 'GoogleUserMessagingPlatform'
מתקינים את רצפי ה-Pod ופותחים את הקובץ
.xcworkspace
ב-Xcode.pod install
open APP.xcworkspace
מוסיפים לפרויקט את ה-frameworks הבאות מ-Firebase C++ SDK:
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
הכל מוכן! אפליקציית C++ שלך מוגדרת לשימוש ב-C++ SDK של מודעות Google לנייד. ללא שירותים אחרים של Firebase.
הגדרת מזהה האפליקציה ב-AdMob של האפליקציה
Android
מבצעים את שלב 3 בקטע הגדרת האפליקציה כפי שמתואר ב-Mobile Ads SDK. מדריך ל-Android ואז חוזרים לדף הזה.
iOS
פועלים לפי השלב עדכון Info.plist כפי שמתואר ב-Mobile Ads SDK. מדריך ל-iOS ואז לחזור לדף הזה.
הפעלה של Google Mobile Ads SDK
לפני טעינת מודעות, צריך לבקש מהאפליקציה לאתחל את Google Mobile Ads C++ SDK על ידי
קריאה אל firebase::gma::Initialize()
, שמפעילה את ה-SDK ומשלים
firebase::Future
בסיום האתחול (או אחרי 30 שניות)
). צריך לעשות זאת רק פעם אחת, רצוי בזמן הפעלת האפליקציה.
ייתכן שהמודעות ייטענו מראש על ידי ערכות ה-SDK של Google Mobile Ads C++ או ערכות ה-SDK של שותף בתהליך בחירת הרשת
כשקוראים אל Initialize()
. אם אתם צריכים לקבל הסכמה ממשתמשים
באזור הכלכלי האירופי (EEA), מגדירים סימונים ספציפיים לבקשה (כמו
tag_for_child_directed_treatment
או tag_for_under_age_of_consent
), או
לנקוט פעולות אחרות לפני טעינת המודעות, הקפידו לעשות זאת על ידי הפעלה
firebase::gma::SetRequestConfiguration()
לפני אתחול Google Mobile
מודעות C++ SDK. מידע נוסף זמין
מדריך בנושא טירגוט.
הנה דוגמה לאופן שבו אפשר להתקשר אל 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
כדי לעקוב אחר סטטוס ההשלמה של הפעלת method
Future
מאפשר לך לקבוע את סטטוס ההשלמה של
הפעלות method אסינכרוניות.
לדוגמה, כשהאפליקציה שולחת קריאה ל-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
, אז הפעולה הסתיימה
בהצלחה.
אפשר גם לרשום קריאה חוזרת (callback) להפעלה לאחר השלמת 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.
}
}
בחירה של פורמט מודעה
ה-SDK של מודעות Google לנייד (C++ SDK) מיובא ואתם מוכנים להטמיע המודעה. ב-AdMob יש כמה פורמטים שונים של מודעות, כך שאפשר לבחור את הפורמט הרצוי שהכי מתאים לחוויית המשתמש באפליקציה שלכם.
כרזה
מודעות מלבניות שמופיעות בחלק העליון או התחתון של מסך המכשיר. מודעות באנר מוצגות במסך בזמן שהמשתמשים יוצרים אינטראקציה עם האפליקציה, יתבצע רענון אוטומטי לאחר פרק זמן מסוים. אם זו הפעם הראשונה שאתם משתמשים בנייד פרסום – זה מקום מצוין להתחיל בו.
מעברון
מודעות במסך מלא שמכסות את הממשק של האפליקציה עד שהמשתמש סוגר אותן. מומלץ להשתמש בהם בהשהיות טבעיות במהלך הביצוע של אפליקציה, כמו בין שלבים במשחק או מיד אחרי שמשימה בוצעה.
ההטבה הופעלה
מודעות שמציעות למשתמשים תגמולים בתמורה לצפייה בסרטונים קצרים ולאינטראקציה עם הילדים מודעות וסקרים. משמש למונטיזציה מאפליקציות חינמיות.