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 affiche une annonce interstitielle, l'utilisateur a le choix entre appuyer sur l'annonce et continuer vers 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.
Effectuez toujours des tests 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é pour les interstitiels iOS:
ca-app-pub-3940256099942544/4411468910
Il a été spécialement configuré pour renvoyer des annonces de test pour chaque requête. Vous pouvez l'utiliser 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 le fonctionnement des annonces tests du SDK Mobile Ads, consultez Annonces tests.
Implémentation
Voici les principales étapes à suivre pour intégrer des annonces interstitielles:
- Chargez une annonce.
- Demandez à recevoir les rappels.
- Afficher l'annonce
Charger une annonce
Pour charger une annonce, la méthode load(adUnitID:request)
de la classe GADInterstitialAd
doit être utilisée.
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 des rappels
Pour recevoir des notifications pour les événements de présentation, vous devez attribuer la propriété GADFullScreenContentDelegate to the
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 la présentation de l'annonce aboutit ou échoue, 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 à nouveau. Il est recommandé de charger une autre annonce interstitielle dans la méthode adDidDismissFullScreenContent:
sur GADFullScreenContentDelegate
afin que la prochaine annonce interstitielle commence à se charger dès que la précédente est fermée.
Afficher l'annonce
Les annonces interstitielles doivent s'afficher lors des pauses naturelles dans le flux d'une application. Par exemple, entre les niveaux d'un jeu ou après qu'un 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 afficher 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
- Demandez-vous si les annonces interstitielles sont le bon type d'annonce pour votre application.
- Les annonces interstitielles fonctionnent mieux dans les applications comportant des points de transition naturels. La finalisation d'une tâche dans une application, comme partager une image ou terminer un niveau de jeu, crée un tel point. Comme l'utilisateur s'attend à une interruption de l'action, il est facile de présenter une annonce interstitielle sans perturber son expérience. Veillez à déterminer à quel moment du workflow de votre application vous allez afficher des annonces interstitielles et comment l'utilisateur est susceptible de réagir.
- N'oubliez pas de mettre en veille l'action lorsque vous affichez 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 affiche une annonce interstitielle, elle suspend également l'utilisation de certaines ressources pour permettre à l'annonce de les utiliser. Par exemple, lorsque vous appelez l'affichage d'une annonce interstitielle, veillez à mettre en pause toute sortie audio produite par votre application. Vous pouvez reprendre la lecture des sons dans le gestionnaire d'événements
adDidDismissFullScreenContent:
, qui sera appelé lorsque l'utilisateur aura terminé d'interagir avec l'annonce. En outre, envisagez de suspendre temporairement toutes les tâches de calcul intense (telles qu'une boucle de jeu) pendant la diffusion de l'annonce. Cela garantit que l'utilisateur ne rencontre pas de graphiques lents ou non réactifs, ni de vidéos saccadées. - Prévoyez un temps de chargement adéquat.
- Tout comme il est important de s'assurer que les annonces interstitielles sont diffusées au bon moment, il est également important de s'assurer que l'utilisateur n'a pas à attendre qu'elles se chargent. En chargeant l'annonce à l'avance avant de l'afficher, vous pouvez vous assurer que votre application dispose d'une annonce interstitielle entièrement chargée lorsqu'il est temps de l'afficher.
- Ne submergez pas l'utilisateur d'annonces.
- Augmenter la fréquence des annonces interstitielles dans votre application peut sembler être un excellent moyen d'augmenter les revenus, mais cela peut aussi dégrader l'expérience utilisateur et réduire les taux de clics. Assurez-vous que les utilisateurs ne sont pas interrompus si fréquemment 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. Préchargez plutôt l'annonce avant de devoir la diffuser. Vérifiez ensuite la méthode
canPresentFromRootViewController:error:
surGADInterstitialAd
pour savoir si elle est prête à être affichée.
Ressources supplémentaires
Exemples sur GitHub
Consultez les exemples d'annonces interstitielles complets dans votre langue préférée:
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'UI AdMob.
- En savoir plus sur le ciblage publicitaire et les consignes concernant les annonces interstitielles
- En savoir plus sur la confidentialité des utilisateurs