Combinazione di richieste di annuncio nativo e banner con rendering personalizzato

Con alcune modifiche al codice, puoi combinare annunci nativi e banner nelle richieste di annunci.

Prerequisiti

Caricamento di un annuncio

Gli annunci nativi sottoposti a rendering personalizzato vengono caricati tramite oggetti GADAdLoader. L'oggetto GADAdLoader può anche essere configurato per effettuare richieste di annunci che possono generare un annuncio banner o nativo. L'aggiunta di GADAdLoaderAdTypeGAMBanner al parametro array adTypes, insieme ai tipi di annunci nativi come GADAdLoaderAdTypeNative durante la creazione dell'oggetto GADAdLoader, specifica che gli annunci banner devono competere con gli annunci nativi per soddisfare la richiesta.

Swift

adLoader = GADAdLoader(adUnitID: "/6499/example/nativeandbanner",
    rootViewController: self,
    adTypes: [.native, .gamBanner],
    options: [... ad loader options objects ...])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/6499/example/nativeandbanner"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

GAMBannerAdLoaderDelegate

Quando richiedi annunci banner tramite GADAdLoader, il delegato del caricatore di annunci deve rispettare il protocollo GAMBannerAdLoaderDelegate. Questo protocollo include un messaggio inviato quando è stato caricato un annuncio banner:

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didReceive GAMBannerView: GAMBannerView)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveGAMBannerView:(GAMBannerView *)bannerView;

Il delegato del caricatore di annunci deve inoltre specificare le dimensioni degli annunci banner da richiedere rispondendo al messaggio validBannerSizesForAdLoader come mostrato di seguito.

Swift

public func validBannerSizes(for adLoader: GADAdLoader) -> [NSValue] {
  return [NSValueFromGADAdSize(GADAdSizeBanner),
    NSValueFromGADAdSize(GADAdSizeMediumRectangle),
    NSValueFromGADAdSize(GADAdSizeFromCGSize(CGSize(width: 120, height: 20)))]
}

Objective-C

- (NSArray *)validBannerSizesForAdLoader:(GADAdLoader *)adLoader {
  return @[
    @(GADAdSizeBanner),
    @(GADAdSizeMediumRectangle),
    @(GADAdSizeFromCGSize(CGSizeMake(120, 20)))
  ];
}

Conteggio manuale delle impressioni

Per attivare il conteggio manuale delle impressioni per gli annunci banner caricati tramite GADAdLoader, imposta GAMBannerViewOptions con enableManualImpressions impostato su YES durante l'inizializzazione di GADAdLoader.

Swift

let bannerViewOptions = GAMBannerViewOptions()
bannerViewOptions.enableManualImpressions = true
adLoader = GADAdLoader(
  adUnitID: "/6499/example/nativeandbanner", rootViewController: self,
  adTypes: [.native, .gamBanner], options: [bannerViewOptions])

Objective-C

GAMBannerViewOptions *bannerViewOptions = [[GAMBannerViewOptions alloc] init];
bannerViewOptions.enableManualImpressions = YES;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/6499/example/nativeandbanner"
    rootViewController:self
               adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ]
               options:@[ bannerViewOptions ]];

Se un annuncio banner viene caricato, puoi chiamare recordManualImpression quando determini che un annuncio è stato restituito correttamente e che è sullo schermo per attivare manualmente un'impressione:

Swift

bannerView.recordImpression()

Objective-C

[self.bannerView recordImpression];