מודעות מעברון הן מודעות במסך מלא שמכסות את הממשק של האפליקציה המארחת. הן מוצגות בדרך כלל בנקודות מעבר טבעיות בגלישה באפליקציה, למשל במהלך הפסקה בין שלבי משחק. כשמוצגת מודעת מעברון באפליקציה, המשתמש יכול להקיש על המודעה ולהמשיך ליעד שלה או לסגור אותה ולחזור לאפליקציה. מחקר מקרה
במדריך הזה מוסבר איך לשלב מודעות מעברון באפליקציה של Unity.
דרישות מוקדמות
- קוראים את המדריך לתחילת העבודה.
יצירת מודעת מעברון
השלב הראשון להצגת מודעה מעברון הוא ליצור אובייקט InterstitialAd
בסקריפט שמצורף ל-GameObject
.
using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;
private void RequestInterstitial()
{
#if UNITY_ANDROID
string adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
string adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
string adUnitId = "unexpected_platform";
#endif
// Initialize an InterstitialAd.
this.interstitial = new InterstitialAd(adUnitId);
}
למבנה ה-constructor של InterstitialAd
יש את הפרמטר הבא:
adUnitId
– מזהה יחידת המודעות ב-AdMob שממנהInterstitialAd
צריך לטעון מודעות.
חשוב לשים לב לאופן שבו נעשה שימוש ביחידות מודעות שונות, בהתאם לפלטפורמה. תצטרכו להשתמש ביחידת מודעות ל-iOS כדי לשלוח בקשות להצגת מודעות ב-iOS, וביחידת מודעות ל-Android כדי לשלוח בקשות ב-Android.
תמיד כדאי לבדוק באמצעות מודעות בדיקה
הקוד לדוגמה שלמעלה מכיל מזהה של יחידת מודעות, ואפשר להשתמש בו כדי לבקש הצגת מודעות. הוא הוגדר במיוחד להחזיר מודעות בדיקה במקום מודעות ייצור בכל בקשה, כך שבטוח להשתמש בו.
עם זאת, אחרי שתירשמו אפליקציה בממשק המשתמש של AdMob ותייצרו מזהי יחידות מודעות משלכם לשימוש באפליקציה, תצטרכו להגדיר את המכשיר כמכשיר בדיקה במהלך הפיתוח. זה חשוב מאוד. בדיקה עם מודעות אמיתיות (גם אם אף פעם לא מקישים עליהן) היא בניגוד למדיניות של AdMob ועלולה לגרום להשעיית החשבון. במאמר מודעות בדיקה מוסבר איך לוודא שתמיד יוצגו מודעות בדיקה במהלך הפיתוח.
טעינת מודעה
אחרי שיוצרים את InterstitialAd
, השלב הבא הוא טעינת מודעה.
עושים זאת באמצעות השיטה loadAd()
בכיתה InterstitialAd
. הפונקציה מקבלת את הארגומנט AdRequest
, שמכיל מידע על זמן הריצה (כמו פרטי טירגוט) לגבי בקשה אחת להצגת מודעה.
דוגמה לאופן שבו אפשר לטעון מודעה:
using GoogleMobileAds.Api; ... private InterstitialAd interstitial; private void RequestInterstitial() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/1033173712"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/4411468910"; #else string adUnitId = "unexpected_platform"; #endif // Initialize an InterstitialAd. this.interstitial = new InterstitialAd(adUnitId); // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the interstitial with the request. this.interstitial.LoadAd(request); }
הצגת המודעה
מודעות מעברון צריכות להופיע במהלך הפסקות טבעיות בזרימה של האפליקציה. לדוגמה, בין שלבים במשחק או אחרי שהמשתמש משלים משימה.
כדי להציג מודעה מעברון, משתמשים בשיטה isLoaded()
כדי לוודא שהיא נטענה, ואז קוראים ל-show()
.
אפשר להציג את מודעת המעברון מדוגמת הקוד הקודמת בסוף המשחק, כפי שמתואר בהמשך.
private void GameOver()
{
if (this.interstitial.IsLoaded()) {
this.interstitial.Show();
}
}
אירועי מודעות
כדי להתאים אישית את התנהגות המודעה, אפשר להתחבר למספר אירועים במחזור החיים של המודעה: טעינה, פתיחה, סגירה וכו'. כדי להאזין לאירועים האלה, צריך לרשום נציג ל-EventHandler
המתאים, כפי שמתואר בהמשך.
using GoogleMobileAds.Api; ... private InterstitialAd interstitial; private void RequestInterstitial() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/1033173712"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/4411468910"; #else string adUnitId = "unexpected_platform"; #endif // Initialize an InterstitialAd. this.interstitial = new InterstitialAd(adUnitId); // Called when an ad request has successfully loaded. this.interstitial.OnAdLoaded += HandleOnAdLoaded; // Called when an ad request failed to load. this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad; // Called when an ad is shown. this.interstitial.OnAdOpening += HandleOnAdOpening; // Called when the ad is closed. this.interstitial.OnAdClosed += HandleOnAdClosed; // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the interstitial with the request. this.interstitial.LoadAd(request); } public void HandleOnAdLoaded(object sender, EventArgs args) { MonoBehaviour.print("HandleAdLoaded event received"); } public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) { MonoBehaviour.print("HandleFailedToReceiveAd event received with message: " + args.Message); } public void HandleOnAdOpening(object sender, EventArgs args) { MonoBehaviour.print("HandleAdOpening event received"); } public void HandleOnAdClosed(object sender, EventArgs args) { MonoBehaviour.print("HandleAdClosed event received"); }
האירוע OnAdFailedToLoad
מכיל ארגומנטים מיוחדים של אירועים. הוא מעביר מופע של HandleAdFailedToLoadEventArgs
עם Message
שמתאר את השגיאה:
public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
print("Interstitial failed to load: " + args.Message);
// Handle the ad failed to load event.
}
אירוע מודעה | תיאור |
---|---|
OnAdLoaded |
האירוע OnAdLoaded מופעל כשהמודעה מסתיימת לטעון. |
OnAdFailedToLoad |
האירוע OnAdFailedToLoad מופעל כשמודעה לא נטענת. הפרמטר Message מתאר את סוג התקלה שהתרחשה. |
OnAdOpening |
השיטה הזו מופעלת כשהמודעה מוצגת ומכסה את המסך של המכשיר. |
OnAdClosed |
השיטה הזו מופעלת כשמודעת המעברון נסגרת בגלל שהמשתמש הקיש על סמל הסגירה או השתמש בלחצן 'הקודם'. אם הפלט של האודיו או הלולאה של המשחק באפליקציה הושהו, זה המקום המתאים להמשך. |
ניקוי מודעות מעברון
כשמסיימים להשתמש ב-InterstitialAd
, חשוב להפעיל את השיטה Destroy()
לפני שמבטלים את ההפניה אליו:
interstitial.Destroy();
הפעולה הזו תודיע לפלאגין שהאובייקט כבר לא בשימוש, ואפשר יהיה לנצל מחדש את הזיכרון שהוא תופס. אם לא קוראים ל-method הזה, נוצרות דליפות זיכרון.
כמה שיטות מומלצות
- כדאי לבדוק אם מודעות מעברון הן סוג המודעה המתאים לאפליקציה שלכם.
- מודעות מעברון פועלות בצורה הטובה ביותר באפליקציות עם נקודות מעבר טבעיות. נקודות כאלה נוצרות בסיום של משימה כלשהי באפליקציה, כמו שיתוף תמונה או השלמת רמה במשחק. מכיוון שהמשתמשים מצפים להפסקה בפעולה, קל להציג להם מודעת מעברון בלי להפריע לחוויית השימוש שלהם. חשוב להביא בחשבון באילו נקודות בתהליך העבודה באפליקציה תוצגו מודעות מעברון ואיך סביר להניח שהמשתמשים יגיבו אליהן.
- חשוב לזכור להשהות את הפעולה כשמוצגת מודעת מעברון.
- יש כמה סוגים של מודעות מעברון: טקסט, תמונה, וידאו ועוד. חשוב לוודא שכאשר האפליקציה מציגה מודעה מסוג מודעה מעברון, היא גם משהה את השימוש במשאבים מסוימים כדי לאפשר למודעה לנצל אותם. לדוגמה, כשאתם מבצעים את הקריאה להצגת מודעה מעברון, חשוב להשהות את כל הפלט האודיו שנוצר על ידי האפליקציה. תוכלו להמשיך את הפעלת הצלילים בבורר האירועים
onAdClosed()
, שיופעל כשהמשתמש יסיים את האינטראקציה עם המודעה. בנוסף, מומלץ להשהות באופן זמני משימות חישוב אינטנסיביות (כמו לולאה של משחק) בזמן שהמודעה מוצגת. כך תוכלו לוודא שהמשתמשים לא יראו גרפיקה איטית או לא תגובה, או סרטונים עם קפיצות. - צריך להמתין מספיק זמן עד שהמודעה נטענת.
- כמו שחשוב לוודא שמודעות מעברון מוצגות בזמן המתאים, חשוב גם לוודא שהמשתמשים לא צריכים להמתין עד שהן נטענות. כדי לוודא שמודעת המעברון תהיה מוכנה להצגה כשהזמן יגיע, כדאי לטעון אותה מראש באמצעות קריאה ל-
loadAd()
לפני שמפעילים אתshow()
. - אסור להציף את המשתמש במודעות.
- הגדלת התדירות של מודעות מעברון באפליקציה עשויה להיראות כדרך מצוינת להגדלת ההכנסות, אבל היא גם עלולה לפגוע בחוויית המשתמש ולהוריד את שיעורי הקליקים. חשוב לוודא שההפרעות למשתמשים לא תהיינה תכופות מדי, כדי שהם יוכלו ליהנות מהשימוש באפליקציה.
מקורות מידע נוספים
דוגמאות
- דוגמה ל-HelloWorld הטמעה מינימלית של כל הפורמטים של המודעות