הטמעה של AFSMA באפליקציות לנייד (AFSMA) ב-iOS

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

מדריך הטמעה זה מבוסס על ההנחה שאתם מכירים את הנושאים הבאים:

סקירה כללית

המסמך הזה מתאר את תהליך השילוב של מודעות AdSense לחיפוש לאפליקציות לנייד (AFSMA) באפליקציה לנייד ל-iOS. לפעמים מודעות AFSMA נקראות גם מודעות דינמיות לרשת החיפוש בגובה דינמי. כדי לבקש ולעבד מודעות AFSMA ב-iOS, צריך להטמיע את הפריטים הבאים:

GADSearchBannerView

  • הסיווג הזה עובר בירושה מהמחלקה UIView של iOS ומציג את מודעות AFSMA. השדה GADSearchBannerView שולח את הבקשה להצגת מודעה עם GADDynamicHeightSearchRequest, ומעבד את המודעות שהוחזרו. צריך להוסיף את GADSearchBannerView לכל אחת מהתצוגות הקיימות של האפליקציה. בדרך כלל הוא הבקר הראשי של התצוגה המפורטת שמכיל את התצוגה שאליה GADSearchBannerView נוסף. צריך להגדיר את הנציגים המתאימים ב-GADSearchBannerView.
  • יש ליצור את GADSearchBannerView באמצעות initWithAdSize:kGADAdSizeFluid כדי לבקש מודעות AFSMA. יצירת GADSearchBannerView באמצעות initWithAdSize:kGADAdSizeBanner בקשות של מודעות AFSMA מדור קודם.
  • המאפיין adUnitID באובייקט הזה צריך להיות מוגדר לקוד הנכס שלך.

GADDynamicHeightSearchRequest

  • אובייקט זה כולל את הפרמטרים של הבקשה להצגת מודעה. הדבר דומה להגדרת פרמטרים באובייקטים של בקשות להצגת מודעות ב-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) כדי לטפל בשגיאה ולבדוק אותה דרך אובייקט השגיאה.