Per iniziare

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

Integrare l'SDK Google Mobile Ads in un'app è il primo passo per pubblicare annunci e generare entrate. Una volta integrato l'SDK, puoi procedere con l'implementazione di uno o più formati degli annunci supportati.

Prerequisiti

  • Utilizza Xcode 13.2.1 o versioni successive
  • Scegliere come target iOS 10.0 o versioni successive

Importa l'SDK Google 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 alla destinazione dell'app:

pod 'Google-Mobile-Ads-SDK'

Quindi, dalla riga di comando esegui:

pod install --repo-update

Se non hai esperienza con CocoaPods, consulta la documentazione ufficiale per informazioni su come creare e utilizzare i Podfile.

Gestione pacchetti Swift

L'SDK Google Mobile Ads supporta Swift Package Manager a partire dalla versione 9.0.0. Segui questi passaggi per importare il pacchetto Swift.

  1. In Xcode, installa il pacchetto Google Mobile Ads Swift andando su File > Add Packages... (File > Aggiungi pacchetti...).

  2. Nella richiesta visualizzata, cerca il repository GitHub di Google Mobile Ads Package:

    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 usare fino alla versione principale successiva.

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

Download manuale

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

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

Aggiorna il tuo file Info.plist

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

  1. Una chiave GADApplicationIdentifier con un valore stringa del tuo AdMob ID app (identificato nella AdMob 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>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>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>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>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>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>ecpz2srf59.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>uw77j35x4d.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>gta9lk7p23.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>

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

Inizializza l'SDK Google Mobile Ads

Prima di caricare gli annunci, chiama il metodo startWithCompletionHandler: in 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. Ti consigliamo di chiamare startWithCompletionHandler: il prima possibile.

Ecco un esempio di come richiamare 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 viene chiamato il gestore di completamento prima di caricare gli annunci, per assicurarti che tutti gli adattatori di mediazione siano inizializzati.

Seleziona un formato dell'annuncio

L'SDK Google Mobile Ads ora è importato e inizializzato. Puoi procedere con l'implementazione di un annuncio. AdMob Offre vari formati di annunci diversi, in modo che tu possa scegliere quello più adatto all'esperienza utente della tua app.

Annunci rettangolari 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 essere aggiornati automaticamente dopo un determinato periodo di tempo. Se non hai mai utilizzato la pubblicità per il mobile, sono un ottimo punto di partenza.

Implementare un banner

Interstitial

Annunci a schermo intero che coprono l'interfaccia di un'app fino alla chiusura dall'utente. Vengono usati al meglio nelle pause naturali del flusso di 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 rispecchiano l'aspetto e l'aspetto della tua app. Decidi come e dove devono essere posizionati, in modo che il layout sia più in linea 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 e sondaggi demo. Ideale per monetizzare gli utenti free-to-play.

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