Stili nativi

Le impostazioni degli stili nativi consentono a Google Ad Manager di gestire il rendering degli annunci nativi in base agli stili nativi specificati all'interno del prodotto. Innanzitutto, specifica le dimensioni e il targeting. Poi aggiungi HTML, CSS e JavaScript per definire annunci adattabili e produrre una visualizzazione di qualità su tutti gli schermi. Non devi eseguire il rendering perché Ad Manager applica automaticamente lo stile nativo appropriato alla destinazione. Gli stili nativi vengono implementati come gli annunci banner utilizzando un GAMBannerView. Possono essere utilizzati con dimensioni degli annunci fisse determinate in anticipo o con dimensioni flessibili degli annunci al momento dell'attivazione.

Prerequisiti

  • SDK Google Mobile Ads versione 7.14.0 o successive

Questa guida presuppone una conoscenza pratica dell'SDK Google Mobile Ads. Se non lo hai già fatto, ti consigliamo di consultare la nostra guida introduttiva.

Dimensioni fisse

Gli stili nativi con dimensioni fisse ti consentono di controllare la larghezza e l'altezza dell'annuncio nativo. Per impostare una dimensione fissa, procedi nel seguente modo:

  1. Crea un elemento pubblicitario nell'interfaccia utente di Ad Manager e seleziona una delle dimensioni predefinite dal menu a discesa del campo Size.

  2. In Interface Builder, imposta la larghezza e l'altezza di GAMBannerView in modo che corrispondano alle dimensioni predefinite selezionate nel passaggio 1. Puoi visualizzare un elenco delle dimensioni e delle costanti GADAdSize corrispondenti nella sezione Dimensioni banner.

Per implementare gli stili nativi con dimensioni fisse è sufficiente seguire le istruzioni riportate in La tua prima richiesta di banner, ma avrai la flessibilità e il controllo su HTML, CSS e JavaScript per conferire all'annuncio banner un aspetto nativo naturale nella tua app.

Dimensioni flessibili

In alcuni casi, una dimensione fissa potrebbe non avere senso. Ad esempio, potresti volere che la larghezza dell'annuncio corrisponda ai contenuti dell'app, ma che l'altezza sia da regolare in modo dinamico per adattarsi ai contenuti dell'annuncio. Per gestire questo caso, puoi specificare Fluid come dimensione dell'annuncio nell'interfaccia utente di Ad Manager, che indica che le dimensioni dell'annuncio vengono determinate durante il runtime nell'app. Per gestire questo caso, l'SDK fornisce una costante GADAdSize speciale, kGADAdSizeFluid. L'altezza delle dimensioni flessibili degli annunci viene determinata dinamicamente in base alla larghezza definita dal publisher, consentendo all'elemento GAMBannerView di regolarne l'altezza in base a quella della creatività.

Richiesta flessibile

A differenza di altri formati di annunci, le dimensioni dell'annuncio kGADAdSizeFluid non hanno una larghezza predefinita, quindi assicurati di impostare esplicitamente la larghezza del frame del banner nel codice o in Interface Builder. Se non viene specificata una larghezza, l'SDK imposta per impostazione predefinita l'altezza del banner in base all'intera larghezza del dispositivo.

Se effettui una richiesta per più dimensioni che include kGADAdSizeFluid, l'annuncio restituito viene sempre posizionato all'interno di un contenitore fluido e si comporta come un annuncio fluido. Se una creatività non flessibile viene restituita in questo contenitore flessibile, l'SDK centra l'annuncio nel contenitore in modo che tu non debba modificare il vincolo di larghezza ogni volta che viene restituito un nuovo annuncio.

L'implementazione per creare una richiesta flessibile di una sola dimensione e una richiesta flessibile di più dimensioni è molto simile; l'unica differenza è che, per una richiesta di più dimensioni, imposti la proprietà validAdSizes per specificare le dimensioni annuncio valide per la richiesta di annuncio:

Swift

bannerView.validAdSizes = [NSValueFromGADAdSize(kGADAdSizeFluid),
                           NSValueFromGADAdSize(kGADAdSizeBanner)]

Objective-C

_bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
                              NSValueFromGADAdSize(kGADAdSizeBanner) ];

Ecco come si presenta l'implementazione completa nel codice:

Swift

var bannerView: GAMBannerView!

override func viewDidLoad() {
  super.viewDidLoad()
  // Create the GAMBannerView and set its width to a width that makes sense for your
  // app. In this example, the width is set to the width of the UIViewController's
  // root view.
  bannerView = GAMBannerView(adSize: kGADAdSizeFluid)
  var frameRect = bannerView.frame
  frameRect.size.width = view.bounds.width
  bannerView.frame = frameRect

  // Uncomment this code for a multisize fluid request.
  // bannerView.validAdSizes = [NSValueFromGADAdSize(kGADAdSizeFluid),
  //                            NSValueFromGADAdSize(kGADAdSizeBanner)]

  bannerView.adUnitID = "YOUR_AD_UNIT_ID"
  bannerView.rootViewController = self

  // Make the ad request.
  bannerView.load(GAMRequest())
}

Objective-C

GAMBannerView *_bannerView;

- (void)viewDidLoad {
  [super viewDidLoad];
  // Create the GAMBannerView and set its width to a width that makes sense for your
  // app. In this example, the width is set to the width of the UIViewController's
  // root view.
  _bannerView = [[GAMBannerView alloc] initWithAdSize:kGADAdSizeFluid];
  CGRect frameRect = _bannerView.frame;
  frameRect.size.width = CGRectGetWidth(self.view.bounds);
  _bannerView.frame = frameRect;

  // Uncomment this code for a multisize fluid request.
  // _bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
  //                               NSValueFromGADAdSize(kGADAdSizeBanner) ];

  _bannerView.adUnitID = @"YOUR_AD_UNIT_ID";
  _bannerView.rootViewController = self;

  // Make the ad request.
  [_bannerView loadRequest:[GAMRequest request]];
}

Per vedere un esempio di implementazione delle dimensioni flessibili dell'annuncio di Ad Manager, scarica l'app demo dell'API per iOS in Swift o Objective-C.

Scarica la demo dell'API

Protocollo GADAdSizeDelega

Potresti voler conoscere l'altezza di un banner prima che le sue dimensioni degli annunci cambino. Il callback adView:willChangeAdSizeTo: invia una notifica al suo delegato prima che la visualizzazione del banner passi al nuovo GADAdSize. Per ricevere una notifica prima che la visualizzazione del banner passi alla nuova dimensione dell'annuncio, la tua classe deve essere conforme al protocollo GADAdSizeDelegate.

Ecco un'implementazione di esempio del callback adView:willChangeAdSizeTo: che mostra come ottenere la nuova larghezza e la nuova altezza del banner:

Swift

// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
bannerView.adSizeDelegate = self

// MARK: - GADAdSizeDelegate

func adView(_ bannerView: GADBannerView, willChangeAdSizeTo adSize: GADAdSize) {
  let height = adSize.size.height
  let width = adSize.size.width
}

Objective-C

// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
_bannerView.adSizeDelegate = self;

#pragma mark - GADAdSizeDelegate

- (void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)adSize {
  CGFloat height = adSize.size.height;
  CGFloat width = adSize.size.width;
}