AdMob+Firebase 102 Unity: צמצום התנהגות האפליקציה ללא עדכון האפליקציה

1. מבוא

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

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

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

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

מה תלמדו

  • איך יוצרים משפך ב-Google Analytics for Firebase
  • איך משתמשים בהגדרת התצורה מרחוק ב-Firebase
  • איך מפעילים Firebase A/B Testing

מה צריך להכין

  • Unity 2018.4.4f1 ואילך
  • Xcode 10 ומעלה (לבניית היעד ל-iOS)
  • חשבון Google
  • מכשיר בדיקה עם Android מגרסה 5.0 ואילך עם כבל USB לחיבור המכשיר, או אמולטור Android שמריץ AVD(מכשיר וירטואלי של Android) עם תמונת מערכת שתומכת בממשקי API של חנות Play או Google
  • מכשיר iOS או סימולטור עם iOS מגרסה 8.0 ואילך

איזה דירוג מגיע לדעתך לרמת חוויית השימוש שלך ב-AdMob?

מתחילים בינונית בקיאים

איזה דירוג מגיע לדעתך לרמת חוויית השימוש שלך ב-Firebase?

מתחילים בינונית בקיאים

2. הגדרת סביבת פיתוח

להורדת הקוד

כדי להוריד את כל הקוד של Codelab זה, יש ללחוץ על הלחצן הבא:

פורקים את קובץ ה-ZIP שהורדתם. הפעולה הזו תגרום לפתיחת תיקיית בסיס בשם admob-firebase-codelabs-unity-master.

...או משכפלים את המאגר של GitHub משורת הפקודה.

$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-unity

המאגר מכיל ארבע תיקיות כך:

  • android_studio_folder.png101-base — קוד ההתחלה שתפתחו ב-Codelab הזה.
  • android_studio_folder.png101-complete_and_102-base — השלמת הקוד ל-Codelab הזה וגם ל-Codelab 102.
  • android_studio_folder.png102-complete (הקוד הושלם עבור 102 Codelab).

הכנת הקבצים הנדרשים

ב-Awesome Drawing Quiz נעשה שימוש בכמה קודים של קוד פתוח, שנדרשים כדי להדר ולהפעיל את הפרויקט.

פותחים את הטרמינל ועוברים לספריית הבסיס של המאגר. אחר כך מריצים את הפקודה ./gradlew :prepareThirdPartyFiles (gradlew.bat :prepareThirdPartyFiles ב-Windows) מהטרמינל כדי להעתיק את הקבצים הנדרשים לפרויקט.

ייבוא של האפליקציה לתחילת הפעולה

מפעילים את Unity ובוחרים באפשרות Open" (פתיחה) במסך הפתיחה. לאחר מכן בוחרים את הספרייה 101-complete_and_102-base מהקוד שהורדתם.

עכשיו הפרויקט אמור להיות פתוח ב-Unity.

הוספת פלאגין Unity של המודעות לנייד של Google

כדי להציג מודעות AdMob באפליקציה של Unity, צריך להוסיף לפרויקט את הפלאגין Unity של המודעות לנייד של Google.

  1. מורידים את חבילת Google Mobile Ads Unity Plugin 3.18.1. (לתשומת ליבך: יכול להיות ש-Codelab הזה לא תואם לגרסה האחרת של הפלאגין)
  2. בפרויקט Awesome Drawing Quiz בפרויקט Unity. בפרויקט, עוברים אל נכסים > ייבוא חבילה > חבילה מותאמת אישית
  3. מייבאים את GoogleMobileAds.unitypackage אל הפרויקט שהורדתם.

עליכם להגדיר גם את מזהה האפליקציה ב-AdMob. בעורך Unity, בוחרים באפשרות Assets > (נכסים >) מודעות Google לנייד > הגדרות מהתפריט.

44fc84fe88235c1f.png

כדי להפעיל את AdMob, מסמנים את התיבה מופעל בקטע Google AdMob. לאחר מכן מזינים את מזהה האפליקציה ב-AdMob באופן הבא:

  • Android: ‏ca-app-pub-3940256099942544~3048611032
  • iOS: ‏ca-app-pub-3940256099942544~2753522596

a6ad7402d4daf330.png

הוספת קובצי תצורה של Firebase לפרויקט Unity

  1. במסך הסקירה הכללית של הפרויקט Awesome Drawing Quiz, לוחצים על סמל ההגדרות. 9bacb5ada7cbaaf6.png
  2. בכרטיסייה General, בוחרים אפליקציות ל-Android ול-iOS כדי להוריד את google-service.json (ל-Android) ואת הקובץ GoogleService-Info.plist (ל-iOS).
  3. מעבירים את שני קובצי התצורה אל התיקייה android_studio_folder.pngAssets (נכסים) בפרויקט Unity.

