Annonces interstitielles

Les annonces interstitielles s'affichent en plein écran, recouvrant l'interface d'une application jusqu'à ce que l'utilisateur la ferme. Elles sont généralement affichées lors de points de transition naturels, par exemple entre deux activités ou pendant la pause entre les niveaux du jeu. Lorsqu'une application affiche une annonce interstitielle, l'utilisateur a le choix entre appuyer sur l'annonce et accéder à sa destination, ou la fermer pour revenir à l'application. Étude de cas.

Ce guide vous explique comment intégrer des annonces interstitielles dans une application iOS.

Prérequis

  • SDK Google Mobile Ads 8.0.0 ou version ultérieure
  • Importez le SDK Google Mobile Ads en suivant le guide Premiers pas.

Toujours tester avec des annonces tests

Lorsque vous créez et testez vos applications, assurez-vous d'utiliser des annonces tests plutôt que des annonces de production. À défaut, votre compte risque d'être suspendu.

Le moyen le plus simple de charger des annonces tests consiste à utiliser notre ID de bloc d'annonces test dédié pour les interstitiels iOS:
ca-app-pub-3940256099942544/4411468910

Elle a été spécialement configurée pour renvoyer des annonces tests pour chaque requête, et vous pouvez l'utiliser dans vos propres applications pendant le codage, les tests et le débogage. Assurez-vous de le remplacer par votre propre ID de bloc d'annonces avant de publier votre application.

Pour en savoir plus sur le fonctionnement des annonces tests du SDK Mobile Ads, consultez la page Annonces tests.

Implémentation

Voici les principales étapes à suivre pour intégrer des annonces interstitielles:

  1. Chargez une annonce.
  2. Inscrivez-vous pour bénéficier de rappels.
  3. Diffusez l'annonce et gérez l'événement de la récompense.

Charger une annonce

Pour charger une annonce, utilisez la méthode statique loadWithAdUnitID:request:completionHandler: de la classe GADInterstitialAd. La méthode de chargement nécessite votre ID de bloc d'annonces, un objet GADRequest et un gestionnaire de remplissage qui est appelé en cas de réussite ou d'échec du chargement de l'annonce. L'objet GADInterstitialAd chargé est fourni en tant que paramètre dans le gestionnaire de fin. L'exemple ci-dessous montre comment charger un GADInterstitialAd dans votre classe ViewController.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    let request = GADRequest()
    GADInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/4411468910",
                                request: request,
                      completionHandler: { [self] ad, error in
                        if let error = error {
                          print("Failed to load interstitial ad with error: \(error.localizedDescription)")
                          return
                        }
                        interstitial = ad
                      }
    )
  }
}

Objective-C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController ()

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GADRequest *request = [GADRequest request];
  [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
                              request:request
                    completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
  }];
}

Inscrivez-vous pour recevoir des rappels

Afin de recevoir des notifications pour les événements de présentation, vous devez mettre en œuvre le protocole GADFullScreenContentDelegate et l'attribuer à la propriété fullScreenContentDelegate de l'annonce renvoyée. Le protocole GADFullScreenContentDelegate gère les rappels lorsque l'annonce se présente correctement ou non, et lorsqu'elle est ignorée. Le code suivant montre comment mettre en œuvre le protocole et l'attribuer à l'annonce:

Swift

class ViewController: UIViewController, GADFullScreenContentDelegate {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    let request = GADRequest()
    GADInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/4411468910",
                                request: request,
                      completionHandler: { [self] ad, error in
                        if let error = error {
                          print("Failed to load interstitial ad with error: \(error.localizedDescription)")
                          return
                        }
                        interstitial = ad
                        interstitial?.fullScreenContentDelegate = self
                      }
    )
  }

  /// Tells the delegate that the ad failed to present full screen content.
  func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
    print("Ad did fail to present full screen content.")
  }

  /// Tells the delegate that the ad will present full screen content.
  func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad will present full screen content.")
  }

  /// Tells the delegate that the ad dismissed full screen content.
  func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad did dismiss full screen content.")
  }
}

Objective-C

@interface ViewController ()<GADFullScreenContentDelegate>

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController
- (void)viewDidLoad {
  [super viewDidLoad];
  GADRequest *request = [GADRequest request];
  [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
                              request:request
                    completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
    self.interstitial.fullScreenContentDelegate = self;
  }];
}

