תחילת העבודה עם AdMob בפרויקט C++‎

מומלץ להשתמש בערכות ה-SDK ל-iOS ול-Android מ-AdMob.


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

  1. צריך לרשום כל וריאציה של האפליקציה לפלטפורמה כAdMob אפליקציה.

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

    2. צריך לרשום כל וריאציה של האפליקציה לכל פלטפורמה ב-AdMob. בשלב הזה נוצרת אפליקציית AdMob עם AdMob מזהה אפליקציה ייחודי, שתצטרכו לו בהמשך המדריך הזה.

    תתבקשו להוסיף את Mobile AdsSDK לאפליקציה. בהמשך המדריך הזה מופיעות הוראות מפורטות לביצוע המשימה.

  2. מקשרים כל אחת מהאפליקציות שלכם ב-AdMob לאפליקציית Firebase התואמת.

    השלב הזה הוא אופציונלי, אבל מומלץ מאוד. מידע נוסף על היתרונות של הפעלת מדדי משתמשים וקישור אפליקציות AdMob ל-Firebase

    בכל אחת מהפלטפורמות, מבצעים את שני השלבים הבאים בלוח הבקרה Apps (אפליקציות) בחשבון AdMob:

    1. מפעילים את האפשרות מדדי משתמשים כדי לאפשר ל-AdMob לעבד ולהציג נתונים שנבחרו מתוך ניתוח הנתונים בחשבון AdMob. ההגדרה הזו נדרשת גם כדי לקשר את האפליקציה AdMob ל-Firebase.

    2. מקשרים את 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>

או לערוך אותו בכלי לעריכת רשימת הנכסים:

Property List Editor

שלב 3: הוספה של Google Mobile Ads SDK

‫Google Mobile Ads C++ SDK נמצא במרחב השמות firebase::gma, לכן צריך להוריד את Firebase C++ SDK ואז לחלץ אותו לספרייה לפי בחירתכם.

‫Firebase C++ SDK לא ספציפי לפלטפורמה, אבל הוא דורש הגדרות של ספריות ספציפיות לפלטפורמה.

Android

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

סיימת! האפליקציה שלך בשפת C++‎ מוגדרת לשימוש ב-Google Mobile Ads SDK ל-C++‎.

iOS

השלבים בקטע הזה הם דוגמה להוספה של Google Mobile Ads C++ SDK לפרויקט iOS.

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

    sudo gem install cocoapods --pre
  2. מוסיפים את Google Mobile Ads pod מ-SDK שלא נפרס.

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

      cd YOUR_APP_DIRECTORY
      pod init
    2. מוסיפים את ה-Pod של Google Mobile Ads C++ SDK לפרופיל.

      pod 'Google-Mobile-Ads-SDK'
    3. מתקינים את ה-pod ואז פותחים את הקובץ .xcworkspace ב-Xcode.

      pod install
      open YOUR_APP.xcworkspace
    4. מוסיפים לפרויקט את המסגרות הבאות מ-Firebase C++ SDK:

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

סיימת! האפליקציה שלך בשפת C++‎ מוגדרת לשימוש ב-Google Mobile Ads SDK ל-C++‎.

שלב 4: אתחול של Google Mobile Ads SDK

לפני טעינת המודעות, מאתחלים את Mobile Ads SDK על ידי קריאה ל-firebase::gma::Initialize().

הקריאה הזו מחזירה firebase::Future שמושלם אחרי סיום האתחול (או אחרי פסק זמן של 30 שניות). צריך להפעיל את ה-method הזה רק פעם אחת, מוקדם ככל האפשר, באופן אידיאלי בזמן הפעלת האפליקציה.

דוגמה להפעלת 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 מאפשר לכם לקבוע את סטטוס ההשלמה של קריאות לשיטות אסינכרוניות.

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

אפשר גם לרשום פונקציות קריאה חוזרת שיופעלו כשפעולת 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.

מודעות מלבניות שמופיעות בחלק העליון או התחתון של מסך המכשיר

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

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

מודעת מעברון

מודעות במסך מלא שמכסות את הממשק של אפליקציה עד שהמשתמש סוגר אותן

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

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

מתגמל

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

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

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

נושאים מעניינים אחרים

אפשר לנסות דרכים נוספות למדוד מדדים ולשלב תכונות של Firebase עם AdMob.

צפייה במדדי משתמשים ובניתוח נתונים

אחרי האתחול, Mobile Ads SDK מתחיל באופן אוטומטי לרשום ביומן נתוני ניתוח של אירועים ומאפייני משתמשים מהאפליקציה. אפשר לראות את הנתונים האלה בלי להוסיף קוד לאפליקציה או להטמיע מודעות. אלה המקומות שבהם אפשר לראות את נתוני הניתוח האלה:

שימו לב: כדי לקבל ייצוג טוב יותר של המדדים הכנסה ממוצעת למשתמש (ARPU) והכנסה ממוצעת לכל משתמש משלם (ARPPU), כדאי לכלול בחישוב ההכנסה של המדדים האלה נתונים מאירוע מותאם אישית של Analytics שנקרא ecommerce_purchase (איך עושים את זה).

(אופציונלי) שימוש בתכונות נוספות של Google Analytics ו-Firebase

כדי לשפר את המונטיזציה באפליקציה ואת רמת המעורבות של המשתמשים, כדאי לנצל את ההזדמנויות והתכונות הבאות:

  • הוספה ושימוש ב-Firebase SDK ל-Google Analytics

    מידע נוסף זמין במדריך בנושא שימוש ב-Google Analytics וב-Firebase עם אפליקציות AdMob.

  • שימוש במוצרים אחרים של Firebase באפליקציה

    אחרי שמוסיפים את Firebase SDK for Google Analytics, אפשר להשתמש במוצרים אחרים של Firebase כדי לבצע אופטימיזציה של המודעות באפליקציה.

    • Remote Config מאפשרת לשנות את ההתנהגות ואת המראה של האפליקציה בלי לפרסם עדכון לאפליקציה.

    • ‫A/B Testing מאפשר לכם לבדוק שינויים בממשק המשתמש של האפליקציה, בתכונות או בקמפיינים לעידוד השימוש באפליקציה, כדי לדעת אם הם משפיעים על מדדי המפתח (כמו הכנסות ושימור) לפני שאתם משיקים את השינויים באופן נרחב.