דרישות מוקדמות
מדריך הטמעה זה מבוסס על ההנחה שאתם מכירים את הנושאים הבאים:
- פיתוח אפליקציות ל-iOS.
- שיוך Google Mobile Ads SDK לפרויקט ב-iOS. מורידים את הגרסה העדכנית של ה-SDK.
סקירה כללית
המסמך הזה מתאר את תהליך השילוב של מודעות AdSense לחיפוש לאפליקציות לנייד (AFSMA) באפליקציה לנייד ל-iOS. לפעמים מודעות AFSMA נקראות גם מודעות דינמיות לרשת החיפוש בגובה דינמי. כדי לבקש ולעבד מודעות AFSMA ב-iOS, צריך להטמיע את הפריטים הבאים:
- הסיווג הזה עובר בירושה מהמחלקה UIView של iOS ומציג את מודעות AFSMA. השדה
GADSearchBannerView
שולח את הבקשה להצגת מודעה עםGADDynamicHeightSearchRequest
, ומעבד את המודעות שהוחזרו. צריך להוסיף אתGADSearchBannerView
לכל אחת מהתצוגות הקיימות של האפליקציה. בדרך כלל הוא הבקר הראשי של התצוגה המפורטת שמכיל את התצוגה שאליהGADSearchBannerView
נוסף. צריך להגדיר את הנציגים המתאימים ב-GADSearchBannerView
. - יש ליצור את
GADSearchBannerView
באמצעותinitWithAdSize:kGADAdSizeFluid
כדי לבקש מודעות AFSMA. יצירתGADSearchBannerView
באמצעותinitWithAdSize:kGADAdSizeBanner
בקשות של מודעות AFSMA מדור קודם. - המאפיין
adUnitID
באובייקט הזה צריך להיות מוגדר לקוד הנכס שלך.
- אובייקט זה כולל את הפרמטרים של הבקשה להצגת מודעה. הדבר דומה להגדרת פרמטרים באובייקטים של בקשות להצגת מודעות ב-JavaScript (אפשרויות דף, אפשרויות של יחידות) ב-AdSense לחיפוש (AFS) באינטרנט לנייד ובמחשב.
(void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size
- הקריאה החוזרת מתבצעת כשהבקשה להצגת המודעה חוזרת. מכיוון שיחידת המודעות שמוחזרת יכולה להכיל מספר מודעות עם תוספים שונים, הגודל המדויק של יחידת המודעות אינו ידוע בעת שליחת הבקשה להצגת מודעה. אחרי החזרת המודעה, צריך לעדכן את תצוגת הבאנר כך שתתאים לגודל החדש של יחידת המודעות. כאן צריך להטמיע קוד לשינוי הגודל של
GADSearchBannerView
בתצוגת ההורה שלו.
הטמעה לדוגמה
בדוגמה הבאה אפשר לראות איך משתמשים ב-GBannerViewController
כדי ליצור GADSearchBannerView
כתת-תצוגה של UIScrollView
. כדי לבקש מודעות AFSMA בצורה תקינה, צריך ליצור אובייקט GADSearchBannerView
באמצעות initWithAdSize:kGADAdSizeFluid
.
// GBannerViewController.m implementation
@interface GBannerViewController () <GADAdSizeDelegate,
GADBannerViewDelegate>
@property(nonatomic, strong) GADSearchBannerView *searchBannerView;
@property(nonatomic, strong) UIScrollView *scrollView;
@end
@implementation GBannerViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Create the scroll view.
....
....
// Create the banner.
self.searchBannerView = [[GADSearchBannerView alloc] initWithAdSize:kGADAdSizeFluid];
// Replace with your pub ID (e.g. ms-app-pub-9616389000213823).
self.searchBannerView.adUnitID = @"ms-app-pub-################";
// Set the initial location and size of the banner. The initial height
// is set to 0 since we might not get an ad back.
self.searchBannerView.frame = CGRectMake(0,
0,
CGRectGetWidth(self.view.bounds),
0);
self.searchBannerView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
// Set the delegate properties.
self.searchBannerView.adSizeDelegate = self;
self.searchBannerView.delegate = self;
// Add the new search banner into the parent scrollView.
[self.scrollView addSubview:self.searchBannerView];
}
באותו GBannerViewController
, יוצרים GADDynamicHeightSearchRequest
שמכתיב את הפרמטרים של המודעה שתוצג ב-GADSearchView
.
// Create a search request and load the banner. GADDynamicHeightSearchRequest *searchRequest = [[GADDynamicHeightSearchRequest alloc] init]; // Ad request options (set using GADDynamicHeightSearchRequest properties). searchRequest.query = @"flowers"; searchRequest.numberOfAds = 2; // Replace with the ID of a style from your custom search styles [searchRequest setAdvancedOptionValue:@"0000000001" forKey:@"styleId"];
יש אפשרויות נוספות להתאמה אישית על ידי הגדרת מאפיינים נוספים באובייקט GADDynamicHeightSearchRequest
.
כדי לשלוח בקשה להצגת מודעה, צריך לקרוא ל-loadRequest
עם האובייקט GADDynamicHeightSearchRequest
מהאובייקט GADSearchBannerView
:
[self.searchBannerView loadRequest:searchRequest];
כדי שתצוגת ההורה תכיל כראוי את GADSearchBannerView
עם החזרת המודעות, צריך להטמיע את הקריאה החוזרת הבאה.
// Callback to update the parent view height.
- (void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size {
// Update the banner view based on the ad size.
CGRect newFrame = self.searchBannerView.frame;
newFrame.size.height = size.size.height;
self.searchBannerView.frame = newFrame;
// Perform any additional logic needed due to banner view size change.
...
}
אפשרויות מתקדמות
ניתן להגדיר את רוב הפרמטרים של בקשות להצגת מודעות דרך מאפיינים באובייקט GADDynamicHeightSearchRequest
(searchRequest
למעלה). צריך להגדיר פרמטרים אחרים באמצעות צמדי מפתח/ערך באמצעות method setAdvancedOptionValue
:
// Advanced customization options (set using key-value pair).
// Set a parameter (parameter_name) and its value (parameter_value).
[searchRequest setAdvancedOptionValue:@"parameter_value"
forKey:@"parameter_name"];
// Example: Show visible URL below description (domainLinkAboveDescription: false).
[searchRequest setAdvancedOptionValue:@"false"
forKey:@"domainLinkAboveDescription"];
לעיון ברשימה המלאה של הפרמטרים הזמינים
בדיקת שגיאות
השדה GADBannerViewDelegate
כולל קריאה חוזרת (callback) כדי לעזור לך לבדוק שגיאות:
- (void)adView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(GADRequestError *)error {
// This callback is triggered when the ad request fails.
// Add code here to debug the error object to discover causes of failure
NSLog(@"Ad call failed due to %@", error.userInfo[@"NSUnderlyingError"]);
}
אם בקשה להצגת מודעה נכשלת, אפשר להשתמש בקריאה החוזרת (callback) כדי לטפל בשגיאה ולבדוק אותה דרך אובייקט השגיאה.