Annunci banner

Gli annunci banner sono annunci rettangolari che occupano una parte del layout dell'app. Loro rimangono sullo schermo mentre gli utenti interagiscono con l'app, ancorati al nella parte superiore o inferiore dello schermo oppure in linea con i contenuti mentre l'utente scorre la pagina. Banner gli annunci possono aggiornarsi automaticamente dopo un determinato periodo di tempo. Consulta la Panoramica degli annunci banner per ulteriori informazioni.

Questa guida illustra come iniziare a utilizzare il banner adattivo ancorato annunci, che massimizza il rendimento ottimizzando le dimensioni dell'annuncio per ogni dispositivo utilizzando la larghezza di un annuncio da te specificata.

Banner adattivo ancorato

Gli annunci banner adattivi ancorati sono annunci con proporzioni fisse anziché i normali annunci con dimensioni fisse. Le proporzioni sono simili a quelle dello standard di settore 320 x 50. Una volta specifichi l'intera larghezza disponibile, ti restituisce un annuncio con altezza per quella larghezza. L'altezza ottimale non cambia da una richiesta all'altra da sullo stesso dispositivo e le viste circostanti non devono spostarsi quando l'annuncio vengono aggiornate.

Prerequisiti

Effettua sempre test con annunci di prova

Durante la creazione e il test delle tue app, assicurati di utilizzare annunci di prova anziché annunci di produzione attivi. In caso contrario, l'account verrà sospeso.

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

ca-app-pub-3940256099942544/2435281174

È stato appositamente configurato per restituire annunci di prova per ogni richiesta Puoi usarlo senza costi nelle tue app durante la programmazione, i test e il debug. Crea assicurati di sostituirlo con il tuo ID unità pubblicitaria prima di pubblicare l'app.

Per ulteriori informazioni sul funzionamento degli annunci di prova dell'SDK Mobile Ads, consulta la sezione Test Google Ads.

Crea un GADBannerView

Gli annunci banner vengono visualizzati in GADBannerView oggetti, quindi il primo passo per integrare gli annunci banner è includere un GADBannerView nella gerarchia delle visualizzazioni. Questa operazione viene in genere eseguita in modo programmatico tramite Interface Builder.

In modo programmatico

È anche possibile creare un'istanza direttamente di un'istanza GADBannerView. Ecco un esempio di come creare un GADBannerView, allineata in basso al centro dell'area di sicurezza dello schermo:

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  var bannerView: GADBannerView!

  override func viewDidLoad() {
    super.viewDidLoad()
    
    let viewWidth = view.frame.inset(by: view.safeAreaInsets).width

    // Here the current interface orientation is used. Use
    // GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth or
    // GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth if you prefer to load an ad of a
    // particular orientation,
    let adaptiveSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth)
    bannerView = GADBannerView(adSize: adaptiveSize)

    addBannerViewToView(bannerView)
  }

  func addBannerViewToView(_ bannerView: GADBannerView) {
    bannerView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(bannerView)
    view.addConstraints(
      [NSLayoutConstraint(item: bannerView,
                          attribute: .bottom,
                          relatedBy: .equal,
                          toItem: view.safeAreaLayoutGuide,
                          attribute: .bottom,
                          multiplier: 1,
                          constant: 0),
       NSLayoutConstraint(item: bannerView,
                          attribute: .centerX,
                          relatedBy: .equal,
                          toItem: view,
                          attribute: .centerX,
                          multiplier: 1,
                          constant: 0)
      ])
   }
   
}

Objective-C

@import GoogleMobileAds;

@interface ViewController ()

@property(nonatomic, strong) GADBannerView *bannerView;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  
  // Here safe area is taken into account, hence the view frame is used after the
  // view has been laid out.
  CGRect frame = UIEdgeInsetsInsetRect(self.view.frame, self.view.safeAreaInsets);
  CGFloat viewWidth = frame.size.width;

  // Here the current interface orientation is used. If the ad is being preloaded
  // for a future orientation change or different orientation, the function for the
  // relevant orientation should be used.
  GADAdSize adaptiveSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth);
  // In this case, we instantiate the banner with desired ad size.
  self.bannerView = [[GADBannerView alloc] initWithAdSize:adaptiveSize];

  [self addBannerViewToView:self.bannerView];
}

- (void)addBannerViewToView:(UIView *)bannerView {
  bannerView.translatesAutoresizingMaskIntoConstraints = NO;
  [self.view addSubview:bannerView];
  [self.view addConstraints:@[
    [NSLayoutConstraint constraintWithItem:bannerView
                               attribute:NSLayoutAttributeBottom
                               relatedBy:NSLayoutRelationEqual
                                  toItem:self.view.safeAreaLayoutGuide
                               attribute:NSLayoutAttributeBottom
                              multiplier:1
                                constant:0],
    [NSLayoutConstraint constraintWithItem:bannerView
                               attribute:NSLayoutAttributeCenterX
                               relatedBy:NSLayoutRelationEqual
                                  toItem:self.view
                               attribute:NSLayoutAttributeCenterX
                              multiplier:1
                                constant:0]
                                ]];
}
  
@end

