מודעות מעברון הן מודעות במסך מלא שמכסות את הממשק של האפליקציה המארחת. הן מוצגות בדרך כלל בנקודות מעבר טבעיות בגלישה באפליקציה, למשל במהלך הפסקה בין שלבי משחק. כשמוצגת מודעת מעברון באפליקציה, המשתמש יכול להקיש על המודעה ולהמשיך ליעד שלה או לסגור אותה ולחזור לאפליקציה. מחקר מקרה
במדריך הזה מוסבר איך לשלב מודעות מעברון באפליקציה של Unity.
דרישות מוקדמות
- קוראים את המדריך לתחילת העבודה.
תמיד כדאי לבדוק באמצעות מודעות בדיקה
קוד לדוגמה שכולל מזהה של יחידת מודעות, שאפשר להשתמש בו כדי לבקש מודעות לבדיקה. הוא הוגדר במיוחד להחזיר מודעות בדיקה במקום מודעות ייצור בכל בקשה, כך שבטוח להשתמש בו.
עם זאת, אחרי שמירת אפליקציה בממשק האינטרנט של AdMob ויצירת מזהי יחידות מודעות משלכם לשימוש באפליקציה, עליכם להגדיר את המכשיר כמכשיר בדיקה במהלך הפיתוח.
Android
ca-app-pub-3940256099942544/1033173712
iOS
ca-app-pub-3940256099942544/4411468910
איך מפעילים את Mobile Ads SDK
לפני טעינת המודעות, צריך להפעיל את Mobile Ads SDK באפליקציה באמצעות הקריאה MobileAds.Initialize()
. צריך לעשות זאת רק פעם אחת, רצוי בזמן השקת האפליקציה.
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize((InitializationStatus initStatus) =>
{
// This callback is called once the MobileAds SDK is initialized.
});
}
}
אם אתם משתמשים בתהליך בחירת הרשת (Mediation), כדאי להמתין עד לקריאה החוזרת (callback) לפני טעינת המודעות, כדי לוודא שכל המתאמים של תהליך בחירת הרשת יופעלו.
הטמעה
השלבים העיקריים לשילוב מודעות מעברון הם:
- טעינת מודעת המעברון
- הצגת מודעת המעברון
- האזנה לאירועים של מודעות מעברון
- ניקוי מודעת המעברון
- טעינת מודעת המעברון הבאה מראש
טעינת מודעת המעברון
הטעינה של מודעת מעברון מתבצעת באמצעות השיטה הסטטית Load()
בכיתה InterstitialAd
. שיטת הטעינה דורשת מזהה של יחידת מודעות, אובייקט AdRequest
וטיפול בהשלמה (completion handler) שנקרא כשהטעינה של המודעה מסתיימת בהצלחה או בכישלון. האובייקט InterstitialAd
שנטען מסופק כפרמטר בטיפול השלמה. הדוגמה הבאה מראה איך לטעון InterstitialAd
.
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
private string _adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
private string _adUnitId = "unused";
#endif
private InterstitialAd _interstitialAd;
/// <summary>
/// Loads the interstitial ad.
/// </summary>
public void LoadInterstitialAd()
{
// Clean up the old ad before loading a new one.
if (_interstitialAd != null)
{
_interstitialAd.Destroy();
_interstitialAd = null;
}
Debug.Log("Loading the interstitial ad.");
// create our request used to load the ad.
var adRequest = new AdRequest();
// send the request to load the ad.
InterstitialAd.Load(_adUnitId, adRequest,
(InterstitialAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("interstitial ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Interstitial ad loaded with response : "
+ ad.GetResponseInfo());
_interstitialAd = ad;
});
}
הצגת מודעת המעברון
כדי להציג מודעת מעברון טעונה, צריך לקרוא ל-method Show()
במכונה InterstitialAd
. המודעות עשויות להופיע פעם אחת לכל טעינת דף. משתמשים ב-method CanShowAd()
כדי לוודא שהמודעה מוכנה להצגה.
/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowInterstitialAd()
{
if (_interstitialAd != null && _interstitialAd.CanShowAd())
{
Debug.Log("Showing interstitial ad.");
_interstitialAd.Show();
}
else
{
Debug.LogError("Interstitial ad is not ready yet.");
}
}
האזנה לאירועים של מודעות מעברון
כדי להתאים אישית את התנהגות המודעה, אפשר להתחבר למספר אירועים במחזור החיים של המודעה. כדי להאזין לאירועים האלה, צריך לרשום נציג (delegate) כפי שמתואר בהמשך.
private void RegisterEventHandlers(InterstitialAd interstitialAd)
{
// Raised when the ad is estimated to have earned money.
interstitialAd.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
interstitialAd.OnAdImpressionRecorded += () =>
{
Debug.Log("Interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
interstitialAd.OnAdClicked += () =>
{
Debug.Log("Interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
interstitialAd.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
interstitialAd.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
};
}
ניקוי מודעת המעברון
כשמסיימים להשתמש ב-InterstitialAd
, חשוב להפעיל את השיטה Destroy()
לפני שמבטלים את ההפניה אליו:
_interstitialAd.Destroy();
הפעולה הזו תודיע לפלאגין שהאובייקט לא נמצא יותר בשימוש, ואפשר יהיה לנצל מחדש את הזיכרון שהוא תופס. אם לא קוראים ל-method הזה, נוצרות דליפות זיכרון.
טעינת מודעת המעברון הבאה מראש
מודעות מעברון הן אובייקט לשימוש חד-פעמי. כלומר, אחרי שמודעה מעברון תוצג, לא ניתן יהיה להשתמש באובייקט שוב. כדי לבקש מודעת מעברון אחרת, יוצרים אובייקט InterstitialAd
חדש.
כדי להכין מודעת מעברון להזדמנות החשיפות הבאה, צריך לטעון מראש את מודעת המעברון ברגע שמופעל אירוע המודעות OnAdFullScreenContentClosed
או OnAdFullScreenContentFailed
.
private void RegisterReloadHandler(InterstitialAd interstitialAd)
{
// Raised when the ad closed full screen content.
interstitialAd.OnAdFullScreenContentClosed += ()
{
Debug.Log("Interstitial Ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
// Raised when the ad failed to open full screen content.
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
}
שיטות מומלצות
- כדאי לבדוק אם מודעות מעברון הן סוג המודעה המתאים לאפליקציה שלכם.
- מודעות מעברון פועלות בצורה הטובה ביותר באפליקציות עם נקודות מעבר טבעיות. נקודות כאלה נוצרות בסיום של משימה כלשהי באפליקציה, כמו שיתוף תמונה או השלמת רמה במשחק. חשוב להביא בחשבון אילו נקודות בתהליך השימוש באפליקציה הן הטובות ביותר להצגת מודעות מעברון, ואיך סביר להניח שהמשתמשים יגיבו אליהן.
- השהיית הפעולה כשמוצגת מודעת מעברון.
- יש כמה סוגים של מודעות מעברון, כמו טקסט, תמונה או וידאו. חשוב לוודא שכאשר מודעה מעברון מוצגת באפליקציה, היא גם משהה את השימוש במשאבים מסוימים כדי לאפשר למודעה לנצל אותם. לדוגמה, כשאתם קוראים להצגת מודעה מעברון, חשוב להשהות את כל הפלט האודיו שנוצר על ידי האפליקציה. תוכלו להמשיך את הפעלת הצלילים באירוע
OnAdFullScreenContentClosed()
, שאפשר להפעיל כשהמשתמש מסיים את האינטראקציה עם המודעה. בנוסף, מומלץ להשהות באופן זמני משימות חישוב אינטנסיביות, כמו לולאה של משחק, בזמן שהמודעה מוצגת. כך אפשר להבטיח שהמשתמשים לא יראו גרפיקה איטית או לא תגובה או סרטון עם קפיצות. - אסור להציף את המשתמש במודעות.
- הגדלת תדירות הצגת המודעות המעברון באפליקציה עשויה להיראות כדרך מצוינת להגדלת ההכנסות, אבל היא גם עלולה לפגוע בחוויית המשתמש ולהוריד את שיעורי הקליקים. חשוב לוודא שההפרעות למשתמשים לא תהיינה תכופות מדי, כדי שהם יוכלו ליהנות מהשימוש באפליקציה.
מקורות מידע נוספים
- דוגמה ל-HelloWorld: הטמעה מינימלית של כל הפורמטים של המודעות.