מודעות מותאמות הן נכסים שמצורפים למודעות שמוצגות למשתמשים דרך רכיבים בממשק המשתמש. מותאמים לפלטפורמה. הן מוצגות באמצעות אותן כיתות שבהן את כבר משתמשת בסטוריבורדים, ואפשר לעצב אותן כך שיתאימו לעיצוב החזותי של האפליקציה.
כשמודעה מותאמת נטענת, האפליקציה מקבלת אובייקטים של מודעה שמכיל את הנכסים שלה, ובאפליקציה – במקום ב-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",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ ... ad loader options objects ... ])
adLoader.delegate = self
Objective-C
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// 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;
בקשה להצגת מודעות
אחרי אתחול ה-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",
// The UIViewController parameter is optional.
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"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
מספר המודעות לכל בקשה מוגבל ל-5, ולא בטוח ה-SDK יחזיר את המספר המדויק של המודעות המבוקשות.
מודעות Google שמוחזרות יהיו שונות זו מזו, למרות שמודעות מלאי שמור של שטחי פרסום או קונים של צד שלישי לא מובטח שהם יהיו ייחודיים.
אין להשתמש בכיתה GADMultipleAdsAdLoaderOptions
אם משתמשים בתהליך בחירת הרשת (Mediation).
מאחר שבקשות למודעות מותאמות מרובות לא פועלות כרגע למזהים של יחידות מודעות
הוגדרו לגישור.
אנחנו מחליטים מתי הטעינה הסתיימה
אחרי שאפליקציה שולחת קריאה ל-loadRequest:
, היא יכולה לקבל את תוצאות הבקשה באמצעות
שיחות אל:
adLoader:didFailToReceiveAdWithError:
בעודGADAdLoaderDelegate
adLoader:didReceiveNativeAd:
בעודGADNativeAdLoaderDelegate
בקשה להצגת מודעה יחידה תוביל לקריאה אחת לאחת מהשיטות האלה.
בקשה להצגת מספר מודעות תוביל לקריאה חוזרת (callback) אחת לפחות לערך שצוין למעלה שיטות, אבל לא יותר מהמספר המקסימלי המבוקש של מודעות.
בנוסף, 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",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
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"
// The UIViewController parameter is nullable.
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 מדריך כדי לראות איך עושים זאת.