704aa8e97df63c4e.png

מוסיפים את Firebase Analytics SDK

  1. מורידים את Firebase Unity SDK 5.5.0 ומחלצים את קובץ ה-ZIP במקום נוח. (יש לדלג על השלב הזה אם כבר הורדתם את ה-SDK)
  2. פותחים את הפרויקט Awesome Drawing Quiz ב-Unity, עוברים אל נכסים > ייבוא חבילה > חבילה מותאמת אישית
  3. מה-SDK לא דחוס, מייבאים את Firebase Analytics SDK (dotnet4/FirebaseAnalytics.unitypackage).
  4. בחלון 'ייבוא של חבילת Unity', לוחצים על ייבוא.

3. פותחים את פרויקט Firebase מהמסוף.

לפני שממשיכים לשלב הבא, פותחים את הפרויקט ממסוף Firebase שיצרתם בשלב 'הגדרת פרויקט Firebase' ב-AdMob+Firebase 101 Codelab.

e0a028059c9e00cb.png

4. יצירת משפך של אירועי אפליקציה

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

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

יצירת משפך

כדי ליצור משפך:

  1. נכנסים למסוף Firebase ובוחרים בפרויקט Awesome Drawing Quiz (בוחן ציור מדהים) שיצרתם.
  2. לוחצים על משפכים.
  3. לוחצים על משפך חדש.
  4. מזינים שם ותיאור בשביל המשפך.
  5. בוחרים את שני האירועים הראשונים שרוצים להגדיר כשלבים במשפך.
  6. לוחצים על הוספת אירוע לכל שלב נוסף ובוחרים אירוע.
  7. לוחצים על יצירה.

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

שם המשפך מס' 1: שיעור הצלחה ברמה אירועים: level_start, level_successd3bc78ef61a261d7.png

שם המשפך מס' 2: שיעור השלמת הצפייה במודעות מתגמלות אירועים: ad_reward_prompt, ad_reward_impression, ad_reward45c9542dfa663014.png

מס' 3 שם המשפך: שיעור השלמת המשחק אירועים: game_start, game_completedab25e8501746d5f.png

צפייה בניתוח המשפך

אחרי שיוצרים משפכים, אפשר לגשת אליהם בתפריט משפכים במסוף Firebase. כשלוחצים על שם המשפך ברשימה, אפשר לראות את הניתוח המפורט של כל משפך.

620c0e84587c8ad4.png

לדוגמה, לוחצים על level level rate (שיעור הצלחה של רמה). פרטי המשפך יוצגו באופן הבא:

c889f9b6ece15847.png

בצילום המסך שלמעלה, אפשר לראות את אחוז המשתמשים שנקו רמה (הפעילו את האירוע level_success) אחרי שהתחילו שלב (הפעילו את האירוע level_start). כאן ניתן לראות ש-46.2% מהמשתמשים הסירו את הרמה.

אחרי שלוחצים על ספירת אירועים, המדדים שמבוססים על מספר האירועים יוצגו באופן הבא:

d044fb7b07e6e0d9.png

על סמך המדדים בצילום המסך שלמעלה, היו 116 ניסיונות (הפעלת האירוע level_start) ו-57 פעולות מחיקה (גרמו להפעלה של האירוע level_הצלחה) במהלך התקופה.

מאחר ששיעור ההשלמה שמבוסס על האירועים(49.1%) גבוה מעט מהשיעור שמבוסס על המשתמשים(46.2%), אפשר לומר שיש כמה אנשים שמניבים ביצועים טובים יותר מהאחרים.

5. משלבים את הגדרת התצורה מרחוק באפליקציה

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

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

ב-Codelab הזה, נלמד איך להשתמש ב'הגדרת תצורה מרחוק' כדי להתאים את כמות התגמול (מספר האותיות שצריך לחשוף אחרי צפייה במודעת וידאו מתגמלת) בלי לעדכן את האפליקציה.

