מיקומי מודעות

במדריך הזה מוסבר איך להשתמש בפלאגין של Google Mobile Ads ב-Unity התכונה 'מיקומי מודעות' מאפשרת ליצור ולהציג מודעות לקידום האפליקציה שלכם.

דרישות מוקדמות

הפעלה של Google Mobile Ads SDK

לפני שטוענים את המודעות, צריך להפעיל את Mobile Ads SDK MobileAds.Initialize(), עם קריאה חוזרת (callback) של Action<InitializationStatus>. הזה צריך לעשות זאת פעם אחת בלבד, רצוי בעת הפעלת האפליקציה.

using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    ...
    public void Start()
    {
        // Initialize the Mobile Ads SDK.
        MobileAds.Initialize((initStatus) =>
        {
            // SDK initialization is complete
        });
        ...
    }
}

יצירת מיקומי מודעות

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

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

הגדרה של מיקומי מודעות

לכל מיקום יש את המאפיינים הבאים:

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

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

הוספת AdGameObject לסצנה

אפשר להוסיף אובייקט AdGameObject לפורמטים של מודעות באנר, מודעות מעברון או מודעות מתגמלות סצנה באמצעות GameObject > מודעות Google לנייד ב-Unity Editor. בוחרים את כדי להוסיף מיקום לסצנה הפעילה.

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

אפשר לשנות את השם של מיקום המודעה על ידי שינוי השם של GameObject עצמו. בצילום המסך הבא מוצגת דוגמה ל-AdGameObject שנקרא מודעת באנר.

הגדרות AdGameObject

אפשר להגדיר את AdGameObject בסצנה שלך דרך ה-Inspector בהגדרות של הרכיב אובייקט משחק מודעה (סקריפט).

מיקום מודעה

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

הגדרה של BannerAdGameObject (באנר בלבד)

  • גודל – בוחרים את הגודל של הבאנר שבו רוצים להשתמש.
    • למודעת באנר מותאמת מעוגנת יש עוד כמה אפשרויות:
      • כיוון – בחירת כיוון המכשיר שמשמש לחישוב המודעה גובה.
      • שימוש ברוחב מסך מלא – כשהאפשרות הזו מסומנת, הבאנר יתפוס ברוחב מסך מלא. ניתן להתאים % רוחב המסך (50~99%) אם מבטלים את הסימון של האפשרות שימוש ברוחב מסך מלא.
    • באפשרות בהתאמה אישית אפשר לציין את הרוחב והגובה של הבאנר.
  • מיקום המודעה בדף – בוחרים את המיקום שבו צריך למקם את הבאנר.

התקשרות חזרה

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

  1. צריך ליצור פונקציה שתואמת לקריאה החוזרת על המודעה.

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. יש לצרף את הסקריפט שמכיל את הפונקציה שלמעלה לכל GameObject ב- לסצנה.

  3. לוחצים על הלחצן +, גוררים & יש לשחרר את ה-GameObject שצירפת את הסקריפט,

  4. בוחרים את הפונקציה שרוצים לקשר לקריאה החוזרת (callback) של המודעה. עבור קריאות חוזרות (callback) של מודעות עם פרמטרים, בוחרים את הפונקציה שמקבלת את הערך הדינמי כדי שתוכלו לקבל את ערך הפרמטר מה-SDK.

שימוש ב-AdGameObject מהסקריפט

קבלת המופע של AdGameObject מהסקריפט

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

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

MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

גם לאובייקט BannerAdGameObject שהוחזר יש שיטות נוחות Hide() וגם Show()

מעברון

MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

לאובייקט InterstitialAdGameObject שמוחזר יש שיטה של נוחות ShowIfLoaded().

ההטבה הופעלה

MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

לאובייקט RewardedAdGameObject שמוחזר יש שיטה של נוחות ShowIfLoaded().

לדוגמה, אפשר לקבל מופע של BannerAdGameObject ולטעון אותו כך: ככה:

using UnityEngine;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class BannerTestScript : MonoBehaviour
{
    BannerAdGameObject bannerAd;

    void Start()
    {
        bannerAd = MobileAds.Instance
            .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

        bannerAd.LoadAd();
        ...
    }
    ...
}

אם יש BannerAdGameObject בשם BannerAd, אפשר לקבל מופע של כך:

MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");

