Les paramètres de style natif permettent à Google Ad Manager de gérer l'affichage de vos annonces natives en fonction des styles natifs que vous spécifiez dans le produit. Commencez par spécifier la taille et le ciblage.
Ajoutez ensuite du code HTML, CSS et JavaScript pour définir des annonces responsives qui s'affichent correctement sur tous les écrans. Vous n'avez pas besoin de vous occuper du rendu. Ad Manager applique automatiquement le style natif approprié à la destination. Les styles natifs sont implémentés comme des bannières publicitaires, à l'aide d'un GAMBannerView
. Elles peuvent être utilisées avec une taille d'annonce fixe déterminée à l'avance ou une taille d'annonce fluide déterminée au moment de l'exécution.
Prérequis
- SDK Google Mobile Ads 7.14.0 ou version ultérieure
Ce guide suppose que vous maîtrisez les principes de base du SDK Google Mobile Ads. Si vous ne l'avez pas déjà fait, pensez à consulter notre guide Premiers pas.
Taille fixe
Les styles natifs de taille fixe vous permettent de contrôler la largeur et la hauteur de l'annonce native. Pour définir une taille fixe, procédez comme suit :
Créez un élément de campagne dans l'UI Ad Manager et sélectionnez l'une des tailles prédéfinies dans le menu déroulant du champ
Size
.Dans Interface Builder, définissez la largeur et la hauteur de
GAMBannerView
pour qu'elles correspondent à la taille prédéfinie que vous avez sélectionnée à l'étape 1. Vous trouverez la liste des tailles et des constantesGADAdSize
correspondantes dans la section Taille de la bannière.
Pour implémenter des styles natifs avec une taille fixe, il vous suffit de suivre les instructions de la section Votre première demande de bannière. Vous bénéficiez ainsi de la flexibilité et du contrôle sur le code HTML, CSS et JavaScript pour donner à votre bannière l'apparence native et naturelle de votre application.
Taille fluide
Dans certains cas, une taille fixe peut ne pas avoir de sens. Par exemple, vous pouvez souhaiter que la largeur de l'annonce corresponde au contenu de votre application, mais que sa hauteur s'ajuste de manière dynamique pour s'adapter au contenu de l'annonce. Pour gérer ce cas, vous pouvez spécifier Fluid
comme taille d'annonce dans l'UI Ad Manager. Cela indique que la taille de l'annonce est déterminée au moment de l'exécution dans l'application. Le SDK fournit une constante spéciale GADAdSize
, kGADAdSizeFluid
, pour gérer ce cas. La hauteur de la taille d'annonce fluide est déterminée de manière dynamique en fonction de la largeur définie par l'éditeur, ce qui permet à GAMBannerView
d'ajuster sa hauteur à celle de la création.
Demande fluide
Contrairement aux autres formats d'annonces, la taille d'annonce kGADAdSizeFluid
n'a pas de largeur prédéfinie. Veillez donc à définir explicitement la largeur du cadre de la bannière dans votre code ou dans Interface Builder. Si aucune largeur n'est spécifiée, le SDK définit par défaut la hauteur de la bannière en fonction de la largeur totale de l'appareil.
Si vous effectuez une demande multisize qui inclut kGADAdSizeFluid
, l'annonce renvoyée est toujours placée dans un conteneur fluide et se comporte comme une annonce fluide. Si une création non fluide est renvoyée dans ce conteneur fluide, le SDK centre l'annonce dans le conteneur. Vous n'avez donc pas besoin de modifier la contrainte de largeur chaque fois qu'une nouvelle annonce est renvoyée.
L'implémentation pour effectuer une demande fluide de taille unique et une demande fluide multisize est très similaire. La seule différence est que, pour une demande multisize, vous définissez la propriété validAdSizes
pour spécifier les tailles d'annonces valides pour la demande d'annonce :
Swift
bannerView.validAdSizes = [nsValue(for: AdSizeFluid), nsValue(for: AdSizeBanner)]
Objective-C
_bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
NSValueFromGADAdSize(kGADAdSizeBanner) ];
Voici à quoi ressemble l'implémentation complète dans le code :
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]];
}
Pour obtenir un exemple d'implémentation de la taille d'annonce fluide Ad Manager, téléchargez l'application de démonstration de l'API iOS en Swift ou Objective-C.
Protocole GADAdSizeDelegate
Vous pouvez avoir besoin de connaître la hauteur d'une bannière avant que sa taille d'annonce ne change.
Le rappel adView:willChangeAdSizeTo:
avertit son délégué avant que la vue de la bannière ne passe au nouveau GADAdSize
. Pour être averti avant que la vue de bannière ne passe à la nouvelle taille d'annonce, votre classe doit être conforme au protocole GADAdSizeDelegate
.
Voici un exemple d'implémentation du rappel adView:willChangeAdSizeTo:
qui montre comment obtenir la nouvelle largeur et la nouvelle hauteur de la bannière :
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;
}