שימוש במיקומי מודעות

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

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

הפעלה של Google Mobile Ads SDK

לפני טעינת מודעות, יש להפעיל את Mobile Ads SDK באמצעות התקשרות MobileAds.Initialize(), עם התקשרות חזרה ב-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 Ads הוא ליצור ולהגדיר מיקום מודעה. אפשר לבחור מיקום מודעה של מודעת באנר, מודעת מעברון או פורמט מתגמלת מתוך Assets > Google Mobile Ads > Ad Placements ב-Unity Editor. לאחר מכן, שלושה מיקומי מודעות מוגדרים ומוכנים לשימוש.

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

הגדרת מיקום המודעה

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

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

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

הוספת AdGameObject לסצנה

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

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

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

הגדרות AdGameObject

אפשר להגדיר את AdGameObject בסצנה מתוך התצוגה 'בודק' בהגדרות של הרכיב Object Game Object (סקריפט).

מיקום מודעה

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

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

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

התקשרות חזרה

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

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

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

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

  4. בוחרים את הפונקציה שרוצים לקשר לקריאה חוזרת (callback) של מודעה. עבור הקריאה החוזרת (callbacks) באמצעות פרמטרים, יש לבחור את הפונקציה כדי לקבל את המשתנה הדינמי כדי לקבל את ערך הפרמטר מה-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 בשם מודעת באנר, אפשר לקבל מופע כזה:

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 באופן הבא. לתשומת ליבך, התכונה Auto Load ב-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 (שנקרא לחצן בדוגמה זו) לסצנה, שישמש להצגת מודעה מתגמלת. הלחצן הזה יהיה זמין רק כשמודעה מתגמלת זמינה.

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

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

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

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

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

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

לאחר מכן, לוחצים על הלחצן כדי להציג מודעה מתגמלת בלחיצה על המודעה. בקטע מופעל קליק חוזר (callback) בכלי לבדיקת לחצנים, לוחצים על הלחצן + וגוררים את ה-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");
        });
    }
}

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

הגדרת קריאה חוזרת של תגמול ל- מתגמלותAdGameObject

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

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

גוררים ומשחררים את האובייקט GameObject של המצלמה הראשית שהוספתם בשלב הקודם לשדה None (אובייקט). בוחרים פונקציה להתקשר אליה מהתפריט הנפתח. לוחצים על No Function > תגמלTestScript > OnUserWinedReward.

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