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 che producano una visualizzazione di qualità su tutti gli schermi. Non devi eseguire il rendering. Ad Manager applica automaticamente lo stile nativo corretto per la destinazione. Gli stili nativi vengono implementati proprio come gli annunci banner, utilizzando un GAMBannerView. Possono essere utilizzati con una dimensione dell'annuncio fissa determinata in anticipo o con una dimensione dell'annuncio flessibile determinata in fase di runtime.
Prerequisiti
- Google Mobile Ads SDK versione 7.14.0 o successive
Questa guida presuppone una conoscenza pratica di Google Mobile Ads SDK. Se non l'hai ancora fatto, ti consigliamo di consultare la nostra guida 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:
Crea un elemento pubblicitario nell'interfaccia utente di Ad Manager e seleziona una delle dimensioni predefinite dal menu a discesa del campo
Size(Dimensioni).In Interface Builder, imposta la larghezza e l'altezza di
GAMBannerViewin modo che corrispondano alle dimensioni predefinite selezionate nel passaggio 1. Puoi visualizzare un elenco delle dimensioni e delle costantiGADAdSizecorrispondenti nella sezione Dimensioni del banner.
L'implementazione degli stili nativi con dimensioni fisse è semplice come seguire le istruzioni riportate nella sezione La tua prima richiesta di banner, ma ottieni la flessibilità e il controllo su HTML, CSS e JavaScript per dare al tuo annuncio banner un aspetto nativo e naturale nella tua app.
Dimensioni flessibili
In alcuni casi, una dimensione fissa potrebbe non essere appropriata. Ad esempio, potresti voler che la larghezza dell'annuncio corrisponda ai contenuti della tua app, ma che l'altezza si adatti dinamicamente ai contenuti dell'annuncio. Per gestire questo caso,
puoi specificare Fluid come dimensione dell'annuncio nell'interfaccia utente di Ad Manager, il che
indica che la dimensione dell'annuncio viene determinata in fase di runtime nell'app.
L'SDK fornisce una costante GADAdSize speciale,
kGADAdSizeFluid,
per gestire questo caso. L'altezza della dimensione dell'annuncio flessibile viene determinata dinamicamente
in base alla larghezza definita dall'editore, consentendo a
GAMBannerView,
di regolare la propria altezza in modo che corrisponda a quella della creatività.
Richiesta flessibile
A differenza di altri formati dell'annuncio, la dimensione dell'annuncio kGADAdSizeFluid non ha 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 alla larghezza completa del dispositivo.
Se effettui una richiesta di più dimensioni che include kGADAdSizeFluid, l'annuncio restituito viene sempre inserito in un contenitore flessibile e si comporta come un annuncio flessibile. Se in questo contenitore flessibile viene restituita una creatività non flessibile, l'SDK centra l'annuncio nel contenitore in modo che non sia necessario modificare il vincolo di larghezza ogni volta che viene restituito un nuovo annuncio.
L'implementazione per effettuare una richiesta flessibile di una singola dimensione e di più dimensioni è molto simile. L'unica differenza è che, per una richiesta di più dimensioni, devi impostare la proprietà validAdSizes per specificare le dimensioni dell'annuncio valide per la richiesta di annuncio:
Swift
bannerView.validAdSizes = [nsValue(for: AdSizeFluid), nsValue(for: AdSizeBanner)]
Objective-C
_bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
NSValueFromGADAdSize(kGADAdSizeBanner) ];
Ecco come appare l'implementazione completa nel codice:
Swift
var bannerView: AdManagerBannerView!
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 = AdManagerBannerView(adSize: AdSizeFluid)
var frameRect = bannerView.frame
frameRect.size.width = view.bounds.width
bannerView.frame = frameRect
// Uncomment this code for a multisize fluid request.
// bannerView.validAdSizes = [nsValue(for: AdSizeFluid), nsValue(for: AdSizeBanner)]
bannerView.adUnitID = "YOUR_AD_UNIT_ID"
bannerView.rootViewController = self
// Make the ad request.
bannerView.load(AdManagerRequest())
}
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 della dimensione dell'annuncio flessibile di Ad Manager, scarica l'app iOS API Demo in Swift o Objective-C.
Protocollo GADAdSizeDelegate
Potresti voler conoscere l'altezza di un banner prima che la sua dimensione dell'annuncio cambi.
Il callback adView:willChangeAdSizeTo: notifica il 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.
Di seguito è riportato un esempio di implementazione 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: BannerView, willChangeAdSizeTo adSize: AdSize) {
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;
}