מודעות מעברון הן מודעות במסך מלא שמכסות את הממשק של אפליקציה עד שהמשתמש סוגר אותן. הם בדרך כלל מוצגים בנקודות מעבר טבעיות בזרימה של האפליקציה, למשל בין פעילויות או במהלך ההשהיה בין שלבים במשחק. כשאפליקציה מציגה מודעת מעברון, המשתמש יכול לבחור אם להקיש על המודעה ולהמשיך ליעד שלה, או לסגור אותה ולחזור לאפליקציה. מקרה לדוגמה.
במדריך הזה מוסבר איך לשלב מודעות מעברון באפליקציות ל-Android ול-iOS באמצעות C++ SDK של Google Mobile Ads.
דרישות מוקדמות
- משלימים את התהליך של תחילת העבודה.
- (Android בלבד) ידע בעבודה עם הפניות JNI
jobject
(ראו טיפים ל-Android JNI).
ביצוע בדיקות תמיד באמצעות מודעות בדיקה
כשיוצרים ובודקים את האפליקציות, חשוב להשתמש במודעות בדיקה ולא במודעות פעילות בסביבת הייצור. אם לא תעשה זאת, ייתכן שהחשבון שלך יושעה.
הדרך הקלה ביותר לטעון מודעות בדיקה היא להשתמש במזהה הייעודי של יחידת המודעות לבדיקה במודעות מעברון, שמשתנה בהתאם לפלטפורמה של מכשיר:
- Android:
ca-app-pub-3940256099942544/1033173712
- iOS:
ca-app-pub-3940256099942544/4411468910
הן הוגדרו במיוחד להחזרת מודעות בדיקה לכל בקשה, ואתם יכולים להשתמש בהן באפליקציות שלכם בזמן תכנות, בדיקה וניפוי באגים. הקפידו להחליף אותה במזהה יחידת המודעות שלכם לפני פרסום האפליקציה.
אפשר לקרוא מידע נוסף על אופן הפעולה של מודעות בדיקה ב-Mobile Ads SDK במאמר מודעות בדיקה.
הטמעה
השלבים העיקריים לשילוב מודעות מעברון הם:
- טוענים מודעה.
- הרשמה לקריאה חוזרת (callback).
- להציג את המודעה ולטפל באירועים במחזור החיים שלה.
הגדרת InterstitialAd
מודעות מעברון מוצגות באובייקטים של InterstitialAd
, כך שהשלב הראשון לשילוב מודעות מעברון באפליקציה הוא יצירה והפעלה של אובייקט InterstitialAd
.
מוסיפים את הכותרת הבאה לקוד C++ של האפליקציה:
#include "firebase/gma/interstial_ad.h"
מצהירים ויוצרים אובייקט
InterstitialAd
:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
מאתחלים את המכונה
InterstitialAd
באמצעות ההעברה של תצוגת ההורה לסוגAdParent
. תצוגת ההורה היא הפניה של JNIjobject
ל-Activity
Android או מצביע אל iOSUIView
.// my_ad_parent is a jobject reference to an Android Activity or // a pointer to an iOS UIView. firebase::gma::AdParent ad_parent = static_cast<firebase::gma::AdParent>(my_ad_parent); firebase::Future<void> result = interstitial_ad->Initialize(ad_parent);
במקום לשמור את העתיד כמשתנה, אפשר לבדוק מדי פעם את הסטטוס של פעולת האתחול על ידי הפעלת
InitializeLastResult()
באובייקטInterstitialAd
. המעקב יכול לעזור לכם לעקוב אחרי תהליך האתחול ב-game Loop גלובלי.// Monitor the status of the future in your game loop: firebase::Future<void> result = interstitial_ad->InitializeLastResult(); if (result.status() == firebase::kFutureStatusComplete) { // Initialization completed. if(future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization successful. } else { // An error has occurred. } } else { // Initialization on-going. }
מידע נוסף על עבודה עם firebase::Future
זמין במאמר שימוש בחוזים עתידיים למעקב אחר סטטוס ההשלמה של קריאות לשיטה.
טעינת מודעה
טעינת מודעה מתבצעת באמצעות השיטה LoadAd()
באובייקט InterstitialAd
. שיטת הטעינה מחייבת אתחול האובייקט InterstitialAd
, וכן מזהה יחידת המודעות ואובייקט AdRequest
. מוחזר firebase::Future
שבו אפשר להשתמש כדי לעקוב אחר המצב והתוצאה של פעולת הטעינה.
הקוד הבא מראה איך לטעון מודעה אחרי שה-InterstitialAd
אותחל בהצלחה:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = interstitial_ad->LoadAd(interstitial_ad_unit_id, ad_request);
הרשמה לקריאה חוזרת (callback)
עליכם להאריך את הכיתה FullScreenContentListener
כדי לקבל התראות על הצגה של מודעות מעברון ועל אירועים במחזור החיים. ניתן לרשום את מחלקת המשנה המותאמת אישית FullScreenContentListener
באמצעות שיטת InterstitialAd::SetFullScreenContentListener()
, והמודעה תקבל קריאות חוזרות (callback) כשהמודעה מוצגת בהצלחה או אחרי שהמודעה תיסגר.
הקוד הבא מראה איך להרחיב את הכיתה ולהקצות אותה למודעה:
class ExampleFullScreenContentListener : public firebase::gma::FullScreenContentListener { public: ExampleFullScreenContentListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdDismissedFullScreenContent() override { // This method is invoked when the ad dismisses full screen content. } void OnAdFailedToShowFullScreenContent(const AdError& error) override { // This method is invoked when the ad failed to show full screen content. // Details about the error are contained within the AdError parameter. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdShowedFullScreenContent() override { // This method is invoked when the ad showed its full screen content. } }; ExampleFullScreenContentListener* full_screen_content_listener = new ExampleFullScreenContentListener(); interstitial_ad->SetFullScreenContentListener(full_screen_content_listener);
InterstitialAd
הוא אובייקט חד-פעמי. המשמעות היא שברגע שמודעת מעברון
מוצגת, לא ניתן להציג אותה שוב. מומלץ לטעון מודעת מעברון אחרת בשיטה OnAdDismissedFullScreenContent()
של FullScreenContentListener
, כדי שמודעת המעברון הבאה תתחיל להיטען מיד אחרי שמודעת המעברון הקודמת תיסגר.
הצגת המודעה
מודעות מעברון צריכות להיות מוצגות בזמן הפסקות טבעיות בזרימה של האפליקציה.
דוגמה טובה בין שלבים במשחק היא או אחרי שהמשתמש משלים משימה.
אפשר להשתמש ב-FullScreenContentListener
כדי לקבוע מתי
במודעה הוצג תוכן במסך מלא, אבל העתיד שחוזר על ידי Show()
גם יציין
כשהמודעה תוצג.
firebase::Future<void> result = interstitial_ad->Show();
שיטות מומלצות
- חשוב לשקול אם מודעות מעברון הן סוג המודעה שמתאים לאפליקציה שלכם.
- מודעות מעברון פועלות בצורה הטובה ביותר באפליקציות עם נקודות מעבר טבעיות. כך שמופיע סיכום של משימה בתוך האפליקציה, כמו שיתוף תמונה או השלמת רמה במשחק. מכיוון שהמשתמש מצפה להפסקה בפעולה, קל להציג מודעת ביניים מבלי להפריע לחוויית שלו. חשוב לשים לב באילו שלבים בתהליך העבודה של האפליקציה יוצגו מודעות מעברון ומהו הסיכוי שהמשתמש יגיב.
- חשוב לזכור להשהות את הפעולה כשמציגים מודעת מעברון.
- יש כמה סוגים שונים של מודעות מעברון: טקסט, תמונה, וידאו ועוד. חשוב לוודא שכאשר באפליקציה מוצגת מודעת מעברון, היא גם משעה את השימוש במשאבים מסוימים כדי לאפשר למודעה לנצל אותם. לדוגמה, כשמתקשרים כדי להציג מודעת מעברון, צריך להשהות את כל פלט האודיו שנוצר על ידי האפליקציה.
אפשר להמשיך להשמיע צלילים בשיטה
OnAdDismissedFullScreenContent
שלFullScreenContentListener
שהתקנת. בנוסף, כדאי לשקול לעצור באופן זמני משימות חישוב אינטנסיביות כלשהן (כמו Game Loop) בזמן שהמודעה מוצגת. זה יבטיח שהמשתמש לא יחווה גרפיקה איטית או לא מגיבה או וידאו מקוטע. - צריך לאפשר זמן טעינה תקין.
- בדיוק כמו שחשוב לוודא שמודעות המעברון מוצגות בזמן המתאים, חשוב גם לוודא שהמשתמש לא יצטרך להמתין לטעינה שלהן. אם תטענו את המודעה מראש לפני שאתם מתכוונים להציג אותה, תוכלו לוודא שמודעת המעברון של האפליקציה טעונה במלואה כשיגיע הזמן להציג אותה.
- אין להציף את המשתמש במודעות.
- הגברת התדירות של מודעות המעברון באפליקציה אולי נראית כדרך מצוינת להגדיל את ההכנסות, אבל היא גם עלולה לפגוע בחוויית המשתמש ולהוריד את שיעורי הקליקים. חשוב לוודא שהמשתמשים לא יפריעו לעיתים קרובות עד שהם לא יוכלו ליהנות יותר מהשימוש באפליקציה.
- אל תשתמשו בעתיד כדי להשלים את הטעינה כדי להציג את המעברון.
- התנהלות כזו עלולה לפגוע בחוויית המשתמש. במקום זאת, כדאי לטעון מראש את המודעה לפני שתצטרכו להציג אותה.
מקורות מידע נוספים
דוגמאות ב-GitHub
- הציגו את קוד המקור של אפליקציית העזרה למתחילים ב-GitHub לדוגמה.
מדריכי וידאו בסדנה הדיגיטלית של Google Ads
סיפורי הצלחה
השלבים הבאים
- אם עדיין לא עשיתם זאת, תוכלו ליצור יחידת מודעות מעברון משלכם בממשק המשתמש של AdMob.
- מידע נוסף על טירגוט מודעות ועל הנחיות למודעות מעברון