הוספת SDK להגדרת תצורה מרחוק ב-Firebase

  1. מורידים את Firebase Unity SDK 5.5.0 ומחלצים את קובץ ה-ZIP במקום נוח.
  2. פותחים את הפרויקט Awesome Drawing Quiz ב-Unity, עוברים אל נכסים > ייבוא חבילה > חבילה מותאמת אישית
  3. מה-SDK הלא דחוס, מייבאים את ה-SDK של הגדרת התצורה מרחוק (dotnet4/FirebaseRemoteConfig.unitypackage).
  4. בחלון 'ייבוא של חבילת Unity', לוחצים על ייבוא.

ייבוא של Firebase.RemoteConfig

שנה את ה-Main.cs כדי לאפשר לך להשתמש בסוג מ-Firebase.remoteConfig ללא צורך להשתמש בשם המוגדר במלואו.

סצנות/ראשי

...

using AwesomeDrawingQuiz.Game;

// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;

namespace AwesomeDrawingQuiz.Scene {
    ...
}

אתחול ו אחזור ערכים של הגדרת תצורה מרחוק

משנים את ה-method InitAndFetchRemoteConfig() ב-Main.cs כדי לאתחל את המכונה של הגדרת התצורה מרחוק, באופן הבא. שימו לב: שם הפרמטר GameSettings.KEY_REWARD_AMOUNT מאוחסן בהגדרת התצורה מרחוק. (בקרוב צריך להצהיר על השדה הזה ב-Codelab הזה)

סצנות/ראשי

private Task InitAndFetchRemoteConfig() {
    // TODO: Initialize and Fetch values from the Remote Config (102)
    Dictionary<string, object> defaults = new Dictionary<string, object>();
    defaults.Add(GameSettings.KEY_REWARD_AMOUNT, 1);
    FirebaseRemoteConfig.SetDefaults(defaults);

    if (Debug.isDebugBuild) {
        ConfigSettings config = new ConfigSettings();
        config.IsDeveloperMode = true;
        FirebaseRemoteConfig.Settings = config;
        return FirebaseRemoteConfig.FetchAsync(System.TimeSpan.Zero);
    } else {
        return FirebaseRemoteConfig.FetchAsync();
    }
}

אפשר לראות שהמכונה FirebaseRemoteConfig מוגדרת לאחזר את הערכים האחרונים מהשרת במצב ניפוי באגים כדי לעזור בתהליך הפיתוח. (IsDeveloperMode = true וגם FetchAsync(System.TimeSpan.Zero))

הפעלה של ערכי הגדרת התצורה מרחוק שאוחזרו

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

סצנות/ראשי

private void ActivateRemoteConfigValues() {
    // TODO: Activate fetched Remote Config values (102)
    FirebaseRemoteConfig.ActivateFetched();
}

שינוי השיטה Start()

כדי לבצע אחזור של האפליקציה מפעיל את הערך של הגדרת התצורה מרחוק בהשקת האפליקציה. משנה את השיטה Start() בקובץ Main.cs באופן הבא.

סצנות/ראשי

void Start () {
    ...
    Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
        ...
    }).ContinueWith(task => { 
        // TODO: Call InitAndFetchRemoteConfig() (102)
        InitAndFetchRemoteConfig();
    }).ContinueWith(task => {
        // TODO: Call ActivateRemoteConfigValues() (102)
        ActivateRemoteConfigValues();

        // Enable 'Start a game' button
        UnityMainThreadDispatcher.Instance()
            .Enqueue(() => buttonStartGame.interactable = true);
    });
    #else
    QuizAnalytics.SetScreenName(QuizAnalytics.SCREEN_MAIN);

    // TODO: Call InitAndFetchRemoteConfig() (102)
    InitAndFetchRemoteConfig().ContinueWith(task => {
        // TODO: Call ActivateRemoteConfigValues() (102)
        ActivateRemoteConfigValues();
    });
    #endif
}

מאחזרים את סכום התגמול מהגדרת התצורה מרחוק

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

Game/GameSettings.cs

// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;

namespace AwesomeDrawingQuiz.Game {
    public class GameSettings {

        ...
        
        // TODO: Apply reward amount from the Remote Config (102)
        public const string KEY_REWARD_AMOUNT = "reward_amount";

        public static GameSettings Instance {
            get {
                return instance;
            }
        }

        ...

        public int RewardAmount {
            get {
                // TODO: Apply reward amount from the Remote Config (102)
                return (int) FirebaseRemoteConfig.GetValue(KEY_REWARD_AMOUNT).LongValue;
            }
            private set { }
        }
    }
}

יוצרים פרמטר של הגדרת תצורה מרחוק מהמסוף

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

כדי ליצור פרמטר חדש, נכנסים למסוף Firebase ובוחרים את הפרויקט Awesome Drawing Quiz שיצרתם קודם. לוחצים על הגדרת תצורה מרחוק -> מוסיפים את לחצן הפרמטר הראשון.

