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

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

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

סקירה כללית

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

GADSearchBannerView

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

GADDynamicHeightSearchRequest

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

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

- (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"]);
}

אם בקשת מודעה נכשלה, תוכלו להשתמש בקריאה החוזרת הזו כדי לטפל בשגיאה כראוי ולחקור את השגיאה באמצעות אובייקט השגיאה.