Per iniziare

Questa guida è rivolta ai publisher che vogliono monetizzare un'app per iOS con AdMob e non utilizzano Firebase. Se prevedi di includere Firebase nella tua app (o hai preso in considerazione), consulta la versione AdMob con Firebase di questa guida.

L'integrazione dell'SDK Google Mobile Ads in un'app è il primo passo per visualizzare annunci e generare entrate. Dopo aver integrato l'SDK, puoi procedere all'implementazione di uno o più formati di annunci supportati.

Prerequisiti

  • Usa Xcode 13.2.1 o versioni successive
  • Scegli come target iOS 10.0 o versioni successive

Importa l'SDK Mobile Ads

CocoaPods (preferito)

Il modo più semplice per importare l'SDK in un progetto iOS è utilizzare CocoaPods. Apri il Podfile del tuo progetto e aggiungi questa riga al target dell'app:

pod 'Google-Mobile-Ads-SDK'

Quindi, dall'esecuzione della riga di comando:

pod install --repo-update

Se non hai mai utilizzato CocoaPods, consulta la documentazione ufficiale per informazioni su come creare e utilizzare podfile.

Gestore pacchetti Swift

L'SDK Google Mobile Ads supporta Swift Package Manager a partire dalla versione 9.0.0. Segui la procedura riportata di seguito per importare il pacchetto Swift.

  1. In Xcode, installa il pacchetto Swift di Google Mobile Ads selezionando File > Add Packages... (File e aggiunta pacchetti).

  2. Nel prompt che viene visualizzato, cerca il repository GitHub di Google Mobile Ads Swift:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. Seleziona la versione del pacchetto Swift di Google Mobile Ads che vuoi utilizzare. Per i nuovi progetti, consigliamo di utilizzare la versione principale successiva.

Al termine, Xcode inizierà a risolvere le dipendenze del pacchetto e a scaricarle in background. Per maggiori dettagli su come aggiungere le dipendenze dei pacchetti, consulta l'articolo di Apple.

Download manuale

  1. Scarica e decomprimi direttamente il framework SDK e importa i seguenti framework nel progetto Xcode:

    • GoogleAppMeasurement.xcframework
    • GoogleAppMeasurementIdentitySupport.xcframework
    • GoogleMobileAds.xcframework
    • GoogleUtilities.xcframework
    • nanopb.xcframework
    • PromisesObjC.xcframework
    • UserMessagingPlatform.xcframework
  2. Aggiungi il flag del link -ObjC a Altri flag del linker nelle impostazioni di build del progetto:

Aggiorna il file Info.plist

Aggiorna il file Info.plist della tua app per aggiungere due chiavi:

  1. Una chiave GADApplicationIdentifier con un valore stringa dell'AdMob ID app (identificato nellaAdMob UI).
  2. Una chiave SKAdNetworkItems con valori SKAdNetworkIdentifier per Google (cstr6suwn9.skadnetwork) e seleziona altri acquirenti che hanno fornito questi valori a Google.
<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>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>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>3sh42y64q3.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>prcb7njmu6.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>9rd848q2bz.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>n6fk4nfna4.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>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>av6w8kgt66.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>424m5254lk.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>uw77j35x4d.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>3qcr597p9d.skadnetwork</string>
    </dict>
  </array>

Se non hai ancora creato un account AdMob e registrato un'app, questo è un ottimo momento per farlo.

Inizializzare l'SDK Mobile Ads

Prima di caricare gli annunci, richiama il metodo startWithCompletionHandler: sul metodo GADMobileAds.sharedInstance, che inizializza l'SDK e richiama un gestore di completamento una volta completata l'inizializzazione (o dopo un timeout di 30 secondi). Questa operazione deve essere eseguita una sola volta, idealmente al momento del lancio dell'app. Devi chiamare startWithCompletionHandler: il prima possibile.

Ecco un esempio di come chiamare il metodo startWithCompletionHandler: in AppDelegate:

Esempio di AppDelegate.m (estratto)

Swift

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

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

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

    return true
  }

}

Objective-C

@import GoogleMobileAds;

@implementation AppDelegate

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

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

@end

Se utilizzi la mediazione, ti consigliamo di attendere fino a quando non verrà chiamato il gestore di completamento prima di caricare gli annunci, in modo da garantire che tutti gli adattatori di mediazione siano inizializzati.

Seleziona un formato dell'annuncio

L'SDK Google Mobile Ads è ora importato e inizializzato. Ora puoi implementare un annuncio. AdMob offre una serie di formati di annunci diversi, così puoi scegliere quello più adatto all'esperienza utente della tua app.

Annunci rettangolari che vengono visualizzati nella parte superiore o inferiore dello schermo del dispositivo. Gli annunci banner rimangono sullo schermo mentre gli utenti interagiscono con l'app e possono aggiornarsi automaticamente dopo un determinato periodo di tempo. Se non hai mai utilizzato la pubblicità per il mobile, questa è un ottimo punto di partenza.

Implementare un banner

Interstitial

Annunci a schermo intero che coprono l'interfaccia di un'app fino alla chiusura da parte dell'utente. Vengono usati al meglio nelle pause naturali del flusso dell'esecuzione di un'app, ad esempio tra i livelli di un gioco o subito dopo il completamento di un'attività.

Implementare un annuncio interstitial

Nativo

Annunci personalizzabili che si adattano all'aspetto e al design della tua app. Puoi decidere come e dove vengono posizionati, in modo che il layout sia più coerente con il design della tua app.

Implementa Native Ads

Con premio

Annunci che premiano gli utenti per la visione di brevi video e l'interazione con annunci demo e sondaggi. Ideale per monetizzare gli utenti free-to-play.

Implementa gli annunci con premio Implementare gli annunci con premio (nuove API)