מודעות מעברון הן מודעות במסך מלא שמכסות את הממשק של האפליקציה עד שהמשתמש סוגר אותן. בדרך כלל הן מוצגות בנקודות מעבר טבעיות בזרימה של האפליקציה, למשל בין פעילויות או במהלך ההשהיה בין שלבים במשחק. כשאפליקציה מציגה מודעת מעברון, המשתמש יכול לבחור אם ללחוץ על המודעה ולהמשיך ליעד שלה או לסגור אותה ולחזור לאפליקציה. תיאור מקרה.
במדריך הזה מוסבר איך לשלב מודעות מעברון באפליקציות ל-Android ול-iOS באמצעות Google Mobile Ads C++ SDK.
דרישות מוקדמות
- לוחצים על שנתחיל?.
- (Android בלבד) היכרות עם הפניות
jobjectשל JNI (ראו טיפים ל-Android JNI).
תמיד צריך לבדוק באמצעות מודעות בדיקה
כשאתם מפתחים ובודקים את האפליקציות, חשוב להשתמש במודעות בדיקה ולא במודעות פעילות. אחרת, אנחנו עלולים להשעות את החשבון.
הדרך הכי קלה לטעון מודעות לבדיקה היא להשתמש במזהה יחידת המודעות הייעודית לבדיקה של מודעות מעברון. המזהה משתנה בהתאם לפלטפורמת המכשיר:
- Android:
ca-app-pub-3940256099942544/1033173712 - iOS:
ca-app-pub-3940256099942544/4411468910
הם הוגדרו במיוחד כדי להחזיר מודעות בדיקה לכל בקשה, ואתם יכולים להשתמש בהם באפליקציות שלכם בזמן התכנות, הבדיקה וניפוי הבאגים. רק חשוב להחליף אותו במזהה יחידת מודעות משלכם לפני שמפרסמים את האפליקציה.
מידע נוסף על אופן הפעולה של מודעות בדיקה ב-SDK להצגת מודעות זמין במאמר מודעות בדיקה.
הטמעה
השלבים העיקריים לשילוב מודעות מעברון הם:
- טוענים מודעה.
- להירשם לקבלת שיחות חוזרות.
- להציג את המודעה ולטפל באירועים במחזור החיים שלה.
הגדרת InterstitialAd
מודעות מעברון מוצגות באובייקטים מסוג InterstitialAd, ולכן השלב הראשון בשילוב של מודעות מעברון באפליקציה הוא ליצור אובייקט מסוג InterstitialAd ולהפעיל אותו.
מוסיפים את הכותרת הבאה לקוד ה-C++ של האפליקציה:
#include "firebase/gma/interstial_ad.h"
מצהירים על אובייקט
InterstitialAdויוצרים מופע שלו:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
מאתחלים את המופע של
InterstitialAdבאמצעות העברה של התצוגה הראשית (parent view) לסוגAdParent. התצוגה הראשית היא הפניה של JNIjobjectל-Activityשל Android או מצביע ל-UIViewשל iOS.// 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);במקום לשמור את ה-future כמשתנה, אתם יכולים לבדוק מדי פעם את הסטטוס של פעולת האיניציאליזציה על ידי הפעלת
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, קראו את המאמר שימוש ב-Futures כדי לעקוב אחרי סטטוס ההשלמה של הפעלות method.
טעינת מודעה
כדי לטעון מודעה, משתמשים ב-method 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);
רישום להתקשרות חזרה
כדי לקבל התראות על אירועים במחזור החיים ועל הצגת מודעות מעברון, צריך להרחיב את המחלקה FullScreenContentListener. אפשר לרשום את מחלקת המשנה המותאמת אישית של FullScreenContentListener באמצעות השיטה InterstitialAd::SetFullScreenContentListener(), והיא תקבל קריאות חוזרות (callbacks) כשהמודעה תוצג בהצלחה או לא תוצג, וגם כשהיא תיסגר.
הקוד הבא מראה איך להרחיב את המחלקה ולהקצות אותה למודעה:
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 הוא אובייקט לשימוש חד-פעמי. כלומר, אחרי שמציגים מודעת מעברון, אי אפשר להציג אותה שוב. השיטה המומלצת היא לטעון מודעת מעברון נוספת ב-method OnAdDismissedFullScreenContent() של FullScreenContentListener, כדי שמודעת המעברון הבאה תתחיל להיטען ברגע שהמודעה הקודמת תיסגר.
הצגת המודעה
צריך להציג מודעות מעברון בנקודות עצירה טבעיות בזרימה של האפליקציה.
לדוגמה, בין שלבים במשחק או אחרי שהמשתמש משלים משימה.
אפשר להשתמש ב-FullScreenContentListener כדי לקבוע מתי מודעה הציגה את התוכן שלה במסך מלא, אבל גם ה-future שמוחזר על ידי Show() יציין מתי המודעה הוצגה בהצלחה.
firebase::Future<void> result = interstitial_ad->Show();
שיטות מומלצות
- חשוב לבדוק אם מודעות מעברון הן סוג המודעה שמתאים לאפליקציה.
- מודעות מעברון פועלות בצורה הכי טובה באפליקציות עם נקודות מעבר טבעיות. נקודת מעבר יכולה להיות למשל סיום של משימה כלשהי באפליקציה, כמו שיתוף תמונה או השלמת שלב במשחק. המשתמש מצפה להפסקה בפעולה, ולכן קל להציג מודעת מעברון בלי להפריע לחוויית השימוש שלו. חשוב להביא בחשבון את הנקודות בתהליך העבודה של האפליקציה שבהן יוצגו מודעות המעברון, ואת האופן שבו המשתמשים צפויים להגיב.
- חשוב לזכור להשהות את הפעולה כשמציגים מודעת מעברון.
- יש כמה סוגים של מודעות מעברון: טקסט, תמונה, וידאו ועוד. חשוב לוודא שכשהאפליקציה מציגה מודעת מעברון, היא גם משעה את השימוש בחלק מהמשאבים כדי לאפשר למודעה לנצל אותם. לדוגמה, כששולחים קריאה להצגת מודעת מעברון, חשוב להשהות את כל פלט האודיו שמופק על ידי האפליקציה. אפשר להמשיך להשמיע צלילים ב-method
OnAdDismissedFullScreenContentשלFullScreenContentListenerהמותקן, שיופעל כשהמשתמש יסיים את האינטראקציה עם המודעה. בנוסף, כדאי להפסיק באופן זמני את כל משימות החישוב האינטנסיביות (כמו game loop) בזמן שהמודעה מוצגת. כך המשתמשים לא יחוו גרפיקה איטית או לא מגיבה, או סרטון מקוטע. - צריך להמתין עד שהדף ייטען.
- חשוב להציג את מודעות המעברון בזמן המתאים, אבל חשוב גם לוודא שהמשתמשים לא צריכים לחכות שהן ייטענו. טעינת המודעה מראש לפני שמתכוונים להציג אותה יכולה להבטיח שבאפליקציה תהיה מודעת מעברון שנטענה במלואה ומוכנה להצגה כשיגיע הזמן להציג אותה.
- אל תציפו את המשתמשים במודעות.
- הגברת תדירות ההצגה של מודעות המעברון באפליקציה אולי נראית כמו דרך טובה להגדיל את ההכנסות, אבל היא גם עלולה לפגוע בחוויית השימוש ולהקטין את שיעורי הקליקים. חשוב לוודא שהמשתמשים לא נתקלים בהפרעות בתדירות גבוהה מדי, כדי שהם יוכלו ליהנות מהשימוש באפליקציה.
- אל תשתמשו ב-future של השלמת הטעינה כדי להציג את מודעת המעברון.
- זה עלול לפגוע בחוויית המשתמש. במקום זאת, טוענים מראש את המודעה לפני שצריך להציג אותה.
מקורות מידע נוספים
דוגמה ב-GitHub
- צפייה בקוד המקור של האפליקציה לדוגמה למתחילים ב-GitHub.
סרטוני הדרכה של Mobile Ads Garage
סיפורי הצלחה
השלבים הבאים
- אם עדיין לא עשיתם את זה, צרו יחידת מודעות מעברון משלכם בממשק המשתמש של AdMob.
- מידע נוסף זמין במאמרים בנושא טירגוט מודעות והנחיות למודעות מעברון.