מדריך התחלה מהירה זה מיועד לבעלי תוכן דיגיטלי ולמפתחים שרוצים להשתמש ב-AdMob כדי לייצר הכנסות מאפליקציה שנבנתה באמצעות Firebase. אם אתם לא מתכננים לכלול את Firebase באפליקציה, כדאי לעיין במדריך העצמאי AdMob.
אם עדיין לא עשיתם את זה, כדאי לקרוא על כל היתרונות של שימוש משולב ב-AdMob, ב-Firebase וב-Google Analytics.
אם זו הפעם הראשונה שאתם קוראים את המדריך הזה, מומלץ להוריד את אפליקציית הבדיקה של Google Mobile Ads C++ SDK ולפעול לפי ההוראות.
לפני שמתחילים
אם עדיין אין לכם פרויקט ב-Firebase ואפליקציה ב-Firebase, תצטרכו לפעול לפי השלבים במדריך לתחילת העבודה עם Firebase: איך מוסיפים את Firebase לפרויקט C++.
מוודאים ש-Google Analytics מופעל בפרויקט שלכם ב-Firebase:
אם אתם יוצרים פרויקט חדש ב-Firebase, זכרו להפעיל את Google Analytics לפני שתסיימו ליצור את הפרויקט.
אם יש לכם פרויקט קיים ב-Firebase שלא הפעלתם בו את Google Analytics, תוכלו להפעיל את Google Analytics דרך הכרטיסייה Integrations (שילובים) בקטע
(הגדרות הפרויקט). > Project settings
שלב 1: מגדירים את האפליקציה בחשבון AdMob
צריך לרשום כל וריאנט של האפליקציה לפלטפורמה כAdMob.
נכנסים לחשבון או נרשמים לחשבון AdMob.
רושמים כל וריאציה של האפליקציה לפלטפורמה ב-AdMob. בשלב הזה נוצרת אפליקציית AdMob עם AdMob מזהה אפליקציה ייחודי שיהיה צורך בו בהמשך המדריך הזה.
תתבקשו להוסיף את Mobile Ads ה-SDK לאפליקציה. בהמשך המדריך מפורטות הוראות לביצוע המשימה הזו.
מקשרים כל אחת מהאפליקציות של AdMob לאפליקציה המתאימה ב-Firebase.
השלב הזה הוא אופציונלי אבל מומלץ מאוד. מידע נוסף על היתרונות של הפעלת מדדי משתמשים וקישור אפליקציות AdMob ל-Firebase
בכל גרסה של הפלטפורמה, מבצעים את שני השלבים הבאים בלוח הבקרה Apps (אפליקציות) בחשבון 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: הוספה של Google Mobile Ads SDK
מכיוון ש-Google Mobile Ads C++ SDK נמצא במרחב השמות firebase::gma
, צריך להוריד את Firebase C++ SDK ואז לחלץ אותו לספרייה שתבחרו.
Firebase C++ SDK הוא לא ספציפי לפלטפורמה, אבל הוא דורש הגדרות של ספריות ספציפיות לפלטפורמה.
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
), מוסיפים את התוכן הבא, שכולל את התלות בספרייה של 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}")
מסנכרנים את האפליקציה כדי לוודא שלכל הרכיבים התלויים יש את הגרסאות הנדרשות.
סיימת! אפליקציית C++ מוגדרת לשימוש ב-Google Mobile Ads C++ SDK.
iOS
השלבים בקטע הזה הם דוגמה להוספה של Google Mobile Ads C++ SDK לפרויקט iOS.
כדי לקבל את CocoaPods מגרסה 1 ואילך, מריצים את הפקודה:
sudo gem install cocoapods --pre
מוסיפים את Google Mobile Ads pod מ-SDK שחולץ.
צריך ליצור Podfile אם אין עדיין:
cd YOUR_APP_DIRECTORY
pod init
מוסיפים את ה-Pod ל-Google Mobile Ads C++ SDK לקובץ Podfile:
pod 'Google-Mobile-Ads-SDK'
מתקינים את ה-pod ואז פותחים את הקובץ
.xcworkspace
ב-Xcode.pod install
open YOUR_APP.xcworkspace
מוסיפים לפרויקט את המסגרות הבאות מ-Firebase C++ SDK:
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
סיימת! אפליקציית C++ מוגדרת לשימוש ב-Google Mobile Ads C++ SDK.
שלב 4: הפעלת Google Mobile Ads SDK
לפני טעינת המודעות, מפעילים את Mobile Ads 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
הוא complete וקוד השגיאה שלו הוא 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.
}
}
שלב 5: בחירת פורמט מודעה להטמעה באפליקציה
ב-AdMob יש מגוון פורמטים של מודעות, כך שאתם יכולים לבחור את הפורמט שהכי מתאים לחוויית המשתמש באפליקציה שלכם. לחיצה על לחצן של פורמט מודעה תציג הוראות הטמעה מפורטות במסמכי AdMob התיעוד.
באנר
מודעות מלבניות שמופיעות בחלק העליון או התחתון של מסך המכשיר
מודעות באנר מוצגות במסך גם בזמן אינטראקציות של המשתמשים באפליקציה, ויכול להיות שיתבצע רענון אוטומטי שלהן אחרי פרק זמן מסוים. אם אתם חדשים בתחום הפרסום לנייד, כדאי להתחיל עם מודעות כאלה.
הטמעת מודעות באנרמודעת מעברון
מודעות במסך מלא שמכסות את הממשק של אפליקציה עד שהמשתמש סוגר אותן
השימוש במודעות מעברון הכי מתאים להפסקות טבעיות בזרימת הביצוע של האפליקציה, למשל בין רמות במשחק או מיד אחרי השלמת משימה.
הטמעה של מודעות מעברוןמתגמל
מודעות שמציעות למשתמשים תגמולים בתמורה לצפייה בסרטונים קצרים, לאינטראקציות עם מודעות התנסות באפליקציה ולמילוי סקרים
מודעות מתגמלות יכולות לעזור לכם לייצר הכנסות ממשתמשים שמשחקים בחינם.
נושאים מעניינים אחרים
צפייה במדדי משתמשים ובניתוח נתונים
אחרי האתחול, Mobile Ads SDK מתחיל באופן אוטומטי לתעד אירועים ומאפייני משתמשים לניתוח נתונים מהאפליקציה. אפשר לראות את הנתונים האלה בלי להוסיף קוד לאפליקציה או להטמיע מודעות. הנתונים האלה מניתוח הנתונים מוצגים במקומות הבאים:
בכרטיס מדדי משתמשים בחשבון AdMob (לוח הבקרה דף הבית או אפליקציות), אפשר לראות מדדי משתמשים שנבחרו בקפידה ונגזרים מנתוני הניתוח שנאספו, כמו משך זמן ממוצע לסשן, הכנסה ממוצעת לכל משתמש (ARPU) ושימור.
בלוח הבקרה Analytics של מסוף Firebase, אפשר לראות נתונים סטטיסטיים מצטברים וסיכומים של מדדים מרכזיים. אם מוסיפים את Firebase SDK ל-Google Analytics, אפשר גם לסמן המרות בקמפיינים פרסומיים וליצור קהלים בהתאמה אישית במסוף Firebase.
שימו לב: כדי לקבל ייצוג טוב יותר של המדדים הכנסה ממוצעת למשתמש (ARPU) והכנסה ממוצעת לכל משתמש משלם (ARPPU), כדאי לכלול בחישוב ההכנסה של המדדים האלה נתונים מאירוע מותאם אישית של Analytics שנקרא ecommerce_purchase
(איך עושים את זה).
(אופציונלי) שימוש בתכונות נוספות של Google Analytics ו-Firebase
כדאי לנצל את ההזדמנויות והתכונות הנוספות כדי לשפר את המונטיזציה באפליקציה ואת העניין של המשתמשים בה:
הוספה ושימוש ב-Firebase SDK ל-Google Analytics
מטמיעים תיעוד של אירועים מותאמים אישית באפליקציה.
להגדיר בקמפיינים מה נחשב להמרה בהתאמה אישית.
להוסיף נתונים מאירוע
ecommerce_purchase
לחישוב ההכנסה במדדים ARPU ו-ARPPU.
מידע נוסף זמין במדריך בנושא שימוש ב-Google Analytics וב-Firebase עם אפליקציות AdMob.
שימוש במוצרי Firebase אחרים באפליקציה
אחרי שמוסיפים את Firebase SDK for Google Analytics, אפשר להשתמש במוצרים אחרים של Firebase כדי לבצע אופטימיזציה של המודעות באפליקציה.
Remote Config מאפשרת לכם לשנות את ההתנהגות והמראה של האפליקציה בלי לפרסם עדכון לאפליקציה, ללא עלות, למספר בלתי מוגבל של משתמשים פעילים ביום.
A/B Testing מאפשר לכם לבדוק שינויים בממשק המשתמש, בתכונות או בקמפיינים לעידוד השימוש באפליקציה, כדי לדעת אם הם משפיעים על מדדי המפתח (כמו הכנסות ושימור) לפני שאתם משיקים את השינויים לכל המשתמשים.