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

בחירת פלטפורמה: Android iOS Flutter Unity Android (Legacy)

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

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

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

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

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

לפני שממשיכים, מגדירים את Google Mobile Ads SDK.

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

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

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

ca-app-pub-3940256099942544/3986624511

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

פרטים על מודעות בדיקה ב-Google Mobile Ads SDK זמינים במאמר הפעלת מודעות בדיקה.

טעינת מודעות

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

אתחול של טוען המודעות

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

Swift

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  // To receive native ads, the ad loader's delegate must
  // conform to the NativeAdLoaderDelegate protocol.
  adTypes: [.native],
  // Use nil for default options.
  options: nil)
// Set the delegate before making an ad request.
adLoader.delegate = self

מחליפים את nativeAdUnitID במזהה יחידת המודעות.

Objective-C

self.adLoader =
    [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                       // The UIViewController parameter is optional.
                       rootViewController:self
                                  // To receive native ads, the ad loader's delegate must
                                  // conform to the NativeAdLoaderDelegate protocol.
                                  adTypes:@[ GADAdLoaderAdTypeNative ]
                                  // Use nil for default options.
                                  options:nil];
// Set the delegate before making an ad request.
self.adLoader.delegate = self;

מחליפים את kNativeAdUnitID במזהה יחידת המודעות.

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

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

הטמעת ה-delegate של טוען המודעות

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

Swift

func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
  // Set the delegate to receive notifications for interactions with the native ad.
  nativeAd.delegate = self

  // TODO: Display the native ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // Set the delegate to receive notifications for interactions with the native ad.
  nativeAd.delegate = self;

  // TODO: Display the native ad.
}

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

אחרי שמפעילים את GADAdLoader, קוראים ל-method‏ loadRequest: כדי לבקש מודעה:

Swift

adLoader.load(Request())

Objective-C

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

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

טעינת כמה מודעות (אופציונלי)

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

Swift

let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5
adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  adTypes: [.native],
  options: [multipleAdOptions])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdOptions = [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdOptions.numberOfAds = 5;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                                   // The UIViewController parameter is optional.
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ multipleAdOptions ]];

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

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

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

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

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

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

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

בנוסף, GADAdLoaderDelegate מציע את הקריאה החוזרת (callback) adLoaderDidFinishLoading. שיטת הנציג הזו מציינת שהטעינה של המודעות הסתיימה, ולא ידווחו עוד מודעות או שגיאות לגבי הבקשה. הנה דוגמה לאופן השימוש בפונקציה הזו כשמטעינים כמה מודעות מותאמות בו-זמנית:

Swift

func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
  // The adLoader has finished loading ads.
}

Objective-C

- (void)adLoaderDidFinishLoading:(GADAdLoader *)adLoader {
  // The adLoader has finished loading ads.
}

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

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

Swift

func adLoader(_ adLoader: AdLoader, didFailToReceiveAdWithError error: any Error) {
  // The adLoader failed to receive an ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didFailToReceiveAdWithError:(NSError *)error {
  // The adLoader failed to receive an ad.
}

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

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

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

לאחר מכן מטמיעים את GADNativeAdDelegate כדי לקבל את הקריאות הבאות ל-delegate:

Swift

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

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

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

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

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

func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
  // 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:.

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

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

הצגת המודעה

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