Tieni presente che in questo caso non assegniamo vincoli di larghezza o altezza, poiché la dimensione annuncio fornita fornirà al banner una dimensione intrinseca dei contenuti per vista.

Builder di interfacce

Un GADBannerView può essere aggiunto a uno storyboard o a un xib . Quando utilizzi questo metodo, assicurati di aggiungere vincoli di posizione solo il banner. Ad esempio, quando visualizzi un banner adattivo nella parte inferiore Sullo schermo, imposta la parte inferiore della visualizzazione banner uguale a quella della parte superiore della parte inferiore Guida al layout e imposta il centro X uguale al centro X della superview.

Le dimensioni dell'annuncio del banner sono ancora impostate tramite programmazione:

Swift

  bannerView.adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth)

Objective-C

  self.bannerView.adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth);

Carica un annuncio

Una volta che GADBannerView è attivo e le sue proprietà configurato, è il momento di caricare un annuncio. Per farlo, chiama loadRequest: su un GADRequest :

Swift

override func viewDidLoad() {
  super.viewDidLoad()
  ...
  
  //  Set the ad unit ID and view controller that contains the GADBannerView.
  bannerView.adUnitID = "ca-app-pub-3940256099942544/2435281174"
  bannerView.rootViewController = self

  bannerView.load(GADRequest())
}

Objective-C

-   (void)viewDidLoad {
  [super viewDidLoad];
  ...
  
  //  Set the ad unit ID and view controller that contains the GADBannerView.
  self.bannerView.adUnitID = @"ca-app-pub-3940256099942544/2435281174";
  self.bannerView.rootViewController = self;

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

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

Se il tuo annuncio non viene caricato, non devi richiederne esplicitamente un altro. purché tu abbia configurato l'unità pubblicitaria per aggiornarsi; L'SDK Google Mobile Ads rispetti la frequenza di aggiornamento specificata nell'interfaccia utente. Se non hai abilitato l'aggiornamento, dovrai inviare una nuova richiesta.

Eventi annuncio

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

Registrazione per gli eventi banner

Per registrarti agli eventi di annunci banner, imposta la proprietà delegate su GADBannerView a un oggetto che implementa protocollo GADBannerViewDelegate. In genere, la classe che implementa i banner degli annunci funge anche da classe delegata, nel qual caso la proprietà delegate può essere impostato su self.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController, GADBannerViewDelegate {

  var bannerView: GADBannerView!

  override func viewDidLoad() {
    super.viewDidLoad()
    ...
    bannerView.delegate = self
  }
}

Objective-C

@import GoogleMobileAds;

@interface ViewController () <GADBannerViewDelegate>

@property(nonatomic, strong) GADBannerView *bannerView;

@end

@implementation ViewController

-   (void)viewDidLoad {
  [super viewDidLoad];
  ...
  self.bannerView.delegate = self;
}

Implementazione di eventi banner

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

Swift

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  print("bannerViewDidReceiveAd")
}

func bannerView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: Error) {
  print("bannerView:didFailToReceiveAdWithError: \(error.localizedDescription)")
}

func bannerViewDidRecordImpression(_ bannerView: GADBannerView) {
  print("bannerViewDidRecordImpression")
}

func bannerViewWillPresentScreen(_ bannerView: GADBannerView) {
  print("bannerViewWillPresentScreen")
}

func bannerViewWillDismissScreen(_ bannerView: GADBannerView) {
  print("bannerViewWillDIsmissScreen")
}

func bannerViewDidDismissScreen(_ bannerView: GADBannerView) {
  print("bannerViewDidDismissScreen")
}

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

Vedi l'esempio del delegato annunci per l'implementazione dei metodi di delega banner in l'app iOS API Demo.

Swift Objective-C

Casi d'uso

Di seguito sono riportati alcuni casi d'uso di esempio per questi metodi degli eventi annuncio.

L'aggiunta di un banner alla gerarchia di visualizzazione dopo la ricezione di un annuncio

Ti consigliamo di ritardare l'aggiunta di GADBannerView a nella gerarchia delle visualizzazioni fino a quando non viene ricevuto un annuncio. Puoi farlo ascoltando per l'evento bannerViewDidReceiveAd::

Swift

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

Objective-C

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

Animazione di un annuncio banner

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

Swift

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  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 prevede metodi per inviarti notifiche sugli eventi, ad esempio ad esempio quando un clic attiva la presentazione o la chiusura di un overlay. Se vuoi monitorare se questi eventi sono dovuti ad annunci, registrati per questi GADBannerViewDelegate metodi.

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

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 inizialmente presentati come annunci più grandi con un pulsante che consente di comprimere l'annuncio riducendolo a una dimensione inferiore. Valuta l'uso per ottimizzare ulteriormente il rendimento. Per ulteriori dettagli, consulta la sezione sugli annunci banner comprimibili.

Banner adattivi in linea

I banner adattivi in linea sono banner più grandi e più alti rispetto agli adattivi ancorati banner. 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 app che inseriscono annunci banner in contenuti scorrevoli. Vedi Adattivi in linea banner per saperne di più i dettagli.

Esplora altri argomenti