Configurare gli annunci banner

Annunci banner Sono annunci rettangolari che occupano una parte del layout di un'app. I banner adattivi ancorati sono sempre visualizzati sullo schermo, ancorati nella parte superiore o inferiore dello schermo e hanno un'altezza massima pari al 20% delle dimensioni dello schermo con un'altezza massima di 150 px. Per ottimizzare le dimensioni degli annunci per ogni dispositivo, utilizza i banner adattivi.

Questa guida spiega come caricare un annuncio banner adattivo ancorato in un'app per iOS.

Prerequisiti

Prima di continuare, configura Google Mobile Ads SDK.

Esegui sempre i test con gli annunci di prova

Durante la creazione e il test delle tue app, assicurati di utilizzare annunci di prova anziché annunci di prodotto. In caso contrario, il tuo account potrebbe essere sospeso.

Il modo più semplice per caricare gli annunci di prova è utilizzare il nostro ID unità pubblicitaria di prova dedicato per i banner iOS:

ca-app-pub-3940256099942544/2435281174

È stato configurato appositamente per restituire annunci di prova per ogni richiesta e puoi utilizzarlo liberamente nelle tue app durante la programmazione, i test e il debug. Assicurati di sostituirlo con l'ID unità pubblicitaria prima di pubblicare l'app.

Per saperne di più sul funzionamento degli annunci di prova di Google Mobile Ads SDK, consulta Annunci di prova.

Crea un GADBannerView

Gli annunci banner vengono visualizzati negli oggetti GADBannerView, quindi il primo passaggio per l'integrazione degli annunci banner è includere un GADBannerView nella gerarchia di oggetti View. In genere, questa operazione viene eseguita in modo programmatico o tramite Interface Builder.

In modo programmatico

È anche possibile creare un'istanza di GADBannerView direttamente. L'esempio seguente crea un GADBannerView:

Swift

// Initialize the banner view.
bannerView = BannerView()
bannerView.delegate = self

bannerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bannerView)

// This example doesn't give width or height constraints, as the ad size gives the banner an
// intrinsic content size to size the view.
NSLayoutConstraint.activate([
  // Align the banner's bottom edge with the safe area's bottom edge
  bannerView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor),
  // Center the banner horizontally in the view
  bannerView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
])

SwiftUI

Per utilizzare un BannerView, crea un UIViewRepresentable:

private struct BannerViewContainer: UIViewRepresentable {
  typealias UIViewType = BannerView
  let adSize: AdSize

  init(_ adSize: AdSize) {
    self.adSize = adSize
  }

  func makeUIView(context: Context) -> BannerView {
    let banner = BannerView(adSize: adSize)
    banner.adUnitID = "ca-app-pub-3940256099942544/2435281174"
    banner.load(Request())
    banner.delegate = context.coordinator
    return banner
  }

  func updateUIView(_ uiView: BannerView, context: Context) {}

  func makeCoordinator() -> BannerCoordinator {
    return BannerCoordinator(self)
  }

Aggiungi UIViewRepresentable alla gerarchia di oggetti View, specificando i valori height e width:

var body: some View {
  Spacer()
  // Request an anchored adaptive banner with a width of 375.
  let adSize = largeAnchoredAdaptiveBanner(width: 375)
  BannerViewContainer(adSize)
    .frame(width: adSize.size.width, height: adSize.size.height)
}

Objective-C

// Initialize the banner view.
GADBannerView *bannerView = [[GADBannerView alloc] init];
bannerView.delegate = self;
UIView *view = self.view;

bannerView.translatesAutoresizingMaskIntoConstraints = NO;
[view addSubview:bannerView];

// This example doesn't give width or height constraints, as the ad size gives the banner an
// intrinsic content size to size the view.
[NSLayoutConstraint activateConstraints:@[
  // Align the banner's bottom edge with the safe area's bottom edge
  [bannerView.bottomAnchor
      constraintEqualToAnchor:view.safeAreaLayoutGuide.bottomAnchor],
  // Center the banner horizontally in the view
  [bannerView.centerXAnchor constraintEqualToAnchor:view.centerXAnchor],
]];

self.bannerView = bannerView;

Interface Builder

Puoi aggiungere un GADBannerView a uno storyboard o a un file xib. Quando utilizzi questo metodo, assicurati di aggiungere vincoli di posizione solo al banner. Ad esempio, quando mostri un banner adattivo nella parte inferiore dello schermo, imposta la parte inferiore della visualizzazione del banner in modo che sia uguale alla parte superiore della guida al layout inferiore e imposta il vincolo centerX in modo che sia uguale a centerX della superview.

Imposta le dimensioni dell'annuncio

I banner adattivi di grandi dimensioni offrono un formato più grande progettato per layout senza scorrimento. Rispetto ai banner adattivi ancorati standard, questi banner consentono un'altezza massima maggiore (fino al 20% dell'altezza dello schermo, tra 50 e 150 punti). Questo spazio più ampio è ottimizzato per i contenuti video.

