מודעות מותאמות

מודעות מותאמות הן נכסי פרסום שמוצגים למשתמשים באמצעות רכיבי ממשק משתמש שמותאמים לפלטפורמה. הם מוצגים באמצעות אותן מחלקות שבהן אתם כבר משתמשים בתסריטים, ואפשר לעצב אותם בהתאם לעיצוב החזותי של האפליקציה.

כשמודעה מותאמת נטענת, האפליקציה מקבלת אובייקט מודעה שמכיל את הנכסים שלה, והיא אחראית להצגת הנכסים האלה, ולא Google Mobile Ads SDK.

באופן כללי, יש שני חלקים להטמעה מוצלחת של מודעות מותאמות: טעינה של מודעה באמצעות ה-SDK ולאחר מכן הצגת תוכן המודעה באפליקציה.

בדף הזה מוסבר איך להשתמש ב-SDK כדי לטעון מודעות מותאמות.

דרישות מוקדמות

תמיד כדאי לבדוק באמצעות מודעות בדיקה

כשאתם מפתחים ובודקים את האפליקציות, חשוב להשתמש במודעות בדיקה במקום במודעות פעילות בסביבת הייצור.

הדרך הקלה ביותר לטעון מודעות בדיקה היא להשתמש במזהה הייעודי של יחידת המודעות לבדיקה של מודעות מותאמות אישית ל-iOS:

/21775744923/example/native

הוא מוגדר במיוחד להחזרת מודעות בדיקה לכל בקשה, ואפשר להשתמש בו באפליקציות שלכם בזמן הכתיבה, הבדיקה וניפוי הבאגים. רק חשוב להחליף אותו במזהה יחידת המודעות שלכם לפני פרסום האפליקציה.

מידע נוסף על אופן הפעולה של מודעות הבדיקה של Google Mobile Ads SDK זמין במאמר מודעות בדיקה.

טעינת מודעות

מודעות מותאמות נטענות עם הכיתה GADAdLoader, ששולחת הודעות לנציגים שלה בהתאם לפרוטוקול GADAdLoaderDelegate.

בנוסף לפורמט המותאם שמוגדר על ידי המערכת, אפשר גם ליצור פורמטים מותאמים בהתאמה אישית משלכם, שאפשר להשתמש בהם למודעות מותאמות שנמכרות ישירות. פורמטים מותאמים אישית של מודעות מותאמות מאפשרים להעביר לאפליקציה נתונים מובְנים שרירותיים. המודעות האלה מיוצגות על ידי הכיתה GADCustomNativeAd.

איך מאתחלים את הטעינה של המודעות

לפני שאפשר לטעון מודעה, צריך לאתחל את מערך הטעינה של המודעות. הקוד הבא מראה איך לאתחל GADAdLoader:

Swift

