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.
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
- Esempio di annunci banner adattivi ancorati: Swift | SwiftUI | Objective-C
- Demo delle funzionalità avanzate: Swift | Objective-C
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.