הגדרות של סגנונות מותאמים
מאפשרות ל-Google Ad Manager לטפל בעיבוד של המודעות המותאמות על סמך סגנונות מותאמים שאתם מציינים במוצר. קודם כול, מציינים את הגודל ואת הטירגוט.
לאחר מכן מוסיפים HTML, CSS ו-JavaScript כדי להגדיר מודעות רספונסיביות שמוצגות באיכות גבוהה בכל המסכים. אתם לא צריכים לבצע שום עיבוד. Ad Manager מחיל באופן אוטומטי את הסגנון המקורי המתאים ליעד. ההטמעה של סגנונות מותאמים מתבצעת בדיוק כמו הטמעה של מודעות באנר,
באמצעות GAMBannerView
. אפשר להשתמש בהן עם גודל מודעה קבוע שנקבע מראש, או עם גודל מודעה משתנה שנקבע בזמן הריצה.
דרישות מוקדמות
- גרסה 7.14.0 ואילך של Google Mobile Ads SDK
המדריך הזה מיועד למי שיש לו ידע בסיסי ב-Google Mobile Ads SDK. אם עדיין לא עשיתם את זה, מומלץ לעיין במדריך תחילת העבודה.
גודל קבוע
סגנונות מותאמים עם גודל קבוע מאפשרים לכם לשלוט ברוחב ובגובה של המודעה המותאמת. כדי להגדיר גודל קבוע, מבצעים את השלבים הבאים:
יוצרים פריט בממשק המשתמש של Ad Manager ובוחרים אחד מהגדלים המוגדרים מראש בתפריט הנפתח של השדה
Size
.ב-Interface Builder, מגדירים את הרוחב והגובה של
GAMBannerView
כך שיתאימו לגודל המוגדר מראש שבחרתם בשלב 1. בקטע גודל הבאנר מופיעה רשימה של גדלים והקבועים התואמים שלהםGADAdSize
.
כדי להטמיע סגנונות מותאמים עם גודל קבוע, פשוט פועלים לפי ההוראות במאמר בקשת הבאנר הראשונה. כך מקבלים גמישות ושליטה ב-HTML, ב-CSS וב-JavaScript, כדי להעניק למודעת הבאנר מראה ותחושה מותאמים שמשתלבים באופן טבעי באפליקציה.
גודל הנוזל
במקרים מסוימים, גודל קבוע לא מתאים. לדוגמה, יכול להיות שתרצו שהרוחב של המודעה יתאים לתוכן של האפליקציה, אבל תצטרכו שהגובה שלה ישתנה באופן דינמי כדי להתאים לתוכן של המודעה. כדי לטפל במקרה הזה, אפשר לציין Fluid
כגודל המודעה בממשק המשתמש של Ad Manager. כך המערכת תדע שגודל המודעה נקבע בזמן הריצה באפליקציה. ה-SDK מספק קבוע מיוחד GADAdSize
, kGADAdSizeFluid
, כדי לטפל במקרה הזה. הגובה של מודעה בגודל משתנה נקבע באופן דינמי על סמך הרוחב שהוגדר על ידי בעל התוכן הדיגיטלי, וכך המודעה GAMBannerView
יכולה להתאים את הגובה שלה לגובה של הקריאייטיב.
בקשה גמישה
שלא כמו בפורמטים אחרים של מודעות, לkGADAdSizeFluid
גודל המודעה אין רוחב מוגדר מראש, ולכן חשוב להגדיר במפורש את רוחב המסגרת של מודעת הבאנר בקוד או ב-Interface Builder. אם לא מציינים רוחב, ה-SDK מגדיר כברירת מחדל את גובה הבאנר על סמך הרוחב המלא של המכשיר.
אם שולחים בקשה להצגת מודעה בכמה גדלים שכוללת את kGADAdSizeFluid
, המודעה שמוחזרת תמיד מוצבת בתוך מאגר גמיש ומתנהגת כמו מודעה גמישה. אם נכס קריאייטיב לא גמיש מוחזר במאגר הגמיש הזה, ה-SDK ממקם את המודעה במרכז המאגר, כך שלא צריך לשנות את אילוץ הרוחב בכל פעם שמוחזרת מודעה חדשה.
ההטמעה של בקשה גמישה בגודל יחיד ובגדלים שונים דומה מאוד. ההבדל היחיד הוא שבבקשה בגדלים שונים, צריך להגדיר את המאפיין validAdSizes
כדי לציין את גדלי המודעות שתקפים לבקשה להצגת מודעה:
Swift
bannerView.validAdSizes = [nsValue(for: AdSizeFluid), nsValue(for: AdSizeBanner)]
Objective-C
_bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
NSValueFromGADAdSize(kGADAdSizeBanner) ];
כך נראה היישום המלא בקוד:
Swift
var bannerView: AdManagerBannerView!
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 = AdManagerBannerView(adSize: AdSizeFluid)
var frameRect = bannerView.frame
frameRect.size.width = view.bounds.width
bannerView.frame = frameRect
// Uncomment this code for a multisize fluid request.
// bannerView.validAdSizes = [nsValue(for: AdSizeFluid), nsValue(for: AdSizeBanner)]
bannerView.adUnitID = "YOUR_AD_UNIT_ID"
bannerView.rootViewController = self
// Make the ad request.
bannerView.load(AdManagerRequest())
}
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.
פרוטוקול GADAdSizeDelegate
יכול להיות שתרצו לדעת את הגובה של באנר לפני שגודל המודעה שלו משתנה.
הפונקציה adView:willChangeAdSizeTo:
callback שולחת הודעה לנציג לפני שGADAdSize
משתנה התצוגה של הבאנר. כדי לקבל התראה לפני שגודל המודעה בבאנר ישתנה לגודל החדש, הכיתה צריכה להיות תואמת לפרוטוקול GADAdSizeDelegate
.
דוגמה להטמעה של פונקציית הקריאה החוזרת adView:willChangeAdSizeTo:
שמראה איך מקבלים את הרוחב והגובה החדשים של הבאנר:
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: BannerView, willChangeAdSizeTo adSize: AdSize) {
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;
}