Commencer

Ce guide est destiné aux éditeurs qui souhaitent monétiser une application iOS avec AdMob et qui n'utilisent pas Firebase. Si vous envisagez d'inclure Firebase dans votre application (ou si vous envisagez de le faire), consultez plutôt la version AdMob avec Firebase de ce guide.

L'intégration du SDK Google Mobile Ads dans une application est la première étape pour diffuser des annonces et générer des revenus. Une fois le SDK intégré, vous pouvez mettre en œuvre un ou plusieurs formats d'annonces compatibles.

Prérequis

  • Utiliser Xcode 15.3 ou une version ultérieure
  • Cibler iOS 12.0 ou version ultérieure

Importer le SDK Mobile Ads

Utilisez l'une des méthodes suivantes pour importer le SDK Google Mobile Ads.

CocoaPods (recommandé)

Le moyen le plus simple d'importer le SDK dans un projet iOS consiste à utiliser CocoaPods. Ouvrez le fichier Podfile de votre projet et ajoutez cette ligne à la cible de votre application:

pod 'Google-Mobile-Ads-SDK'

Ensuite, à partir de la ligne de commande, exécutez la commande suivante:

pod install --repo-update

Si vous débutez avec CocoaPods, consultez la documentation officielle pour en savoir plus sur la création et l'utilisation de fichiers de pod.

Gestionnaire de paquets Swift

Le SDK Google Mobile Ads est compatible avec Swift Package Manager à partir de la version 9.0.0. Suivez ces étapes pour importer le package Swift:

  1. Dans Xcode, installez le package Swift Google Mobile Ads en accédant à File > Add Packages (Fichier > Ajouter des packages).

  2. Dans l'invite qui s'affiche, recherchez le dépôt GitHub du package Google Mobile Ads Swift:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. Sélectionnez la version du package Swift Google Mobile Ads que vous souhaitez utiliser. Pour les nouveaux projets, nous vous recommandons d'utiliser la version majeure suivante.

Une fois que vous avez terminé, Xcode commence à résoudre les dépendances de vos packages et à les télécharger en arrière-plan. Pour en savoir plus sur l'ajout de dépendances de packages, consultez l'article d'Apple.

Téléchargement manuel

  1. Téléchargez le SDK Google Mobile Ads et Embed & Sign les frameworks suivants dans votre projet Xcode:

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. Ajoutez l'indicateur d'association -ObjC à Other Linker Flags dans les paramètres de compilation de votre projet:

Mettre à jour votre fichier Info.plist

Mettez à jour le fichier Info.plist de votre application pour ajouter deux clés:

  1. Une clé GADApplicationIdentifier avec une valeur de chaîne de votreAdMob app ID found in the AdMob UI.

  2. Une clé SKAdNetworkItems avec des valeurs SKAdNetworkIdentifier pour Google (cstr6suwn9.skadnetwork) et certains acheteurs tiers qui ont fourni ces valeurs à Google.

Extrait complet

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>
<key>SKAdNetworkItems</key>
<array>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cstr6suwn9.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4fzdc2evr5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4pfyvq9l8r.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>2fnua5tdw4.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ydx93a7ass.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>5a6flpkh64.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>p78axxw29g.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v72qych5uu.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ludvb6z3bs.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cp8zw746q7.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3sh42y64q3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>c6k4g5qg8m.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>s39g8k73mm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3qy4746246.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>f38h382jlk.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>hs6bdukanm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v4nxqhlyqp.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>wzmmz9fp6w.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>yclnxrl5pm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>t38b2kh725.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>7ug5zh24hu.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>gta9lk7p23.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>vutu7akeur.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>y5ghdn5j9k.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>n6fk4nfna4.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v9wttpbfk9.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>n38lu8286q.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>47vhws6wlr.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>kbd757ywx3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>9t245vhmpl.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>eh6m2bh4zr.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>a2p9lx4jpn.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>22mmun2rn5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4468km3ulz.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>2u9pt9hc89.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>8s468mfl3y.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>klf5c3l5u5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ppxm28t8ap.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ecpz2srf59.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>uw77j35x4d.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>pwa73g5rt2.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>mlmmfzh3r3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>578prtvx9j.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4dzt52r2t5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>e5fvkxwrpn.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>8c4e2ghe7u.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>zq492l623r.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3rd42ekr43.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3qcr597p9d.skadnetwork</string>
  </dict>
