Inizia

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 stai prendendo in considerazione di farlo), 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 con l'implementazione di uno o più formati di annunci supportati.

Prerequisiti

  • Usa Xcode 15.3 o versioni successive
  • Scegli come target iOS 12.0 o versioni successive

Importa l'SDK Mobile Ads

Utilizza uno dei seguenti metodi per importare l'SDK Google Mobile Ads.

CocoaPods (opzione preferita)

Il modo più semplice per importare l'SDK in un progetto iOS è utilizzare CocoaPods. Apri il podfile del 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 mai utilizzato CocoaPods, consulta la documentazione ufficiale per informazioni su come creare e utilizzare i podfile.

Gestore 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 Swift Google Mobile Ads selezionando File > Add Packages... (File > Aggiungi pacchetti...).

  2. Nella richiesta visualizzata, cerca il repository GitHub del pacchetto Swift Google Mobile Ads:

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

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

Download manuale

  1. Scarica l'SDK Google Mobile Ads e Embed & Sign i seguenti framework nel progetto Xcode:

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. Aggiungi il flag linker -ObjC ad Altri flag linker nelle impostazioni di build del progetto:

Aggiorna il file Info.plist

Aggiorna il file Info.plist dell'app per aggiungere due chiavi:

  1. Una chiave GADApplicationIdentifier con un valore stringa diAdMob app ID found in the AdMob UI.

  2. Una chiave SKAdNetworkItems con valori SKAdNetworkIdentifier per Google (cstr6suwn9.skadnetwork) e acquirenti di terze parti selezionati che hanno fornito questi valori a Google.

Snippet completo

<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>

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

In un'app reale, sostituisci l'ID app di esempio con il tuo ID AdMob app effettivo. Puoi utilizzare l'ID di esempio se stai solo sperimentando l'SDK in un'app Hello World.

Inizializzare l'SDK Mobile Ads

Prima di caricare gli annunci, chiama il metodo startWithCompletionHandler: su GADMobileAds.sharedInstance, che inizializza l'SDK e richiama un gestore del 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 AppDelegato (estratto)

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

Seleziona un formato dell'annuncio

A questo punto, l'SDK Mobile Ads è stato importato e inizializzato e puoi implementare un annuncio. AdMob Offre una serie di formati di annunci diversi, puoi scegliere quello più adatto all'esperienza utente della tua app.

Per gli sviluppatori SwiftUI, segui la nostra guida SwiftUI.

Le unità pubblicitarie banner mostrano annunci rettangolari che occupano una parte del layout dell'app. Possono aggiornarsi automaticamente dopo un determinato periodo di tempo. Ciò significa che gli utenti visualizzano un nuovo annuncio a intervalli regolari, anche se rimangono nella stessa schermata dell'app. Sono inoltre il formato dell'annuncio più semplice da implementare.

Implementare gli annunci banner

Interstitial

Le unità pubblicitarie interstitial mostrano annunci a pagina intera nella tua app. Posizionali in corrispondenza di interruzioni e transizioni naturali nell'interfaccia dell'app, ad esempio al completamento di un livello in un'app di gioco.

Implementare gli annunci interstitial

Nativo

Gli annunci nativi sono annunci in cui puoi personalizzare il modo in cui asset quali titoli e inviti all'azione vengono presentati nelle tue app. Scegliendo personalmente l'annuncio, puoi creare presentazioni naturali e non invadenti che possono arricchire l'esperienza utente.

Implementare gli annunci nativi

Con premio

Le unità pubblicitarie con premio consentono agli utenti di giocare, partecipare a sondaggi o guardare video per guadagnare premi in-app come monete, vite extra o punti. Puoi impostare premi diversi per unità pubblicitarie diverse e specificare i valori e gli elementi del premio ricevuti dall'utente.

Implementare gli annunci con premio

Interstitial con premio

Gli interstitial con premio sono un nuovo tipo di formato dell'annuncio con incentivi che ti consente di offrire premi, come monete o vite extra, per gli annunci che vengono visualizzati automaticamente durante le naturali transizioni delle app.

A differenza degli annunci con premio, gli utenti non devono attivare la visualizzazione di un annuncio interstitial con premio.

Al posto della richiesta di attivazione negli annunci con premio, gli interstitial con premio richiedono una schermata introduttiva che annuncia il premio e offre agli utenti la possibilità di disattivarla.

Implementare gli annunci interstitial con premio

Apertura app

Apertura app è un formato dell'annuncio che viene visualizzato quando gli utenti aprono l'app o vi ritornano. L'annuncio si sovrappone alla schermata di caricamento.

Implementare gli annunci apertura app