adLoader = GADAdLoader(adUnitID: "/21775744923/example/native",
    // The UIViewController parameter is optional.
    rootViewController: rootViewController,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/21775744923/example/native"
    // The UIViewController parameter is nullable.
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

תצטרכו מזהה של יחידת מודעות (אפשר להשתמש במזהה הבדיקה), קבועים להעברה במערך adTypes כדי לציין אילו פורמטים מותאמים אתם רוצים לבקש, ואת כל האפשרויות שתרצו להגדיר בפרמטר options. רשימת הערכים האפשריים של הפרמטר options מופיעה בדף 'הגדרת האפשרויות של מודעות נתמכות'.

המערך adTypes צריך להכיל אחת או יותר מהקבועות הבאות:

הטמעת הנציג של מערך הטעינה של המודעות

הנציג של מערך הטעינה של המודעות צריך להטמיע פרוטוקולים ספציפיים לסוג המודעה. במודעות מותאמות, פרוטוקול GADNativeAdLoaderDelegate כולל הודעה שנשלחת לנציג כשמודעה מותאמת נטענת.

Swift

public func adLoader(_ adLoader: GADAdLoader,
            didReceive nativeAd: GADNativeAd)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd;

פרוטוקול GADCustomNativeAdLoaderDelegate כולל הודעה שנשלחת לנציג כשמודעה עם תבנית מותאמת אישית נטענת.

Swift

func adLoader(_ adLoader: GADAdLoader,
  Receive customNativeAd: GADCustomNativeAd)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveCustomNativeAd:(GADCustomNativeAd *) customNativeAd;

בקשה להצגת מודעות

אחרי שמפעילים את GADAdLoader, צריך להפעיל את השיטה loadRequest: שלו כדי לבקש מודעה:

Swift

adLoader.load(GAMRequest())

Objective-C

[self.adLoader loadRequest:[GAMRequest request]];

השיטה loadRequest: ב-GADAdLoader מקבלת את אותם אובייקטים מסוג GAMRequest כמו בבאנר ובמודעה מעברון. אפשר להשתמש באובייקטים של בקשות כדי להוסיף פרטי טירגוט, בדיוק כמו בסוגים אחרים של מודעות.

איך בודקים מתי הטעינה הסתיימה

אחרי שאפליקציה קוראת ל-loadRequest:, היא יכולה לקבל את תוצאות הבקשה באמצעות קריאות אל:

בקשה להצגת מודעה אחת תוביל לקריאה אחת לאחת מהשיטות האלה.

טיפול בבקשות שנכשלו

הפרוטוקולים שלמעלה מוסיפים לפרוטוקול GADAdLoaderDelegate, שמגדיר הודעה שנשלחת כשהמודעות לא נטענות.

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didFailToReceiveAdWithError error: NSError)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didFailToReceiveAdWithError:(NSError *)error;

קבלת התראות על אירועים של מודעות מותאמות

כדי לקבל התראות על אירועים שקשורים לאינטראקציות עם המודעה המותאמת, מגדירים את המאפיין delegate של המודעה המותאמת:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

לאחר מכן מטמיעים את GADNativeAdDelegate כדי לקבל את הקריאות הבאות להענקת גישה:

Swift

func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
  // The native ad was shown.
}

func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
  // The native ad was clicked on.
}

func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
  // The native ad will present a full screen view.
}

func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad will dismiss a full screen view.
}

func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad did dismiss a full screen view.
}

func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

Objective-C

- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
  // The native ad was shown.
}

- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  // The native ad was clicked on.
}

- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
  // The native ad will present a full screen view.
}

- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad will dismiss a full screen view.
}

- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad did dismiss a full screen view.
}

- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

שיטות מומלצות

כשאתם מעלים מודעות, חשוב לפעול לפי הכללים הבאים.

  • באפליקציות שמשתמשות במודעות מותאמות ברשימה, צריך לשמור מראש את רשימת המודעות במטמון.

  • כששומרים מודעות במטמון מראש, צריך למחוק את המטמון ולטעון מחדש אחרי שעה.

  • אין לבצע קריאה חוזרת ל-loadRequest: ב-GADAdLoader עד שהבקשה הקודמת תושלם, כפי שמצוין ב-adLoaderDidFinishLoading:.

  • כדאי להגביל את האחסון במטמון של מודעות מותאמות רק למה שנחוץ. לדוגמה, כשאתם מאחסנים מודעות במטמון מראש, כדאי לאחסן רק את המודעות שגלומות במסך באופן מיידי. למודעות מותאמות יש טביעת זיכרון גדולה, והטמעה של מודעות מותאמות במטמון בלי למחוק אותן גורמת לשימוש מוגזם בזיכרון.

  • צריך למחוק מודעות מותאמות כשהן לא בשימוש.

הצגת המודעה

אחרי שתטענו מודעה, כל מה שנותר הוא להציג אותה למשתמשים. במדריך המתקדם שלנו למודעות לרשת המדיה מוסבר איך עושים את זה.