Styles natifs

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 avez spécifiés dans le produit. Tout d'abord, spécifiez la taille et le ciblage. Ensuite, ajoutez du code HTML, CSS et JavaScript pour définir des annonces responsives et produire un affichage de qualité sur tous les écrans. Vous n'avez pas besoin de configurer l'affichage ; Ad Manager applique automatiquement le style natif approprié pour la destination. Les styles natifs sont implémentés comme les 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.

Conditions préalables

  • SDK Google Mobile Ads 7.14.0 ou version ultérieure

Ce guide suppose que vous avez une connaissance pratique du SDK Google Mobile Ads. Si vous ne l'avez pas déjà fait, consultez notre guide de démarrage.

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:

  1. Créez un élément de campagne dans l'interface utilisateur d'Ad Manager, puis sélectionnez l'une des tailles prédéfinies dans le menu déroulant du champ Size.

  2. 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 pouvez consulter la liste des tailles et des constantes GADAdSize correspondantes dans la section Taille de la bannière.

Pour implémenter des styles natifs avec une taille fixe, il suffit de suivre les instructions de la section Votre première demande de bannière. Toutefois, vous gagnez en flexibilité et en contrôle sur le code HTML, CSS et JavaScript, ce qui vous permet de donner à votre bannière un aspect natif adapté à votre application.

Taille "Fluide"

Dans certains cas, une taille fixe peut ne pas être judicieuse. Par exemple, vous pouvez choisir que la largeur de l'annonce corresponde au contenu de votre application, mais avoir besoin que sa hauteur s'ajuste dynamiquement au contenu de l'annonce. Pour gérer ce cas de figure, vous pouvez spécifier Fluid comme taille d'annonce dans l'interface utilisateur d'Ad Manager, ce qui signifie que la taille de l'annonce est déterminée au moment de l'exécution dans l'application. Le SDK fournit une constante GADAdSize spéciale, kGADAdSizeFluid, pour gérer ce cas. La hauteur de la taille d'annonce fluide est déterminée dynamiquement en fonction de la largeur définie par l'éditeur, ce qui permet à GAMBannerView d'ajuster sa hauteur pour qu'elle corresponde à 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. Assurez-vous donc de définir explicitement la largeur du frame 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 requête multitaille incluant 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 d'une demande fluide pour une seule taille et pour une demande multitailles est très similaire. La seule différence réside dans les demandes multitailles : vous définissez la propriété validAdSizes pour spécifier les tailles d'annonces valides pour la demande d'annonce :

Swift

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

Objective-C

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

Voici à quoi ressemble l'implémentation complète dans le code:

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]];
}

Pour voir un exemple d'implémentation de la taille d'annonce fluide dans Ad Manager, téléchargez l'application de démonstration de l'API iOS dans Swift ou Objectif-C.

Télécharger la démonstration de l'API

Protocole GADAdSizeDebug

Il peut être utile de connaître la hauteur d'une bannière avant de modifier la taille de l'annonce. Le rappel adView:willChangeAdSizeTo: informe son délégué avant que la bannière ne passe à la nouvelle GADAdSize. Pour être averti avant que la bannière ne change de 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: 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;
}