Per pubblicare annunci e generare entrate, integra Google Mobile Ads SDK nella tua app per iOS. Per preparare il progetto, importa e inizializza Google Mobile Ads SDK prima di richiedere gli annunci.
Se includi Firebase nella tua app per iOS, consulta Inizia a utilizzare AdMob nel tuo progetto iOS.
Questa guida illustra l'importazione e l'inizializzazione di Google Mobile Ads SDK e la selezione di un formato dell'annuncio.
Prerequisiti
Prima di continuare, assicurati di avere quanto segue:
- Utilizza Xcode 16.0 o versioni successive.
- Scegli come target iOS 13.0 o versioni successive.
Importa Google Mobile Ads SDK
Per importare Google Mobile Ads SDK, completa una delle seguenti sezioni:
Swift Package Manager (consigliato)
Per aggiungere una dipendenza del pacchetto al tuo progetto, segui questi passaggi:
- Apri Xcode.
- Vai a File > Add Package Dependencies… (File > Aggiungi dipendenze pacchetto…).
Installa il pacchetto Swift Google Mobile Ads SDK.
Nel prompt visualizzato, cerca il repository GitHub del pacchetto Swift di Google Mobile Ads:
https://github.com/googleads/swift-package-manager-google-mobile-ads.gitSeleziona la versione del pacchetto Swift Google Mobile Ads SDK che vuoi utilizzare. Per i nuovi progetti, ti consigliamo di utilizzare Up to Next Major Version (Fino alla versione principale successiva).
CocoaPods
Per utilizzare CocoaPods, segui questi passaggi:
Apri il Podfile del progetto e aggiungi questa riga alla configurazione di compilazione
targetdella tua app:pod 'Google-Mobile-Ads-SDK'In un terminale, esegui questo comando:
pod install --repo-update
Configura la destinazione di deployment per Xcode 27
Xcode 27 richiede un target di deployment minimo di iOS 15.0 per tutti i target. Poiché Google Mobile Ads SDK supporta iOS 13.0, le build di Xcode 27 non vanno a buon fine quando si utilizza CocoaPods.
Per risolvere il problema, procedi nel seguente modo:
Apri il file
Podfiledel progetto e aggiungi un hookpost_installche imposta la destinazione di deployment su15.0. Se hai un bloccopost_install, aggiungi il loop interno al blocco esistente.L'esempio seguente imposta la chiave
IPHONEOS_DEPLOYMENT_TARGETsu15.0per tutti i target dei pod:post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' end end endPer reinstallare i pod, esegui questo comando:
pod install --repo-update
Download manuale
Per scaricare manualmente Google Mobile Ads SDK, segui questi passaggi:
- Scarica Google Mobile Ads SDK.
- Estrai il pacchetto
googlemobileadssdkios.zip. Nel tuo progetto Xcode, aggiungi i seguenti framework:
GoogleMobileAds.xcframeworkUserMessagingPlatform.xcframework
Nelle impostazioni Generali della destinazione, vai a Framework, librerie e contenuti incorporati.
Verifica di aver impostato
GoogleMobileAds.xcframeworkeUserMessagingPlatform.xcframeworksu Incorpora e firma.Nelle impostazioni di build del progetto, segui questi passaggi:
- Aggiungi il percorso
/usr/lib/swifta Runpath Search Paths. - Aggiungi il flag del linker
-ObjCad Other Linker Flags (Altri flag del linker).
- Aggiungi il percorso
Aggiorna il file Info.plist
Nel file Info.plist dell'app, aggiungi le seguenti chiavi:
Una chiave
GADApplicationIdentifiercon un valore stringa dell'ID della tua app monetizzata con AdMob. Per maggiori dettagli, consulta Trova e copia un ID app o un ID unità pubblicitaria .Una chiave
SKAdNetworkItems. Questa chiave include i valoriSKAdNetworkIdentifierper Googlecstr6suwn9.skadnetworke acquirenti di terze parti selezionati.
Esempio completo
<key>GADApplicationIdentifier</key>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~1458002511 -->
<string>SAMPLE_APP_ID</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>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>wg4vff78zm.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>mlmmfzh3r3.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>su67r6k2v3.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>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>44jx6755aq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>k674qkevps.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>kbmxgpxpgc.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>tl55sbb4fm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c3frkrj4fj.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>3rd42ekr43.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>97r2b46745.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qcr597p9d.skadnetwork</string>
</dict>
</array>Sostituisci SAMPLE_APP_ID con l'ID della tua app monetizzata con AdMob. Durante i test, utilizza l'ID app di esempio mostrato nell'esempio precedente.
Se non hai ancora creato un account AdMob e registrato un'app, questo è il momento giusto per farlo.
Inizializza Google Mobile Ads SDK
Prima di caricare gli annunci, inizializza Google Mobile Ads SDK chiamando il metodo start() dalla proprietà GADMobileAds.sharedInstance. Questo metodo chiama un gestore di completamento dopo che Google Mobile Ads SDK e gli adattatori di mediazione hanno terminato l'elaborazione o dopo 30 secondi.
L'esempio seguente inizializza Google Mobile Ads SDK:
Swift
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
SwiftUI
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
Objective-C
// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
Durante l'inizializzazione, Google Mobile Ads SDK potrebbe precaricare gli annunci o inizializzare SDK di terze parti quando viene chiamato il metodo startWithCompletionHandler:. Se devi ottenere il consenso degli utenti nello Spazio economico europeo (SEE), nel Regno Unito (UK) o in Svizzera, imposta i flag specifici per la richiesta. Se devi impostare flag specifici per la richiesta, assicurati di impostarli prima di inizializzare Google Mobile Ads SDK. Per maggiori dettagli, vedi Targeting.
Seleziona un formato dell'annuncio
Dopo aver importato Google Mobile Ads SDK, puoi selezionare un formato dell'annuncio da implementare.
AdMob offre i seguenti formati degli annunci:
| Formato dell'annuncio | Descrizione | Documentazione |
|---|---|---|
| Banner | Mostra annunci rettangolari in una sezione del layout dell'app. Questo annuncio si aggiorna automaticamente a intervalli prestabiliti. Gli utenti vedono questi annunci periodicamente quando rimangono sulla stessa schermata. | Configura gli annunci banner |
| Interstitial | Mostra annunci a schermo intero nell'app. Posiziona questo annuncio in un punto in cui nell'interfaccia dell'app si verifica una pausa naturale o una transizione, ad esempio dopo il completamento di un livello in un'app di gioco. | Annunci interstitial |
| Nativo | Ti consente di personalizzare gli asset, come i titoli e gli inviti all'azione, nelle tue app. Quando personalizzi l'annuncio, crei annunci che corrispondono al design visivo della tua app. | Carica un annuncio nativo |
| Con premio | Gli utenti guadagnano premi in-app, come monete o punti, giocando, rispondendo a sondaggi o guardando video. Puoi impostare premi per le unità pubblicitarie, specificare quelli che riceveranno gli utenti e il relativo valore. | Annunci con premio |
| Interstitial con premio | Ti consente di offrire premi, ad esempio monete o vite extra, per gli annunci che vengono visualizzati durante le transizioni dell'app. | Annunci interstitial con premio |
| Apertura app | Viene visualizzato quando gli utenti aprono la tua app o vi tornano. L'overlay annuncio si sovrappone alla schermata di caricamento. | Annunci apertura app |