מודעות מעברון הן מודעות במסך מלא שמכסות את הממשק של האפליקציה המארחת. הן בדרך כלל מוצגות בנקודות מעבר טבעיות בזרימה של האפליקציה, למשל בזמן ההשהיה בין שלבים במשחק. כשאפליקציה מציגה מודעת מעברון, המשתמש יכול לבחור אם להקיש על המודעה ולהמשיך ליעד שלה, או לסגור אותה ולחזור לאפליקציה. מקרה לדוגמה.
במדריך הזה מוסבר איך לשלב מודעות מעברון באפליקציה של 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);
}
הבנאי של 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 |
השיטה הזו מופעלת כשמודעת המעברון נסגרת כי המשתמש מקיש על סמל הסגירה או משתמש בלחצן 'הקודם'. אם האפליקציה השהתה את פלט האודיו או את ה-game Loop, מומלץ להמשיך את ההפעלה הזו. |
הסרת מודעות מעברון
כשמסיימים להשתמש ב-InterstitialAd
, חשוב להפעיל את השיטה Destroy()
לפני שמשחררים את ההפניה אליה:
interstitial.Destroy();
הפלאגין מיידע את הפלאגין על כך שהאובייקט לא נמצא יותר בשימוש ושאפשר לדרוש בחזרה את הזיכרון שהוא מכיל. אם לא תתבצע קריאה לשיטה הזו, התוצאה תהיה דליפות זיכרון.
כמה שיטות מומלצות
- חשוב לשקול אם מודעות מעברון הן סוג המודעה שמתאים לאפליקציה שלכם.
- מודעות מעברון פועלות בצורה הטובה ביותר באפליקציות עם נקודות מעבר טבעיות. נקודות כאלה נוצרות במהלך סיום של משימה בתוך האפליקציה, כמו שיתוף תמונה או השלמת שלב במשחק. מכיוון שהמשתמש מצפה להפסקה בפעולה, קל להציג מודעת ביניים מבלי להפריע לחוויית שלו. חשוב לשים לב באילו שלבים בתהליך העבודה של האפליקציה תציגו מודעות מעברון ואיך סביר שהמשתמש יגיב.
- חשוב לזכור להשהות את הפעולה כשמציגים מודעת מעברון.
- יש כמה סוגים שונים של מודעות מעברון: טקסט, תמונה, וידאו ועוד. חשוב לוודא שכאשר באפליקציה מוצגת מודעת מעברון, היא גם משעה את השימוש במשאבים מסוימים כדי לאפשר למודעה לנצל אותם. לדוגמה, כשמתקשרים כדי להציג מודעת מעברון, צריך להשהות את כל פלט האודיו שנוצר על ידי האפליקציה.
אפשר להמשיך להשמיע צלילים ב-handler של האירועים של
onAdClosed()
, שיופעל אחרי שהמשתמש יסיים לקיים אינטראקציה עם המודעה. כמו כן, כדאי לשקול לעצור באופן זמני משימות חישוב אינטנסיביות (כמו משחק לולאה) בזמן שהמודעה מוצגת. כך תבטיחו שהמשתמשים לא יחוו גרפיקה איטית או תגובה איטית או וידאו מקוטע. - צריך לאפשר זמן טעינה תקין.
- בדיוק כמו שחשוב לוודא שמודעות המעברון מוצגות בזמן המתאים, חשוב גם לוודא שהמשתמש לא יצטרך להמתין לטעינה שלהן. כשטוענים את המודעה מראש, מתקשרים למספר
loadAd()
לפני שמתכוונים להתקשר אלshow()
, וכך מוודאים שמודעת המעברון באפליקציה טעונה במלואה כשיגיע הזמן להציג אותה. - אין להציף את המשתמש במודעות.
- הגברת התדירות של מודעות המעברון באפליקציה אולי נראית כדרך מצוינת להגדיל את ההכנסות, אבל היא גם עלולה לפגוע בחוויית המשתמש ולהוריד את שיעורי הקליקים. חשוב לוודא שהמשתמשים לא יפריעו לעיתים קרובות כך שהם לא יוכלו יותר ליהנות מהשימוש באפליקציה.
מקורות מידע נוספים
דוגמאות
- דוגמה של HelloWorld יישום מינימלי של כל הפורמטים של המודעות