גישה לאובייקט בסיסי של המודעה ב-AdGameObject

קטעי הקוד האלה מדגימים איך לגשת לאובייקט המודעה המשויך עם AdGameObject.

BannerAdGameObject bannerAd = MobileAds.Instance
    .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

// Access BannerView object
BannerView bannerView = bannerAd.BannerView;

מעברון

InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
    .GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;

ההטבה הופעלה

RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
    .Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;

דוגמאות

הצגה של מודעת מעברון

הנה דוגמה להגדרת משחק לטעינה ולהצגה של מודעת מעברון מודעה שמשתמשת באובייקט AdGameObject.

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

אחר כך צריך לוודא שהפעלתם את ה-SDK באמצעות השלבים הבאים. לתשומת ליבכם: הגרסה האוטומטית התכונה 'טעינה' ב-AdGameObject לא תפעל אם שכחתם להפעיל את SDK.

לאחר מכן להציג מודעת מעברון בין מעבר בין מסך, על ידי קריאה InterstitialAdGameObject.ShowIfLoaded(). הקוד הבא מראה דוגמה להצגת מודעת מעברון בין מעבר בין סצנות.

using UnityEngine;
using UnityEngine.SceneManagement;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAd<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }

    public void OnClickShowGameSceneButton()
    {
        // Display an interstitial ad
        interstitialAd.ShowIfLoaded();

        // Load a scene named "GameScene"
        SceneManager.LoadScene("GameScene");
    }
}

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

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

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAdGameObject<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("MobileAds initialized");

            // Load an interstitial ad after the SDK initialization is complete
            interstitialAd.LoadAd();
        });
    }
    ...
}

איך מפעילים את התכונה 'צפייה במודעה מתגמלת' מצב הלחצן

זאת דוגמה להפעלה של 'צפייה במודעה מתגמלת'. לחצן באמצעות מודעה מקומות.

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

בשיטה Start(), משנים את המצב הפעיל של הלחצן לfalse. הזה יסתיר את הלחצן מהסצנה.

public class MainScene : MonoBehaviour
{
    ...
    void Start()
    {
        GameObject.Find("Button").SetActive(false);
        ...
    }
}

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

בקטע 'קריאות חוזרות (callback)' בבודק RewardedAdGameObject, לוחצים על הלחצן + מ-On Ad Loaded() כדי לאפשר קריאה לפונקציה כשמודעה מתגמלת נטענת.

גוררים ומשחררים את האובייקט GameObject שהוספתם בשלב הקודם כדי השדה ללא (אובייקט). בוחרים פונקציה מתוך התפריט הנפתח. לוחצים על אין פונקציה > אובייקט משחק > SetActive(bool) ואז מסמנים את התיבה כדי לאשר הוא שולח את true כפרמטר (נקרא SetActive(true)).

בקטע הזה של 'קריאות חוזרות (callback)', אפשר גם לקשר אירוע שייקרא כשהאירוע RewardedAd.OnUserEarnedReward מופעל. לפרטים נוספים, עיינו בקטע הזה.

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

לאחר מכן, מחברים את הפונקציה RewardedAdGameObject.ShowIfLoaded() קריאה חוזרת של On Click().

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

using UnityEngine;

using GoogleMobileAds.Api;

public class MainScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("Button").SetActive(false);

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }
}

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

הגדרת קריאה חוזרת (callback) של פרס עבור RewardedAdGameObject

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

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

using UnityEngine;
using GoogleMobileAds.Api;

class RewardedTestScript : MonoBehaviour {
    ...
    public void OnUserEarnedReward(Reward reward) {
        Debug.Log("OnUserEarnedReward: reward=" +
            reward.Type + ", amount=" + reward.Amount);
    }
    ...
}

יש לצרף את הסקריפט RewardedTestScript לכל אובייקט GameObject (מלבד המודעה) מיקום GameObject) בסצנה. בדוגמה הזו, הוא מצורף אל אובייקט GameObject של המצלמה.

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

גוררים ומשחררים את ה-GameObject של המצלמה הראשית שהוספתם במצב הקודם לשדה ללא (אובייקט). בוחרים פונקציה שרוצים לקבל ממנה קריאה התפריט הנפתח. לוחצים על אין פונקציה > RewardedTestScript > OnUserBrandedReward.

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