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

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

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

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

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

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

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

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

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

ca-app-pub-3940256099942544/3986624511

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

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

טעינת מודעות

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

הפעלת הכלי לטעינת מודעות

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

Swift

adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    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;

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

אחרי אתחול של GADAdLoader, צריך לקרוא ל-method loadRequest: של מבקשים להציג מודעה:

Swift

adLoader.load(GADRequest())

Objective-C

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

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

טעינת מודעות מרובות (אופציונלי)

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

Swift

let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ multipleAdOptions ])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
    [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ multipleAdsOptions ]];

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

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

אין להשתמש בכיתה GADMultipleAdsAdLoaderOptions אם משתמשים בתהליך בחירת הרשת (Mediation). מאחר שבקשות למודעות מותאמות מרובות לא פועלות כרגע למזהים של יחידות מודעות הוגדרו לגישור.

אנחנו מחליטים מתי הטעינה הסתיימה

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

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

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

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

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdOptions.numberOfAds = 5;
    adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
        rootViewController: self,
        adTypes: [ .native ],
        options: [ multipleAdOptions ])

    adLoader.delegate = self
    adLoader.load(GADRequest())
  }

  func adLoader(_ adLoader: GADAdLoader,
       didReceive nativeAd: GADNativeAd) {
    // A native ad has loaded, and can be displayed.
  }

  func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
    // The adLoader has finished loading ads, and a new request can be sent.
  }

}

Objective-C

@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
      [[GADMultipleAdsAdLoaderOptions alloc] init];
  multipleAdsOptions.numberOfAds = 5;
  self.adLoader = [[GADAdLoader alloc]
        initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
      rootViewController:rootViewController
                 adTypes:@[ GADAdLoaderAdTypeNative ]
                 options:@[ multipleAdsOptions ]];

  self.adLoader.delegate = self;
  [self.adLoader loadRequest:[GADRequest request]];
}

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // A native ad has loaded, and can be displayed.
}

- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
  // The adLoader has finished loading ads, and a new request can be sent.
}

@end

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

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

Swift

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

Objective-C

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

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

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

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:.

הצגת המודעה

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