מודעת מעברון מתגמלת היא סוג של פורמט מודעה בתמורה לתמריץ, שמאפשר לכם להציע תגמולים למודעות שמופיעות באופן אוטומטי במהלך מעברים טבעיים בין אפליקציות. בניגוד למודעות מתגמלות, המשתמשים לא שנדרש כדי להביע הסכמה לצפייה במודעת מעברון מתגמלת.
דרישות מוקדמות
- מבצעים את ההוראות במדריך לתחילת העבודה.
ביצוע בדיקות באמצעות מודעות בדיקה תמיד
הקוד לדוגמה הבא מכיל מזהה של יחידת מודעות שאפשר להשתמש בו כדי לבקש מודעות לבדיקה. הוא הוגדר במיוחד להצגת מודעות בדיקה במקום מודעות בסביבת הייצור לכל בקשה, כך שאפשר להשתמש בה בצורה בטוחה.
עם זאת, אחרי שמירת אפליקציה בממשק האינטרנט של Ad Manager ויצירת מזהי יחידות מודעות משלכם לשימוש באפליקציה, עליכם להגדיר את המכשיר כמכשיר בדיקה במהלך הפיתוח.
/21775744923/example/rewarded-interstitial
הפעלה של 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), עליך להמתין עד שהקריאה החוזרת תתבצע לפני טעינת המודעות בתור פעולה זו תבטיח שכל המתאמים לתהליך בחירת הרשת (Mediation) יופעלו.
הטמעה
אלה השלבים העיקריים לשילוב מודעות מעברון מתגמלות:
- טעינת מודעת המעברון המתגמלת
- [אופציונלי] אימות קריאות חוזרות (callback) של אימות בצד השרת (SSV)
- הצגה של מודעת המעברון המתגמלת עם קריאה חוזרת (callback) של הפרס
- איך להאזין לאירועים של מודעות מעברון מתגמלות
- איך מוחקים את מודעת המעברון המתגמלת
- טעינה מראש של מודעת המעברון המתגמלת הבאה
איך טוענים את מודעת המעברון המתגמלת
הטעינה של מודעת מעברון מתגמלת מבוצעת באמצעות Load()
הסטטי
במחלקה RewardedInterstitialAd
. לשיטת הטעינה נדרשת מודעה
מזהה יחידה, אובייקט AdManagerAdRequest
והשלמה
handler שמקבל קריאה כשטעינת המודעה מצליחה או נכשלת. הפריטים שנטענו
אובייקט RewardedInterstitialAd
סופק כפרמטר בהשלמה
המטפל. הדוגמה הבאה מראה איך לטעון RewardedInterstitialAd
.
// This ad unit is configured to always serve test ads.
private string _adUnitId = "/21775744923/example/rewarded-interstitial";
private RewardedInterstitialAd _rewardedInterstitialAd;
/// <summary>
/// Loads the rewarded interstitial ad.
/// </summary>
public void LoadRewardedInterstitialAd()
{
// Clean up the old ad before loading a new one.
if (_rewardedInterstitialAd != null)
{
_rewardedInterstitialAd.Destroy();
_rewardedInterstitialAd = null;
}
Debug.Log("Loading the rewarded interstitial ad.");
// create our request used to load the ad.
var adRequest = new AdManagerAdRequest();
adRequest.Keywords.Add("unity-admob-sample");
// send the request to load the ad.
RewardedInterstitialAd.Load(_adUnitId, adRequest,
(RewardedInterstitialAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("rewarded interstitial ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Rewarded interstitial ad loaded with response : "
+ ad.GetResponseInfo());
_rewardedInterstitialAd = ad;
});
}
[אופציונלי] אימות קריאות חוזרות (callback) של אימות בצד השרת (SSV)
אפליקציות שדורשות נתונים נוספים לצורך אימות בצד השרת
כדי לשלוח קריאה חוזרת (callback) צריך להשתמש בתכונה 'נתונים מותאמים אישית' של מודעות מעברון מתגמלות.
כל ערך מחרוזת שמוגדר באובייקט של מודעה מתגמלת מועבר אל custom_data
של השאילתה החוזרת של ה-SSV. אם לא הוגדר ערך של נתונים מותאמים אישית, הפרמטר
ערך הפרמטר של השאילתה custom_data
לא ייכלל בקריאה החוזרת של SSV.
דוגמת הקוד הבאה מדגימה איך להגדיר את אפשרויות ה-SSV אחרי מודעת המעברון המתגמלת נטענה.
// send the request to load the ad.
RewardedInterstitialAd.Load(_adUnitId,
adRequest,
(RewardedInterstitialAd ad, LoadAdError error) =>
{
// If the operation failed, an error is returned.
if (error != null || ad == null)
{
Debug.LogError("Rewarded interstitial ad failed to load an ad " +
" with error : " + error);
return;
}
// If the operation completed successfully, no error is returned.
Debug.Log("Rewarded interstitial ad loaded with response : " +
ad.GetResponseInfo());
// Create and pass the SSV options to the rewarded ad.
var options = new ServerSideVerificationOptions
.Builder()
.SetCustomData("SAMPLE_CUSTOM_DATA_STRING")
.Build()
ad.SetServerSideVerificationOptions(options);
});
אם ברצונך להגדיר את מחרוזת התגמולים המותאמת אישית, עליך לעשות זאת לפני הצגת המודעה.
הצגה של מודעת המעברון המתגמלת עם קריאה חוזרת (callback) של הפרס
כשמציגים את המודעה, צריך לבצע קריאה חוזרת כדי לטפל בתגמול
למשתמש. ניתן להציג מודעות פעם אחת בלבד בכל טעינה. אפשר להשתמש בשיטה CanShowAd()
כדי
אימות שהמודעה מוכנה להצגה.
הקוד הבא מציג את השיטה הטובה ביותר להצגת מודעה מעברון עם פרס.
public void ShowRewardedInterstitialAd()
{
const string rewardMsg =
"Rewarded interstitial ad rewarded the user. Type: {0}, amount: {1}.";
if (rewardedInterstitialAd != null && rewardedInterstitialAd.CanShowAd())
{
rewardedInterstitialAd.Show((Reward reward) =>
{
// TODO: Reward the user.
Debug.Log(String.Format(rewardMsg, reward.Type, reward.Amount));
});
}
}
איך להאזין לאירועים של מודעות מעברון מתגמלות
כדי להתאים אישית את התנהגות המודעה, אפשר להתמקד בכמה אירועים במחזור החיים של המודעה. רוצה להאזין לאירועים האלה על ידי רישום משתמש עם הרשאה לניהול אנשי קשר כפי שמוצג בהמשך.
private void RegisterEventHandlers(RewardedInterstitialAd ad)
{
// Raised when the ad is estimated to have earned money.
ad.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Rewarded interstitial ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
ad.OnAdImpressionRecorded += () =>
{
Debug.Log("Rewarded interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
ad.OnAdClicked += () =>
{
Debug.Log("Rewarded interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
ad.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Rewarded interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Rewarded interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Rewarded interstitial ad failed to open " +
"full screen content with error : " + error);
};
}
איך מוחקים את מודעת המעברון המתגמלת
כשמסיימים עם RewardedInterstitialAd
, חשוב להקפיד להפעיל את
השיטה Destroy()
לפני שמשחררים את ההפניה אליה:
_rewardedInterstitialAd.Destroy();
ההרשאה הזו מציינת לפלאגין שהאובייקט כבר לא בשימוש, והזיכרון שלו אפשר למחוק נוכחות. קריאה לשיטה הזו עלולה להוביל לדליפות זיכרון.
טעינה מראש של מודעת המעברון המתגמלת הבאה
RewardedInterstitialAd
הוא אובייקט חד-פעמי. כלומר, ברגע שמתקבלת תגמול
מודעת מעברון מוצגת, לא ניתן להשתמש שוב באובייקט. כדי לבקש עוד
מודעת מעברון מתגמלת, צריך לטעון RewardedInterstitialAd
חדש
לאובייקט.
כדי להכין מודעת מעברון מתגמלת להזדמנות הבאה לחשיפה:
לטעון מראש את מודעת המעברון המתגמלת אחרי OnAdFullScreenContentClosed
או
אירוע מודעה אחד (OnAdFullScreenContentFailed
) נבחר.
private void RegisterReloadHandler(RewardedInterstitialAd ad)
{
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += ()
{
Debug.Log("Rewarded interstitial ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadRewardedInterstitialAd();
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Rewarded interstitial ad failed to open " +
"full screen content with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadRewardedInterstitialAd();
};
}
מקורות מידע נוספים
- דוגמה ל-HelloWorld: הטמעה מינימלית של כל הפורמטים של המודעות.