Les annonces interstitielles s'affichent en plein écran et recouvrent l'interface d'une application jusqu'à ce que l'utilisateur les ferme. Elles sont généralement diffusé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 diffuse une annonce interstitielle, l'utilisateur peut appuyer dessus et accéder à sa destination, ou la fermer et revenir à l'application. Étude de cas.
Ce guide explique comment intégrer des annonces interstitielles dans une application iOS.
Prérequis
Avant de continuer, configurez Google Mobile Ads SDK.
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 tests dédié aux interstitiels iOS :
ca-app-pub-3940256099942544/4411468910
Il a été spécialement configuré pour renvoyer des annonces tests pour chaque requête. Vous pouvez l'utiliser librement dans vos propres applications lors du codage, des tests et du débogage. Veillez simplement à le remplacer par votre propre ID de bloc d'annonces avant de publier votre application.
Pour en savoir plus sur les annonces tests Google Mobile Ads SDK, consultez Activer les annonces tests.
Implémentation
Voici les principales étapes à suivre pour intégrer des annonces interstitielles :
- Charger une annonce
- Demander à recevoir les rappels
- Diffuser l'annonce
Charger une annonce
Pour charger une annonce, la
load(adUnitID:request) méthode doit être utilisée sur la
GADInterstitialAd classe.
Swift
fileprivate func loadInterstitial() async {
do {
interstitial = try await InterstitialAd.load(
with: "ca-app-pub-3940256099942544/4411468910", request: Request())
interstitial?.fullScreenContentDelegate = self
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
SwiftUI
import GoogleMobileAds
class InterstitialViewModel: NSObject, FullScreenContentDelegate {
private var interstitialAd: InterstitialAd?
func loadAd() async {
do {
interstitialAd = try await InterstitialAd.load(
with: "ca-app-pub-3940256099942544/4411468910", request: Request())
interstitialAd?.fullScreenContentDelegate = self
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
Objective-C
[GADInterstitialAd
loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
request:[GADRequest 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;
}];
Demander à recevoir les rappels
Pour recevoir des notifications concernant les événements de présentation, vous devez attribuer le GADFullScreenContentDelegate à la propriété fullScreenContentDelegate de l'annonce renvoyée :
Swift
interstitial?.fullScreenContentDelegate = self
SwiftUI
interstitialAd?.fullScreenContentDelegate = self
Objective-C
self.interstitial.fullScreenContentDelegate = self;
Le protocole GADFullScreenContentDelegate gère les rappels lorsque l'annonce est présentée ou non, et lorsqu'elle est ignorée. Le code suivant montre comment implémenter le protocole :
Swift
func adDidRecordImpression(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
}
func adDidRecordClick(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
}
func ad(_ ad: FullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
print("\(#function) called with error: \(error.localizedDescription)")
// Clear the interstitial ad.
interstitial = nil
}
func adWillPresentFullScreenContent(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
}
func adWillDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
}
func adDidDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
// Clear the interstitial ad.
interstitial = nil
}
SwiftUI
func adDidRecordImpression(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
}
func adDidRecordClick(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
}
func ad(
_ ad: FullScreenPresentingAd,
didFailToPresentFullScreenContentWithError error: Error
) {
print("\(#function) called")
}
func adWillPresentFullScreenContent(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
}
func adWillDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
}
func adDidDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
// Clear the interstitial ad.
interstitialAd = nil
}
Objective-C
- (void)adDidRecordImpression:(id<GADFullScreenPresentingAd>)ad {
NSLog(@"%s called", __PRETTY_FUNCTION__);
}
- (void)adDidRecordClick:(id<GADFullScreenPresentingAd>)ad {
NSLog(@"%s called", __PRETTY_FUNCTION__);
}
- (void)ad:(id<GADFullScreenPresentingAd>)ad
didFailToPresentFullScreenContentWithError:(NSError *)error {
NSLog(@"%s called with error: %@", __PRETTY_FUNCTION__, error.localizedDescription);
// Clear the interstitial ad.
self.interstitial = nil;
}
- (void)adWillPresentFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
NSLog(@"%s called", __PRETTY_FUNCTION__);
}
- (void)adWillDismissFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
NSLog(@"%s called", __PRETTY_FUNCTION__);
}
- (void)adDidDismissFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
NSLog(@"%s called", __PRETTY_FUNCTION__);
// Clear the interstitial ad.
self.interstitial = nil;
}
GADInterstitialAd est un objet à usage unique. Cela signifie qu'une fois qu'une annonce interstitielle est diffusée, elle ne peut plus l'être. Il est recommandé de charger une autre annonce interstitielle dans la méthode adDidDismissFullScreenContent: sur GADFullScreenContentDelegate afin que le chargement de l'annonce interstitielle suivante commence dès que la précédente est ignorée.
Diffuser l'annonce
Les interstitiels doivent être diffusés lors de pauses naturelles dans le flux d'une application. Par exemple, entre les niveaux d'un jeu ou une fois que l'utilisateur a terminé une tâche.
Swift
ad.present(from: self!)
SwiftUI
Écoutez les événements d'interface utilisateur dans la vue pour déterminer quand diffuser l'annonce.
var body: some View {
// ...
}
.onChange(of: countdownTimer.isComplete) { newValue in
showGameOverAlert = newValue
}
.alert(isPresented: $showGameOverAlert) {
Alert(
title: Text("Game Over"),
message: Text("You lasted \(countdownTimer.countdownTime) seconds"),
dismissButton: .cancel(
Text("OK"),
action: {
viewModel.showAd()
}))
Présentez l'annonce interstitielle à partir du modèle de vue :
func showAd() {
guard let interstitialAd = interstitialAd else {
return print("Ad wasn't ready.")
}
interstitialAd.present(from: nil)
}
Objective-C
[self.interstitial presentFromRootViewController:self];
Bonnes pratiques
- Déterminez si les annonces interstitielles sont le type d'annonce adapté à votre application.
- Les annonces interstitielles sont plus efficaces dans les applications comportant des points de transition naturels. La fin d'une tâche dans une application, comme le partage d'une image ou la fin d'un niveau de jeu, crée un tel point. Comme l'utilisateur s'attend à une pause dans l'action, il est facile de présenter une annonce interstitielle sans perturber son expérience. Réfléchissez aux moments où vous diffuserez des annonces interstitielles dans le workflow de votre application et à la manière dont l'utilisateur est susceptible de réagir.
- N'oubliez pas de mettre l'action en pause lorsque vous diffusez 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 diffuse une annonce interstitielle, elle suspend également l'utilisation de certaines ressources pour permettre à l'annonce d'en profiter. Par exemple, lorsque vous appelez l'annonce pour la diffuser, veillez à mettre en pause toute sortie audio produite par votre application. Vous pouvez reprendre la lecture des sons dans le
adDidDismissFullScreenContent:gestionnaire d'événements, qui sera appelé lorsque l'utilisateur aura terminé d'interagir avec l'annonce. En outre, envisagez d'interrompre temporairement les tâches de calcul intensives (telles qu'une boucle de jeu) pendant la diffusion de l'annonce. Ainsi, l'utilisateur ne rencontrera pas de problèmes de lenteur, de graphismes qui ne répondent pas ou de vidéo saccadée. - Prévoyez un temps de chargement suffisant.
- Il est important de diffuser les annonces interstitielles au bon moment, mais aussi de s'assurer que l'utilisateur n'a pas à attendre leur chargement. Le fait de charger l'annonce à l'avance avant de la diffuser permet de s'assurer que votre application dispose d'une annonce interstitielle entièrement chargée et prête à être diffusée le moment venu.
- N'inondez pas les utilisateurs d'annonces.
- Même si le fait d'augmenter la fréquence des annonces interstitielles dans votre appli peut sembler être un excellent moyen d'augmenter vos revenus, cela peut également dégrader l'expérience utilisateur et réduire les taux de clics. Veillez à ce que les utilisateurs ne soient pas interrompus trop fréquemment, car ils risquent de ne plus pouvoir profiter de votre appli.
- N'utilisez pas le rappel de fin de chargement pour afficher l'interstitiel.
- Cela peut nuire à l'expérience utilisateur. Au lieu de cela, préchargez l'annonce avant de la diffuser. Ensuite, vérifiez la méthode
canPresentFromRootViewController:error:surGADInterstitialAdpour savoir si elle est prête à être diffusée.
Ressources supplémentaires
Exemples sur GitHub
Consultez les exemples complets d'annonces interstitielles dans la langue de votre choix :
Tutoriels vidéo Mobile Ads Garage
Témoignages
Étapes suivantes
- Si ce n'est pas déjà fait, créez votre propre bloc d'annonces interstitielles dans l' interface utilisateur AdMob.
- En savoir plus sur le ciblage publicitaire et les consignes concernant les annonces interstitielles.
- En savoir plus sur la confidentialité des utilisateurs.