מדריך זה מסביר איך להשתמש בפלאגין 'מיקומי מודעות' ב-Google Mobile Ads Unity כדי ליצור ולהציג מודעות לקידום האפליקציה שלכם.
דרישות מוקדמות
Unity, גרסה 2017.4 ואילך.
מורידים ומייבאים את גרסת ה-build של הפלאגין של GMA Unity.
מגדירים את מזהה האפליקציה ב-AdMob ב-Unity Editor.
הפעלה של 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) של מודעה. לדוגמה, אם אתם רוצים לטפל מתי מודעת הבאנר לא נטענת:
יש ליצור פונקציה התואמת לקריאה חוזרת (callback) של מודעה.
public void OnBannerAdFailedToLoad(string reason) { Debug.Log("Banner ad failed to load: " + reason); }
יש לצרף את הסקריפט שמכיל את הפונקציה שלמעלה לכל אובייקט משחק בסצנה.
לוחצים על הלחצן + ולאחר מכן גוררים את ה-GameObject #&39; שאליו צירפתם את הסקריפט.
בוחרים את הפונקציה שרוצים לקשר לקריאה חוזרת (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()
תופעל כאשר תקבלו
תגמול על אינטראקציה עם המודעה.