L'integrazione dell'SDK Google Mobile Ads in un'app è il primo passo per poter mostrare 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 15.3 o versioni successive
- 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 al target 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 file Podfile.
Swift Package Manager
L'SDK Google Mobile Ads supporta Swift Package Manager a partire dalla versione 9.0.0. Segui questi passaggi per importare il pacchetto Swift:
In Xcode, installa il pacchetto Swift di Google Mobile Ads selezionando File > Aggiungi pacchetti.
Nella richiesta visualizzata, cerca il repository GitHub del pacchetto Swift di Google Mobile Ads:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
Seleziona la versione del pacchetto Swift di Google Mobile Ads che vuoi utilizzare. Per i nuovi progetti, ti consigliamo di utilizzare l'opzione Fino alla 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 del pacchetto, consulta l'articolo di Apple.
Download manuale
Scarica l'SDK Google Mobile Ads e
Embed & Sign
i seguenti framework nel tuo progetto Xcode:GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
Nelle impostazioni di compilazione del progetto:
- Aggiungi il percorso
/usr/lib/swift
a Percorsi di ricerca percorso di esecuzione. - Aggiungi il flag del linker
-ObjC
a Altri flag del linker.
- Aggiungi il percorso
Aggiorna il file Info.plist
Aggiorna il file Info.plist
dell'app per aggiungere due chiavi:
Una chiave
GADApplicationIdentifier
con un valore di stringaAd Manager app ID found in the Ad Manager UI and of the formca-app-pub-################~##########
.Una chiave
SKAdNetworkItems
con valoriSKAdNetworkIdentifier
per Google (cstr6suwn9.skadnetwork
) e per alcuni acquirenti di terze parti 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>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>3qy4746246.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>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>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>ppxm28t8ap.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>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>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>3qcr597p9d.skadnetwork</string> </dict> </array>
Per un rendimento ottimale dell'inizializzazione, è importante associare i gruppi di rendimento alle app specifiche in cui vengono utilizzati. Le configurazioni dei gruppi di rendimento che hanno come target iOS e non sono associate a un'app specifica verranno inviate a tutte le app iOS nel tuo account, prolungando potenzialmente il tempo necessario per l'inizializzazione.
In un'app reale, sostituisci l'ID app di esempio con il tuo Ad Manager ID app effettivo. Puoi utilizzare l'ID di esempio se stai solo sperimentando l'SDK in un'app Hello World.
Inizializza l'SDK Mobile Ads
Prima di caricare gli annunci, chiama il metodo startWithCompletionHandler:
su
GADMobileAds.sharedInstance
,
che inizializza l'SDK e richiama un gestore di completamento al termine
dell'inizializzazione (o dopo un timeout di 30 secondi). Questa operazione deve essere eseguita solo una volta, idealmente al momento del lancio dell'app. Ti consigliamo di chiamare startWithCompletionHandler:
il prima possibile.
Ecco un esempio di come chiamare il metodo startWithCompletionHandler:
nel
AppDelegate
:
AppDelegate di esempio (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
Ora che l'SDK Mobile Ads è stato importato e inizializzato, puoi implementare un annuncio. Ad Manager offre diversi formati di annunci, quindi puoi scegliere quello più adatto all'esperienza utente della tua app.
Gli sviluppatori SwiftUI possono consultare la nostra guida su SwiftUI.
Banner
Le unità pubblicitarie banner mostrano annunci rettangolari che occupano una porzione del layout dell'app. possono essere aggiornate automaticamente dopo un determinato periodo di tempo. Ciò significa che gli utenti visualizzano un nuovo annuncio a intervalli regolari, anche se rimangono sulla stessa schermata della tua app. Inoltre, questo è il formato dell'annuncio più facile da implementare.
Implementare gli annunci banner
Interstitial
Le unità pubblicitarie interstitial mostrano annunci a schermo intero nell'app. Posiziona gli annunci 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.
Implementare gli annunci interstitial
Nativo
Gli annunci nativi sono annunci in cui puoi personalizzare il modo in cui gli asset come titoli e pozivi all'azione vengono presentati nelle tue app. Personalizzando l'annuncio, puoi creare presentazioni naturali e non invadenti che possono contribuire a un'esperienza utente completa.
Google Ad Manager offre due modi per implementare gli annunci nativi: gli stili nativi e gli annunci nativi standard tramite il rendering personalizzato.
Gli stili nativi sono stati progettati per semplificare l'implementazione degli annunci nativi e rappresentano un'ottima scelta se non hai dimestichezza con questo formato. Il rendering personalizzato è stato progettato per massimizzare la libertà di creazione delle presentazioni.
Implementare gli stili nativi Implementare gli annunci nativi (rendering personalizzato)
Con premio
Le unità pubblicitarie con premio consentono agli utenti di giocare, partecipare a sondaggi o guardare video per vincere premi in-app come monete, vite extra o punti. Puoi impostare premi diversi per le varie unità pubblicitarie, specificare quelli che riceveranno gli utenti e il relativo valore.
Implementare gli annunci con premio
Interstitial con premio
L'interstitial con premio è un nuovo tipo di formato dell'annuncio con incentivi che consente di offrire premi, ad esempio monete o vite extra, per gli annunci che vengono visualizzati automaticamente durante le normali transizioni dell'app.
A differenza degli annunci con premio, gli utenti non devono attivare la visualizzazione degli annunci interstitial con premio.
Invece della richiesta di attivazione degli annunci con premio, quelli interstitial con premio prevedono una schermata introduttiva che annuncia il premio e offre agli utenti la possibilità di disattivare l'annuncio.
Implementare gli annunci interstitial con premio
Apertura app
Apertura app è un formato dell'annuncio visualizzato quando gli utenti aprono la tua app o vi tornano. L'annuncio si sovrappone alla schermata di caricamento.