מודעות מותאמות הן נכסים שמצורפים למודעות ומוצגים למשתמשים דרך רכיבים של ממשק המשתמש שמותאמים לפלטפורמה. הן מוצגות באמצעות אותן מחלקות שכבר נמצאות בשימוש ב-storyboards, ואפשר לעצב אותן כך שיתאימו לעיצוב החזותי של האפליקציה.
כשמודעה מותאמת נטענת, האפליקציה מקבלת אובייקט מודעה שמכיל את הנכסים שלה, ואז האפליקציה – ולא Google Mobile Ads SDK – אחראית להצגת הנכסים.
באופן כללי, כדי להטמיע מודעות מותאמות צריך לבצע שתי פעולות: לטעון מודעה באמצעות ה-SDK ואז להציג את תוכן המודעה באפליקציה.
בדף הזה מוסבר איך להשתמש ב-SDK כדי לטעון מודעות מותאמות.
דרישות מוקדמות
לפני שממשיכים, מגדירים את Google Mobile Ads SDK.
תמיד כדאי לבצע בדיקות באמצעות מודעות בדיקה
כשאתם מפתחים ובודקים את האפליקציות, חשוב להשתמש במודעות בדיקה ולא במודעות פעילות.
הדרך הכי קלה לטעון מודעות לבדיקה היא להשתמש במזהה יחידת המודעות הייעודי לבדיקה של מודעות מותאמות ב-iOS:
/21775744923/example/native
הוא הוגדר במיוחד כדי להחזיר מודעות בדיקה לכל בקשה, ואתם יכולים להשתמש בו באפליקציות שלכם בזמן התכנות, הבדיקה וניפוי הבאגים. רק חשוב להחליף אותו במזהה יחידת המודעות שלכם לפני שאתם מפרסמים את האפליקציה.
פרטים על מודעות בדיקה ב-Google Mobile Ads SDK זמינים במאמר הפעלת מודעות בדיקה.
טעינת מודעות
מודעות מותאמות נטענות באמצעות המחלקה GADAdLoader, ששולחת הודעות לנציגים שלה בהתאם לפרוטוקול GADAdLoaderDelegate.
בנוסף לפורמט המודעות המותאמות שמוגדר על ידי המערכת, אתם יכולים גם ליצור פורמטים מותאמים אישית של מודעות מותאמות, שאפשר להשתמש בהם למודעות מותאמות שנמכרות ישירות. פורמטים מותאמים אישית של מודעות מותאמות מאפשרים להעביר נתונים מובְנים שרירותיים לאפליקציה. המודעות האלה מיוצגות על ידי המחלקה GADCustomNativeAd.
אתחול של טוען המודעות
כדי לטעון מודעה, צריך קודם להפעיל את טוען המודעות.
הקוד הבא מדגים איך לאתחל GADAdLoader:
Swift
מחליפים את nativeAdUnitID במזהה יחידת המודעות.
Objective-C
מחליפים את 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.
}
פרוטוקול GADCustomNativeAdLoaderDelegate כולל הודעה שנשלחת לבעלי הגישה כשטוענים מודעה עם תבנית בהתאמה אישית.
Swift
func adLoader(_ adLoader: AdLoader, didReceive customNativeAd: CustomNativeAd) {
// To be notified of events related to the custom native ad interactions, set the delegate
// property of the native ad
customNativeAd.delegate = self
// TODO: Display the custom native ad.
}
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveCustomNativeAd:(GADCustomNativeAd *)customNativeAd {
// To be notified of events related to the custom native ad interactions, set the delegate
// property of the native ad
customNativeAd.delegate = self;
// TODO: Display the custom native ad.
}
בקשה להצגת מודעות
אחרי שמפעילים את GADAdLoader, קוראים ל-method loadRequest: שלו כדי לבקש מודעה:
Swift
adLoader.load(AdManagerRequest())
Objective-C
[self.adLoader loadRequest:[GAMRequest request]];
ה-method loadRequest: ב-GADAdLoader מקבלת את אותם אובייקטים של GAMRequest כמו מודעות באנר ומודעות מעברון. אפשר להשתמש באובייקטים של בקשות כדי להוסיף מידע על טירגוט, בדיוק כמו בסוגי מודעות אחרים.
טעינת כמה מודעות (אופציונלי)
כדי לטעון כמה מודעות בבקשה אחת, מגדירים את האובייקט GADMultipleAdsAdLoaderOptions כשמאתחלים את GADAdLoader.
Swift
Objective-C
מספר המודעות לכל בקשה להצגת מודעה מוגבל לחמש, ואין ערובה לכך שערכת ה-SDK תחזיר את מספר המודעות המדויק שהתבקש.
כל המודעות שיוחזרו מ-Google Ads יהיו שונות זו מזו, אבל אין ערובה לכך שמודעות ממלאי שטחי פרסום מוזמן או מקניינים של צד שלישי יהיו ייחודיות.
אל תשתמשו במחלקה GADMultipleAdsAdLoaderOptions אם אתם משתמשים בתהליך בחירת רשת, כי בקשות להצגת כמה מודעות מותאמות לא פועלות במזהים של יחידות מודעות שהוגדרו לבחירת רשת.
איך קובעים מתי הטעינה הסתיימה
אחרי שאפליקציה מפעילה את loadRequest:, היא יכולה לקבל את תוצאות הבקשה באמצעות הפעלת הקריאות הבאות:
-
adLoader:didFailToReceiveAdWithError:ב-GADAdLoaderDelegate -
adLoader:didReceiveNativeAd:ב-GADNativeAdLoaderDelegate
בקשה למודעה אחת תגרום לקריאה אחת לאחת מהשיטות האלה.
בקשה להצגת כמה מודעות תגרום לפחות לקריאה חוזרת אחת לשיטות שלמעלה, אבל לא יותר מהמספר המקסימלי של המודעות שהתבקשו.
בנוסף, GADAdLoaderDelegate מציע את האפשרות 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.
}
קבלת התראות על אירועים של מודעות מותאמות
כדי לקבל התראות על אירועים שקשורים לאינטראקציות עם המודעות המותאמות, צריך להגדיר את מאפיין ה-delegate של המודעה המותאמת:
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 או מודעות מותאמות במסך מלא.