Implementacja AdSense dla wyszukiwania do aplikacji mobilnych (AFSMA) na iOS

Wymagania wstępne

W tym przewodniku po implementacji zakładamy, że znasz te zagadnienia:

Omówienie

Niniejszy dokument opisuje proces integracji reklam AdSense dla wyszukiwania do aplikacji mobilnych. w aplikacji mobilnej na iOS. Reklamy AdSense dla Zakupów Google są też czasami nazywane reklamami dynamicznymi. wysokość reklam w wyszukiwarce. Aby wysyłać żądania reklam AdSense dla wyszukiwania i renderować je na urządzeniach z iOS: zastosuj:

GADSearchBannerView

  • Ta klasa dziedziczy dane z klasy UIView w systemie iOS i wyświetla reklamy AdSense dla wyszukiwaniaMA. GADSearchBannerView wysyła żądanie reklamy z tagiem GADDynamicHeightSearchRequest i wyrenderuje zwrócone reklamy. Identyfikator GADSearchBannerView należy dodać do dowolnego z istniejących widoków aplikacji. zazwyczaj to kontroler widoku nadrzędnego Kontakt GADSearchBannerView został dodany do. Odpowiednich przedstawicieli należy ustawić na stronie GADSearchBannerView.
  • Instancja GADSearchBannerView musi być utworzona za pomocą initWithAdSize:kGADAdSizeFluid, aby wysyłać żądania reklam AdSense dla wyszukiwania. Tworzę instancję GADSearchBannerView z initWithAdSize:kGADAdSizeBanner próśbami o starszą wersję AdSense dla wyszukiwania reklam.
  • Właściwość adUnitID tego obiektu musi być ustawiona na kod usługi.

GADDynamicHeightSearchRequest

  • Ten obiekt zawiera parametry żądania reklamy. Jest to analogiczne do parametrów w obiektach żądań reklamy JavaScript (opcje strony, jednostka ).

(void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size

  • To wywołanie zwrotne jest wywoływane po zwróceniu żądania reklamy. Ponieważ zwrócona reklama może zawierać wiele reklam z różnymi rozszerzeniami, dokładny rozmiar jednostki reklamowej jest nieznana w momencie wysłania żądania reklamy. Gdy reklama zostanie widok banera musi zostać zaktualizowany, by uwzględnić nowy rozmiar do danej jednostki reklamowej. Kod służący do zmiany rozmiaru elementu GADSearchBannerView w widoku nadrzędnym powinien który zostanie wdrożony tutaj.

Przykładowa implementacja

Poniższy przykład pokazuje, jak za pomocą GBannerViewController można utworzyć GADSearchBannerView jako widok podrzędny UIScrollView. Aby prawidłowo przesłać prośbę o AdSense dla wyszukiwania, ads, obiekt GADSearchBannerView musi być utworzony za pomocą 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];
  }

W ramach tego samego elementu GBannerViewController utwórz GADDynamicHeightSearchRequest określające parametry reklamy, które będą renderowane w elemencie 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"];

Inne opcje dostosowywania są możliwe po ustawieniu dodatkowych właściwości na GADDynamicHeightSearchRequest obiektu.

Aby wysłać żądanie reklamy, wywołaj loadRequest za pomocą GADDynamicHeightSearchRequest z obiektu GADSearchBannerView:

[self.searchBannerView loadRequest:searchRequest];

Aby widok nadrzędny prawidłowo zmieścił się w elemencie GADSearchBannerView, reklam zwracanych przez reklamy, należy zaimplementować poniższe wywołanie zwrotne.

// 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.
  ...
}

Opcje zaawansowane

Większość parametrów żądania reklamy można ustawić za pomocą właściwości GADDynamicHeightSearchRequest obiekt (searchRequest powyżej). Inne parametry należy ustawić za pomocą par klucz-wartość z funkcją 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"];

Zobacz pełną listę dostępnych parametrów

Badanie błędów

GADBannerViewDelegate zawiera wywołanie zwrotne, które ułatwia badanie błędów:

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

Jeśli żądanie reklamy nie powiedzie się, możesz użyć tego wywołania zwrotnego, by prawidłowo obsługiwać błąd. i przeanalizuj błąd, używając obiektu błędu.