מתחילים


המדריך הזה מיועד לבעלי אפליקציות שרוצים לייצר הכנסות מאפליקציית 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, מבצעים את השלבים הבאים:

  1. כניסה לחשבון או הרשמה בחשבון AdMob.

  2. רושמים את האפליקציה באמצעות 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 לאפליקציה שלך.

  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 – מוסיפים את התוכן הבא, כולל של ספריית ה-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
    }
    
  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. צריך לסנכרן את האפליקציה כדי לוודא שלכל יחסי התלות יש את הגרסאות הנדרשות.

iOS

השלבים בקטע הזה מדגימים איך להוסיף את מודעות Google לנייד. C++ SDK לפרויקט iOS שלכם.

  1. כדי להוריד את CocoaPods בגרסה 1 ואילך, מריצים את:

    sudo gem install cocoapods --pre
    
  2. מוסיפים את רצף המודעות של Google לנייד מה-SDK לאחר חילוץ.

    1. אם עדיין אין לכם קובץ Podfile, צריך ליצור אותו:

      cd APP_DIRECTORY
      pod init
      
    2. ל-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'
      
    3. מתקינים את רצפי ה-Pod ופותחים את הקובץ .xcworkspace ב-Xcode.

      pod install
      open APP.xcworkspace
      
    4. מוסיפים לפרויקט את ה-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 יש כמה פורמטים שונים של מודעות, כך שאפשר לבחור את הפורמט הרצוי שהכי מתאים לחוויית המשתמש באפליקציה שלכם.

מודעות מלבניות שמופיעות בחלק העליון או התחתון של מסך המכשיר. מודעות באנר מוצגות במסך בזמן שהמשתמשים יוצרים אינטראקציה עם האפליקציה, יתבצע רענון אוטומטי לאחר פרק זמן מסוים. אם זו הפעם הראשונה שאתם משתמשים בנייד פרסום – זה מקום מצוין להתחיל בו.

הטמעת מודעות באנר

מעברון

מודעות במסך מלא שמכסות את הממשק של האפליקציה עד שהמשתמש סוגר אותן. מומלץ להשתמש בהם בהשהיות טבעיות במהלך הביצוע של אפליקציה, כמו בין שלבים במשחק או מיד אחרי שמשימה בוצעה.

הטמעת מודעות מעברון

ההטבה הופעלה

מודעות שמציעות למשתמשים תגמולים בתמורה לצפייה בסרטונים קצרים ולאינטראקציה עם הילדים מודעות וסקרים. משמש למונטיזציה מאפליקציות חינמיות.

הטמעה של מודעות מתגמלות