L'esempio seguente recupera le dimensioni di un banner adattivo ancorato di grandi dimensioni:

Swift

// Request a large anchored adaptive banner with a width of 375.
bannerView.adSize = largeAnchoredAdaptiveBanner(width: 375)

Objective-C

// Request a large anchored adaptive banner with a width of 375.
self.bannerView.adSize = GADLargeAnchoredAdaptiveBannerAdSizeWithWidth(375);

Imposta una dimensione dell'annuncio inferiore o uguale alle dimensioni dello schermo del dispositivo. Per determinare le dimensioni massime dello schermo su iOS 26 e versioni successive, utilizza la proprietà UIWindowScene.effectiveGeometry.coordinateSpace. Su iOS 18 e versioni precedenti, utilizza la proprietà UIWindowScene.coordinateSpace. Per i dettagli sui vincoli di dimensione, consulta Requisiti relativi alle dimensioni delle richieste di annunci.

Carica un annuncio

Una volta posizionato GADBannerView e configurate le relative proprietà, ad esempio adUnitID, è il momento di caricare un annuncio. Questa operazione viene eseguita chiamando loadRequest: su un oggetto GADRequest:

Swift

func loadBannerAd(bannerView: BannerView) {
  // Request a large anchored adaptive banner with a width of 375.
  bannerView.adSize = largeAnchoredAdaptiveBanner(width: 375)
  bannerView.load(Request())
}

SwiftUI

banner.adUnitID = "ca-app-pub-3940256099942544/2435281174"
banner.load(Request())

Objective-C

// Request a large anchored adaptive banner with a width of 375.
self.bannerView.adSize = GADLargeAnchoredAdaptiveBannerAdSizeWithWidth(375);

[self.bannerView loadRequest:[GADRequest request]];

Gli oggetti GADRequest rappresentano una singola richiesta di annuncio e contengono proprietà per elementi come le informazioni di targeting.

Aggiorna un annuncio

Se hai configurato l'unità pubblicitaria per l'aggiornamento, non è necessario richiedere un altro annuncio quando l'annuncio non viene caricato. Google Mobile Ads SDK rispetta qualsiasi frequenza di aggiornamento specificata nell'interfaccia utente di AdMob. Se non hai attivato l'aggiornamento, invia una nuova richiesta. Per maggiori dettagli sull'aggiornamento delle unità pubblicitarie, ad esempio l'impostazione di una frequenza di aggiornamento, consulta Utilizza l'aggiornamento automatico per gli annunci banner.

Gestisci le modifiche all'orientamento

Quando l'orientamento dello schermo dell'app cambia, ad esempio dalla modalità portrait a quella orizzontale, spesso cambia anche la larghezza disponibile per il banner. Per assicurarti di mostrare un annuncio di dimensioni appropriate per il nuovo layout, richiedi un nuovo banner. Se la larghezza del banner è statica o se i vincoli di layout possono gestire il ridimensionamento, salta questo passaggio.

Swift

override func viewWillTransition(
  to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator
) {
  coordinator.animate(alongsideTransition: { _ in
    // Load a new ad for the new orientation.
  })
}

Objective-C

- (void)viewWillTransitionToSize:(CGSize)size
       withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
  [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
    // Load a new ad for the new orientation.
  } completion:nil];
}

Eventi annuncio

Tramite l'utilizzo di GADBannerViewDelegate, puoi ascoltare gli eventi del ciclo di vita, ad esempio quando un annuncio viene chiuso o l'utente esce dall'app.

Registrati agli eventi dei banner

Per registrarti agli eventi degli annunci banner, imposta la proprietà delegate su GADBannerView su un oggetto che implementa il protocollo GADBannerViewDelegate. In genere, la classe che implementa gli annunci banner funge anche da classe delegata. In questo caso, la proprietà delegate può essere impostata su self.

Swift

bannerView.delegate = self

SwiftUI

banner.delegate = context.coordinator

Objective-C

bannerView.delegate = self;

Implementa gli eventi banner

Ogni metodo in GADBannerViewDelegate è contrassegnato come facoltativo, quindi devi implementare solo i metodi che vuoi. Questo esempio implementa ogni metodo e registra un messaggio nella console:

Swift

func bannerViewDidReceiveAd(_ bannerView: BannerView) {
  print("Banner ad loaded.")
}