/// Tells the delegate that the ad failed to present full screen content.
- (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad
didFailToPresentFullScreenContentWithError:(nonnull NSError *)error {
    NSLog(@"Ad did fail to present full screen content.");
}

/// Tells the delegate that the ad will present full screen content.
- (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
    NSLog(@"Ad will present full screen content.");
}

/// Tells the delegate that the ad dismissed full screen content.
- (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
   NSLog(@"Ad did dismiss full screen content.");
}

GADInterstitialAd est un objet à usage unique. Cela signifie qu'une fois la diffusion d'une annonce interstitielle, celle-ci ne peut plus être diffusée. Il est recommandé de charger une autre annonce interstitielle dans la méthode adDidDismissFullScreenContent: du GADFullScreenContentDelegate afin que l'annonce interstitielle suivante commence à se charger dès que l'annonce précédente sera ignorée.

Afficher l'annonce

Les interstitiels doivent s'afficher pendant les pauses naturelles du flux d'une application. Entre les niveaux d'un jeu, une fois qu'un utilisateur a terminé une tâche, Voici un exemple de méthode à suivre dans l'une des méthodes d'action d'une propriété UIViewController:

Swift

@IBAction func doSomething(_ sender: Any) {
  if interstitial != nil {
    interstitial.present(fromRootViewController: self)
  } else {
    print("Ad wasn't ready")
  }
}

Objective-C

- (IBAction)doSomething:(id)sender {
  ...
  if (self.interstitial) {
    [self.interstitial presentFromRootViewController:self];
  } else {
    NSLog(@"Ad wasn't ready");
  }
}

Bonnes pratiques

Déterminez si les annonces interstitielles sont le type d'annonce le mieux adapté à votre application.
Les annonces interstitielles sont plus performantes dans les applications avec des points de transition naturels. La conclusion d'une tâche dans une application, comme partager une image ou terminer un niveau de jeu, crée un tel point. Étant donné que l'utilisateur s'attend à une pause de l'action, il est facile de présenter une annonce interstitielle sans perturber son expérience. Prenez en compte les étapes du workflow d'application qui afficheront les annonces interstitielles et la manière dont l'utilisateur est susceptible de répondre.
N'oubliez pas de mettre en veille l'action lors de la diffusion d'une annonce interstitielle.
Il existe plusieurs types d'annonces interstitielles: textuelles, illustrées, vidéo, etc. Il est important de s'assurer que lorsque votre application affichera une annonce interstitielle, son utilisation de certaines ressources sera également suspendue afin que l'annonce puisse en profiter. Par exemple, lorsque vous appelez l'affichage d'une annonce interstitielle, veillez à mettre en veille toutes les sorties audio générées par votre application. Vous pouvez reprendre la lecture de sons dans adDidDismissFullScreenContent:, qui sera appelé lorsque l'utilisateur aura terminé d'interagir avec l'annonce. En outre, pensez à interrompre temporairement les tâches de calcul intenses (telles qu'une boucle de jeu) pendant l'affichage de l'annonce. Ainsi, l'utilisateur ne verra pas de graphique lent ou ne répond pas, ni de vidéo saccadée.
Laissez un temps de chargement suffisant.
Tout comme il est important de s'assurer que vous diffusez des annonces interstitielles au moment opportun, il est également important de s'assurer que l'utilisateur n'a pas à attendre qu'elles se chargent. En chargeant l'annonce à l'avance, vous pouvez vous assurer que votre application dispose d'une annonce interstitielle entièrement chargée au moment où elle devrait s'afficher.
N'inondez pas l'utilisateur d'annonces.
Même si l'augmentation de la fréquence des annonces interstitielles dans votre application peut vous permettre d'augmenter vos revenus, cela peut également nuire à l'expérience utilisateur et réduire les taux de clics. Assurez-vous que les utilisateurs ne soient pas aussi souvent interrompus qu'ils ne puissent plus profiter de votre appli.
N'utilisez pas le rappel de fin de chargement pour afficher l'interstitiel.
Cela peut nuire à l'expérience utilisateur. Vous devez précharger l'annonce avant de la diffuser. Vérifiez ensuite la méthode canPresentFromRootViewController:error: sur GADInterstitialAd pour savoir si elle est prête à être affichée.

Autres ressources

Exemples sur GitHub

Tutoriels vidéo sur les annonces mobiles garage

Témoignages

Étapes suivantes