7f52617141c53726.png

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

cbc771fd1685b29c.png

לוחצים על הלחצן פרסום השינויים כדי שהשינויים ייכנסו לתוקף אצל המשתמשים.

d6a6aa4a60e06ee9.png

6. שינוי ההתנהגות של האפליקציה עם הגדרת התצורה מרחוק

עכשיו אפשר להגדיר את סכום התגמול בבוחן הציור Awesome Drawing במסוף Firebase בלי לעדכן את קוד האפליקציה.

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

לעדכן את ערך ברירת המחדל של הפרמטר reward_amount

נכנסים למסוף Firebase ובוחרים את הפרויקט Awesome Drawing Quiz (בוחן ציור מדהים) שיצרתם. לוחצים על הגדרת תצורה מרחוק, ואז לוחצים על reward_amount מתוך הרשימה. לאחר מכן, משנים את ערך ברירת המחדל ל-2, ולאחר מכן לוחצים על הלחצן עדכון.

9a9bd8a26a39bfe3.png

לוחצים על הלחצן פרסום השינויים כדי שהשינויים ייכנסו לתוקף אצל המשתמשים.

d6a6aa4a60e06ee9.png

אימות השינוי בהתנהגות האפליקציה

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

לפני שצופים במודעה מתגמלת

נחשפו שתי אותיות נוספות כפרס

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

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

בעזרת Firebase A/B Testing, אפשר להריץ ניסויים לשיפור חוויית המשתמש הכוללת באפליקציה בלי לעדכן את האפליקציה או ליצור כלי נפרד כדי להריץ כל ניסוי ולעקוב אחרי הביצועים שלו.

תכנון הניסוי

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

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

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

יוצרים את הניסוי

פותחים את הפרויקט Awesome Drawing Quiz ממסוף Firebase. בוחרים בתפריט A/B Testing ואז לוחצים על הלחצן יצירת ניסוי.

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

f38a85328ab54e7e.png

נותנים לניסוי שם 'סכום התגמול' כמו שמוצג בצילום המסך הבא.

15d552adb61c0b08.png

מגדירים את אפשרויות הטירגוט. ב-Codelab הזה, אפשר לטרגט 100% מהמשתמשים בAwesome Drawing Quiz.

61b316741a63050f.png

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

694641b57d90ff65.png

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

10ed7f5b06858519.png

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

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

ae6477ce79f6265d.png

הפעלת הניסוי

לוחצים על הלחצן התחלת הניסוי כדי להפעיל את הניסוי. לתשומת ליבכם: לא ניתן לשנות את הגדרת הניסוי לאחר שהוא מתחיל.

7131bf9b4fa74fa5.png

8. ניהול הניסוי

איך רואים את התקדמות הניסוי

אפשר לבדוק את התקדמות הניסוי בתפריט A/B Testing במסוף Firebase, שייראה כמו צילום המסך הבא. שימו לב שאפשר גם לראות בכרטיס את מספר המשתמשים שהשתתפו בניסוי ב-30 הדקות האחרונות.

8a7009bdd8871d95.png

לאחר שלוחצים על ניסוי מתוך הרשימה, ניתן לראות את פרטי הניסוי. עד שהניסוי יוכל להכריז על מנהיג (כלומר, הווריאנט בעל הביצועים הטובים ביותר), תוצג ההודעה It's have too long to, a שאר.

a4e7ca3e3f4711cd.png

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

e2d00fc27c053fd3.png

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

c3859d642f85cc52.png

השקת המנהיג לכל המשתמשים

אחרי שהניסוי יפעל למשך זמן רב שבו הווריאנט המוביל, או הווריאנט המנצח, אפשר להשיק את הניסוי ל-100% מהמשתמשים. אחרי שבדיקת ה-A/B תימצא מובילה ברורה, תוכלו לעודד אתכם להשיק את הווריאנט המוביל לכל המשתמשים.

86cb6a6c07516634.png

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

במסך פרטי הניסוי, לוחצים על תפריט ההקשר ( 73afe611adf58774.png) ואז לוחצים על השקת וריאנט.

374e1c72be1d0656.png

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

e176f6e6a72c754.png

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

d65d545620ce93f6.png

9. הכול מוכן!

השלמת את Unity Codelab ב-AdMob+Firebase 102. הקוד המלא של Codelab הזה מופיע בתיקייה android_studio_folder.png102-complete.