Implementacja reklam natywnych AdSense dla wyszukiwania na iOS

Pakiet SDK do reklam mobilnych Google obsługuje też niestandardowe style reklamy w wyszukiwarce. Jeśli Twoja aplikacja korzysta już z pakietu SDK do reklam mobilnych Google, zalecamy skorzystanie z Wersja pakietu SDK AdSense dla wyszukiwania .

Wymagania wstępne

  • Używaj Xcode 8.0 lub nowszej wersji
  • Docelowa wersja iOS 8.0 lub nowsza
  • Prawidłowy kod usługi internetowej wydawcy (np. vert-ppa-test1-srp)
  • CocoaPods

Importowanie natywnego pakietu SDK AdSense dla wyszukiwania

CocoaPods

Zaimportuj pakiet Google-AdSenseNative SDK do projektu iOS za pomocą: CocoaPods. Otwórz w swoim projekcie plik Podfile i dodaj ten wiersz do miejsca docelowego aplikacji:

pod 'Google-AFSNative'

Następnie uruchom polecenie w wierszu poleceń:

pod install --repo-update

Jeśli dopiero zaczynasz korzystać z CocoaPods, zapoznaj się z ich oficjalna dokumentacja tworzenia i używania plików Podfiles.

Omówienie

W przypadku aktualizacji z wersji 2.0.8 lub nowszej do wersji 4.0 lub nowszej zapoznaj się z artykułem naszym przewodniku po migracji.

Niniejszy dokument opisuje proces integracji reklam natywnych AdSense dla wyszukiwania. w aplikacji mobilnej na iOS.

GANSearchAdController

  • Konstruktor GANSearchAdController wymaga podania funkcji kodu usługi internetowej wydawcy, żądanego identyfikatora ustawień i powiązanych GANSearchAdControllerOptions obiekt.
  • Każde wywołanie funkcji loadAds() powoduje nowe wyszukiwanie i powoduje zestaw reklam do odrzucenia i unieważnienia.
  • Kreacje reklamowe są przechowywane w: GANAdView.
  • Reklamy są wstawiane do reklamy GANAdView za pomocą metody populateAdView. W oprócz pola GANAdView, które ma zostać wypełnione, element wywołujący poda adIdentifier, który jest dowolnym ciągiem znaków, który powinien jednoznacznie identyfikować reklamę. W interfejsie API do każdego przekazywanego identyfikatora adIdentifier przypisywana jest konkretna reklama. cal Za każdym razem, gdy ten klucz adKey zostanie ponownie przekazany w przyszłości, ta sama reklama zostanie . Jeśli na przykład funkcja populateAdView zostanie wywołana po raz pierwszy z użyciem adIdentifier „keyA”, każde kolejne wywołanie funkcji populateAdView podczas przekazywania „kluczA” adIdentifier spowoduje wyświetlenie tej samej reklamy.

GANAdView

  • Jest to element UIView zawierający tę kreację.
  • Wypełnij ten widok reklamą, korzystając z metody populateAdView na GANSearchAdController

GANSearchAdControllerOptions

  • Przekaż ten obiekt do konstruktora GANSearchAdController, aby określić sposób żądania i wyświetlania reklam.

GANSearchAdRequest

  • Wywołaj metodę loadAds w instancji GANSearchAdController za pomocą tego , by wysłać żądanie reklamy.

GANSearchAdControllerDelegate

  • Wdróż ten interfejs i udostępnij go w GANSearchAdController, aby: rejestrować wywołania zwrotne w kilku stanach.

Przykładowa implementacja

Poniższy przykład pokazuje, jak utworzyć GANSearchAdController i GANView w celu wyświetlania reklamy w przykładzie ViewController.

// SampleAppViewController.m implementation

#import <AFSNative/AFSNative.h>

@interface GBannerViewController () {
  // The Ad Controller used by the sample application.
  GANSearchAdController *_adController;

  // The Ad View to display the loaded ad.
  GANAdView *_adView;
}
// scrollView will be where we place our ads in this example.
@property(nonatomic, strong) UIScrollView *scrollView;
@end
...

- (void)viewDidLoad {
  [super viewDidLoad];

  // Create the scroll view.
  ...
  [self.view addSubview:scrollView];

  // Create a test button and link the ad request to its action.
  UIButton *loadBannerButton = [UIButton buttonWithType:UIButtonTypeCustom];
  ...
  [loadBannerButton addTarget:self
                       action:@selector(loadAd:)
             forControlEvents:UIControlEventTouchUpInside];
  [self.scrollView addSubview:loadBannerButton];

  // Construct the Ad Controller.
  GANSearchAdControllerOptions *options = [[GANSearchAdControllerOptions alloc] init];
  options.prefetchEnabled = YES;
  options.adType = GANSearchAdTypeSPA;
  options.adFetchCount = 3;

  _adController = [[GANSearchAdController alloc]
                     initWithPublisherID: @"your-client-id"
                                 styleID: @"your-settings-id"
                                 options: options
                                delegate: self];

  _adView = [_adController adView];
  [self.scrollView addSubview:_adView];
}

// Request ads when the test button is pressed.
- (void)loadAd:(id)sender {
  // Construct the Ad Request.
  GANSearchAdRequest *adRequest = [[GANSearchAdRequest alloc] init];
  adRequest.query =  @"some-query";
  // Start loading ads. Note that the loading is asynchronous.
  [_adController loadAds: adRequest];
}

// Insert ads into GANAdView if the request returns successfully.
- (void)searchAdController:(GANSearchAdController *)adController  
                didLoadAds:(NSInteger)numberOfAds {
  if (numberOfAds <= 0) {
    NSLog(@"No ads found on the server");
  } else {
    [_adController populateAdView:_adView identifier:@"demoAd"];
  }
}
...