func bannerView(_ bannerView: BannerView, didFailToReceiveAdWithError error: Error) {
  print("Banner ad failed to load: \(error.localizedDescription)")
}

func bannerViewDidRecordImpression(_ bannerView: BannerView) {
  print("Banner ad recorded an impression.")
}

func bannerViewDidRecordClick(_ bannerView: BannerView) {
  print("Banner ad recorded a click.")
}

func bannerViewWillPresentScreen(_ bannerView: BannerView) {
  print("Banner ad will present screen.")
}

func bannerViewWillDismissScreen(_ bannerView: BannerView) {
  print("Banner ad will dismiss screen.")
}

func bannerViewDidDismissScreen(_ bannerView: BannerView) {
  print("Banner ad did dismiss screen.")
}

Objective-C

- (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidReceiveAd");
}

- (void)bannerView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(NSError *)error {
  NSLog(@"bannerView:didFailToReceiveAdWithError: %@", error.localizedDescription);
}

- (void)bannerViewDidRecordImpression:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidRecordImpression");
}

- (void)bannerViewWillPresentScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewWillPresentScreen");
}

- (void)bannerViewWillDismissScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewWillDismissScreen");
}

- (void)bannerViewDidDismissScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidDismissScreen");
}

Consulta l'esempio di delegato degli annunci per un'implementazione dei metodi delegati dei banner nell'app demo dell'API iOS.

Swift Objective-C

Casi d'uso

Ecco alcuni esempi di casi d'uso per questi metodi di eventi degli annunci.

Aggiungi un banner alla gerarchia di oggetti View dopo aver ricevuto un annuncio

Potresti voler ritardare l'aggiunta di un GADBannerView alla gerarchia di oggetti View fino alla ricezione di un annuncio. Per farlo, ascolta l'evento bannerViewDidReceiveAd::

Swift

func bannerViewDidReceiveAd(_ bannerView: BannerView) {
  // Add banner to view and add constraints.
  addBannerViewToView(bannerView)
}

Objective-C

- (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  // Add bannerView to view and add constraints as above.
  [self addBannerViewToView:self.bannerView];
}

Anima un annuncio banner

Puoi anche utilizzare l'evento bannerViewDidReceiveAd: per animare un annuncio banner una volta restituito, come mostrato nell'esempio seguente:

Swift

func bannerViewDidReceiveAd(_ bannerView: BannerView) {
  bannerView.alpha = 0
  UIView.animate(withDuration: 1, animations: {
    bannerView.alpha = 1
  })
}

Objective-C

- (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  bannerView.alpha = 0;
  [UIView animateWithDuration:1.0 animations:^{
    bannerView.alpha = 1;
  }];
}

Mettere in pausa e riprendere l'app

Il protocollo GADBannerViewDelegate include metodi per inviarti notifiche sugli eventi, ad esempio quando un clic causa la visualizzazione o la chiusura di un overlay. Se vuoi monitorare se questi eventi sono stati causati da annunci, registrati per questi metodi GADBannerViewDelegate.

Per rilevare tutti i tipi di presentazioni in overlay o chiamate di browser esterni, non solo quelle provenienti dai clic sugli annunci, è meglio che la tua app ascolti i metodi equivalenti su UIViewController o UIApplication. Ecco una tabella che mostra i metodi iOS equivalenti che vengono richiamati contemporaneamente ai metodi GADBannerViewDelegate:

Metodo GADBannerViewDelegate Metodo iOS
bannerViewWillPresentScreen: viewWillDisappear: di UIViewController
bannerViewWillDismissScreen: viewWillAppear: di UIViewController
bannerViewDidDismissScreen: viewDidAppear: di UIViewController

Risorse aggiuntive

Esempi su GitHub

Passaggi successivi

Banner comprimibili

Gli annunci banner comprimibili sono annunci banner che inizialmente vengono presentati come un overlay più grande, con un pulsante per comprimere l'annuncio in dimensioni più piccole. Valuta la possibilità di utilizzarlo per ottimizzare ulteriormente il rendimento. Per maggiori dettagli, consulta la sezione Annunci banner comprimibili.

Banner adattivi in linea

I banner adattivi in linea sono più grandi e più alti rispetto ai banner adattivi ancorati. Sono di altezza variabile e possono essere alti quanto lo schermo del dispositivo. I banner adattivi in linea sono consigliati rispetto agli annunci banner adattivi ancorati per le app che posizionano annunci banner in contenuti scorrevoli. Per maggiori dettagli, consulta la sezione sui banner adattivi in linea.

Esplora altri argomenti