סגנונות מותאמים

הגדרות סגנון מותאם שמאפשרות ל-Google Ad Manager לטפל ברינדור של המודעות המותאמות שאתם מציינים בתוך המוצר. קודם כול, מציינים את הגודל ואת הטירגוט. לאחר מכן צריך להוסיף HTML, CSS ו-JavaScript כדי להגדיר מודעות רספונסיביות כדי ליצור תצוגה איכותית בכל המסכים. לא צריך לעשות כל אחד מהרינדור; מערכת Ad Manager מחילה באופן אוטומטי את הסגנון המותאם אישית המתאים ליעד. סגנונות מותאמים מוטמעים בדיוק כמו מודעות באנר, באמצעות GAMBannerView. אפשר להשתמש בהם במודעה קבועה גודל שנקבע מראש, או גודל מודעה גמיש שנקבע בזמן הריצה.

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

  • Google Mobile Ads SDK מגרסה 7.14.0 ואילך

מדריך זה מבוסס על ההנחה שיש לכם ידע מעשי ב-Google Mobile Ads SDK. אם עדיין לא עשית זאת, מומלץ לעיין המדריך לתחילת העבודה.

גודל קבוע

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

  1. יוצרים פריט בממשק המשתמש של Ad Manager ובוחרים אחת גדלים מוגדרים מראש מתפריט השדות Size.

  2. ב-API Builder, מגדירים את הרוחב והגובה של GAMBannerView בהתאם לגודל המוגדר מראש שבחרתם בשלב 1. אפשר לראות רשימת גדלים וקבועי GADAdSize המתאימים שלהם בבאנר מידה .

כדי להטמיע סגנונות מותאמים בגודל קבוע צריך לבצע את הפעולות הבאות בקלות: ההוראות שמופיעות במאמר הבאנר הראשון request, אבל גם תהיה לכם גמישות ושליטה ב-HTML, ב-CSS וב-JavaScript כדי להעניק למודעת הבאנר מראה ותחושה טבעיים שמתאימים לאפליקציה שלך.

גודל נוזל

במקרים מסוימים, גודל קבוע לא הגיוני. לדוגמה, אפשר: רוצה שרוחב המודעה יתאים לתוכן של האפליקציה, אבל צריך את הגובה שלה כך שיתאימו באופן דינמי לתוכן של המודעה. כדי לטפל במקרה הזה, אפשר לציין את Fluid כגודל המודעה בממשק המשתמש של Ad Manager, מציין שגודל המודעה נקבע בזמן הריצה באפליקציה. ה-SDK מספק קבוע GADAdSize מיוחד, kGADAdSizeFluid, כדי לטפל במקרה הזה. הגובה של גודל המודעה הגמישה נקבע באופן דינמי בהתאם לרוחב שהוגדר על ידי בעל התוכן הדיגיטלי, כך GAMBannerView כדי להתאים את הגובה שלו לגובה של הקריאייטיב.

בקשת נוזלים

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

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

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

Swift

bannerView.validAdSizes = [NSValueFromGADAdSize(kGADAdSizeFluid),
                           NSValueFromGADAdSize(kGADAdSizeBanner)]

Objective-C

_bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
                              NSValueFromGADAdSize(kGADAdSizeBanner) ];

כך נראית הטמעה מלאה בקוד:

Swift

var bannerView: GAMBannerView!

override func viewDidLoad() {
  super.viewDidLoad()
  // Create the GAMBannerView and set its width to a width that makes sense for your
  // app. In this example, the width is set to the width of the UIViewController's
  // root view.
  bannerView = GAMBannerView(adSize: kGADAdSizeFluid)
  var frameRect = bannerView.frame
  frameRect.size.width = view.bounds.width
  bannerView.frame = frameRect

  // Uncomment this code for a multisize fluid request.
  // bannerView.validAdSizes = [NSValueFromGADAdSize(kGADAdSizeFluid),
  //                            NSValueFromGADAdSize(kGADAdSizeBanner)]

  bannerView.adUnitID = "YOUR_AD_UNIT_ID"
  bannerView.rootViewController = self

  // Make the ad request.
  bannerView.load(GAMRequest())
}

Objective-C

GAMBannerView *_bannerView;

- (void)viewDidLoad {
  [super viewDidLoad];
  // Create the GAMBannerView and set its width to a width that makes sense for your
  // app. In this example, the width is set to the width of the UIViewController's
  // root view.
  _bannerView = [[GAMBannerView alloc] initWithAdSize:kGADAdSizeFluid];
  CGRect frameRect = _bannerView.frame;
  frameRect.size.width = CGRectGetWidth(self.view.bounds);
  _bannerView.frame = frameRect;

  // Uncomment this code for a multisize fluid request.
  // _bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
  //                               NSValueFromGADAdSize(kGADAdSizeBanner) ];

  _bannerView.adUnitID = @"YOUR_AD_UNIT_ID";
  _bannerView.rootViewController = self;

  // Make the ad request.
  [_bannerView loadRequest:[GAMRequest request]];
}

כדי לראות דוגמה להטמעה של גודל המודעה מסוג 'גמיש' ב-Ad Manager: מורידים את אפליקציית ההדגמה של iOS API באמצעות Swift או Objective-C.

להורדת ההדגמה של ה-API

פרוטוקול GADAdSizeDelegate

כדאי לדעת מה הגובה של מודעת הבאנר לפני שגודל המודעה משתנה. הקריאה החוזרת של adView:willChangeAdSizeTo: שולחת הודעה למי שהעניק אותה לפני כן תצוגת הבאנר תשתנה לGADAdSize החדש. כדי לקבל הודעה לפני תצוגת הבאנר תשתנה לגודל המודעה החדשה, הכיתה חייבת לעמוד בדרישות של בפרוטוקול GADAdSizeDelegate.

דוגמה להטמעה של adView:willChangeAdSizeTo: קריאה חוזרת (callback) שמראה איך לקבל את הרוחב והגובה החדשים של הבאנר:

Swift

// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
bannerView.adSizeDelegate = self

// MARK: - GADAdSizeDelegate

func adView(_ bannerView: GADBannerView, willChangeAdSizeTo adSize: GADAdSize) {
  let height = adSize.size.height
  let width = adSize.size.width
}

Objective-C

// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
_bannerView.adSizeDelegate = self;

#pragma mark - GADAdSizeDelegate

- (void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)adSize {
  CGFloat height = adSize.size.height;
  CGFloat width = adSize.size.width;
}