</array>

Si vous n'avez pas encore créé de compte AdMob et enregistré une application, le moment est venu.

Dans une application réelle, remplacez l'ID d'application exemple par votre ID d'applicationAdMob réel. Vous pouvez utiliser l'exemple d'ID si vous ne faites que tester le SDK dans une application Hello World.

Initialiser le SDK Mobile Ads

Avant de charger les annonces, appelez la méthode startWithCompletionHandler: sur GADMobileAds.sharedInstance, qui initialise le SDK et appelle un gestionnaire d'achèvement une fois l'initialisation terminée (ou après un délai d'inactivité de 30 secondes). Cette opération ne doit être effectuée qu'une seule fois, idéalement au lancement de l'application. Vous devez appeler startWithCompletionHandler: le plus tôt possible.

Voici un exemple d'appel de la méthode startWithCompletionHandler: dans AppDelegate:

Exemple d'AppDelegate (extrait)

Swift

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }
}

SwiftUI

import GoogleMobileAds

class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }
}

@main
struct YourApp: App {
  // To handle app delegate callbacks in an app that uses the SwiftUI lifecycle,
  // you must create an application delegate and attach it to your `App` struct
  // using `UIApplicationDelegateAdaptor`.
  @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

  var body: some Scene {
    WindowGroup {
      NavigationView {
        ContentView()
      }
    }
  }
}

Objective-C

@import GoogleMobileAds;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  [GADMobileAds.sharedInstance startWithCompletionHandler:nil];
  return YES;
}

@end

Sélectionnez un format d'annonce

Le SDK Mobile Ads est maintenant importé et initialisé, et vous êtes prêt à implémenter une annonce. AdMob propose différents formats d'annonces pour que vous puissiez choisir celui qui correspond le mieux à l'expérience utilisateur de votre application.

Pour les développeurs SwiftUI, suivez notre guide SwiftUI.

Les blocs d'annonces de type bannière affichent des annonces rectangulaires qui occupent une partie de la mise en page d'une application. Elles peuvent être actualisées automatiquement après une période donnée. Cela signifie que les utilisateurs voient une nouvelle annonce à intervalles réguliers, même s'ils restent sur le même écran dans votre application. Il s'agit également du format d'annonce le plus simple à implémenter.

Implémenter des bannières

Interstitiel

Les blocs d'annonces interstitielles affichent des annonces en pleine page dans votre application. Placez-les lors des pauses ou des points de transition naturels dans l'interface de votre application, par exemple à la fin d'un niveau dans une application de jeu.

Intégrer des annonces interstitielles

Natif

Les annonces natives sont des annonces qui vous permettent de personnaliser la façon dont les composants tels que les titres et les incitations à l'action sont présentés dans vos applications. En appliquant vous-même un style à l'annonce, vous pouvez créer des présentations naturelles et discrètes qui enrichiront l'expérience utilisateur.

Intégrer des annonces natives

Accordé

Les blocs d'annonces avec récompense permettent aux utilisateurs de jouer à des jeux, de répondre à des enquêtes ou de regarder des vidéos pour gagner des récompenses dans l'application, telles que des pièces, des vies supplémentaires ou des points. Vous pouvez définir différentes récompenses en fonction des blocs d'annonces, et indiquer les valeurs et les éléments de récompense que l'utilisateur a reçus.

Intégrer des annonces avec récompense

Interstitiel avec récompense

L'interstitiel avec récompense est un nouveau type de format d'annonce incitative qui vous permet d'offrir des récompenses, telles que des pièces ou des vies supplémentaires, pour les annonces qui s'affichent automatiquement lors des transitions naturelles dans l'application.

Contrairement aux annonces avec récompense, les utilisateurs ne sont pas obligés d'activer l'affichage d'un interstitiel avec récompense.

Au lieu d'une invite d'activation dans les annonces avec récompense, les interstitiels avec récompense nécessitent un écran d'introduction qui annonce la récompense et permet aux utilisateurs de la désactiver s'ils le souhaitent.

Implémenter des annonces interstitielles avec récompense

Annonce à l'ouverture

Il s'agit d'un format d'annonce qui apparaît lorsque les utilisateurs ouvrent votre application ou y retournent. L'annonce se superpose à l'écran de chargement.

Implémenter des annonces à l'ouverture d'une application