Les annonces interstitielles sont des annonces plein écran qui couvrent l'interface d'une application jusqu'à ce qu'elles soient fermées par l'utilisateur. Ils s'affichent généralement à des points de transition naturels dans une application, par exemple entre deux activités ou pendant la pause entre deux niveaux de jeu. Lorsqu'une application diffuse un interstitiel, l'utilisateur a le choix entre appuyer sur l'annonce et continuer jusqu'à sa destination, ou la fermer et 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
- Suivez le guide de démarrage.
Toujours tester avec les annonces tests
Lorsque vous créez et testez vos applications, veillez à utiliser des annonces de test plutôt que des annonces de production. À défaut, votre compte risque d'être suspendu.
Pour charger les annonces de test, le plus simple est d'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 à chaque demande, et vous êtes libre de l'utiliser dans vos propres applications pour coder, tester et déboguer. Veillez simplement à le remplacer par votre propre ID de bloc d'annonces avant de publier votre application.
Pour en savoir plus sur le fonctionnement des annonces de test du SDK Mobile Ads, consultez la page Tester les annonces.
Implémentation
Voici les principales étapes à suivre pour intégrer des annonces interstitielles:
- Chargez une annonce.
- Inscrivez-vous pour recevoir des rappels.
- Affichez l'annonce et gérez l'événement de récompense.
Charger une annonce
Pour charger une annonce, utilisez la méthode loadWithAdUnitID:request:completionHandler:
statique de la classe GADInterstitialAd
. La méthode de chargement nécessite votre ID de bloc d'annonces, un objet GADRequest
et un gestionnaire d'achèvement qui est appelé lorsque le chargement de l'annonce aboutit ou échoue. L'objet GADInterstitialAd
chargé est fourni en tant que paramètre dans le gestionnaire de lecture complète. L'exemple ci-dessous montre comment charger un objet 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; }]; }
S'inscrire pour les rappels
Afin de recevoir des notifications pour les événements de présentation, vous devez implémenter 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 qu'une annonce interstitielle a été diffusée, elle ne peut plus être affichée. Une bonne pratique consiste à charger une autre annonce interstitielle dans la méthode adDidDismissFullScreenContent:
sur GADFullScreenContentDelegate
, de sorte que l'annonce interstitielle suivante commence à se charger dès que l'annonce précédente est 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, cela peut être un bon exemple ou lorsque l'utilisateur a terminé une tâche.
Voici un exemple de procédure à suivre dans l'une des méthodes d'action d'un 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 adaptées à votre application.
- Les annonces interstitielles sont plus efficaces dans les applications comportant 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 ce point. Étant donné que l'utilisateur s'attend à une pause, il est facile de présenter une annonce interstitielle sans perturber son expérience. Prenez en compte les points de votre flux de travail où vous diffusez des annonces interstitielles et la manière dont l'utilisateur est susceptible d'y répondre.
- N'oubliez pas de mettre en veille l'action lorsque vous diffusez une annonce interstitielle.
- Il existe différents types d'annonces interstitielles: textuelles, illustrées, vidéo, etc. Il est important de s'assurer que lorsque votre application affiche une annonce interstitielle, elle suspend également son utilisation de certaines ressources afin que l'annonce puisse en profiter. Par exemple, lorsque vous appelez l'affichage d'une annonce interstitielle, veillez à suspendre toute sortie audio produite par votre application. Vous pouvez reprendre la lecture des sons dans le gestionnaire d'événements
adDidDismissFullScreenContent:
, qui est appelé lorsque l'utilisateur a terminé d'interagir avec l'annonce. En outre, envisagez d'interrompre temporairement les tâches de calcul intenses (comme une boucle de jeu) pendant l'affichage de l'annonce. Ainsi, l'utilisateur ne verra pas de vidéos ou de vidéos saccadées, lentes ou qui ne répondent pas. - Prévoyez un temps de chargement approprié.
- Il est important de diffuser les annonces interstitielles au moment opportun, mais aussi de veiller à ce que l'utilisateur n'ait pas à attendre qu'il se charge. En chargeant l'annonce à l'avance avant l'intention de la diffuser, vous vous assurez qu'une annonce interstitielle entièrement chargée est disponible au moment d'en diffuser une.
- N'inondez pas l'utilisateur d'annonces.
- Même si l'augmentation de la fréquence des interstitiels dans votre application peut sembler être un excellent moyen d'augmenter les revenus, cela peut également nuire à l'expérience utilisateur et réduire les taux de clics. Assurez-vous que les utilisateurs ne sont pas si souvent interrompus qu'ils ne peuvent plus profiter de votre application.
- N'utilisez pas le rappel de fin de chargement pour afficher l'interstitiel.
- Cela peut nuire à l'expérience utilisateur. et préchargez-la. Consultez ensuite la méthode
canPresentFromRootViewController:error:
surGADInterstitialAd
pour savoir si elle est prête à être affichée.
Autres ressources
Exemples sur GitHub
- Exemple d'annonce interstitielle : Swift | Objective-C
Tutoriels vidéo sur les annonces mobiles garage
Témoignages
Étapes suivantes
- Si vous ne l'avez pas encore fait, créez votre propre bloc d'annonces interstitielles dans l'UI AdMob.
- En savoir plus sur le ciblage des annonces et les consignes relatives aux annonces interstitielles