El primer paso para mostrar anuncios y obtener ingresos es integrar el SDK de anuncios de Google para dispositivos móviles en una app. Una vez que hayas integrado el SDK, puedes implementar uno o más de los formatos de anuncios compatibles.
Requisitos previos
- Usa Xcode 15.3 o una versión posterior.
- Orienta a iOS 12.0 o versiones posteriores
Importa el SDK de anuncios para dispositivos móviles
Usa uno de los siguientes métodos para importar el SDK de anuncios de Google para dispositivos móviles.
CocoaPods (opción preferida)
La forma más sencilla de importar el SDK a un proyecto de iOS es usar CocoaPods. Abre el Podfile de tu proyecto y agrega esta línea al destino de tu app:
pod 'Google-Mobile-Ads-SDK'
Luego, ejecuta desde la línea de comandos:
pod install --repo-update
Si es la primera vez que usas CocoaPods, consulta su documentación oficial para obtener información sobre cómo crear y usar Podfiles.
Swift Package Manager
El SDK de anuncios de Google para dispositivos móviles es compatible con Swift Package Manager a partir de la versión 9.0.0. Sigue estos pasos para importar el paquete de Swift:
En Xcode, instala el paquete de Google Mobile Ads para Swift. Para ello, navega a File > Add Packages….
En el mensaje que aparece, busca el repositorio de GitHub del paquete de Google Mobile Ads para Swift:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
Selecciona la versión del paquete de Swift de Google Mobile Ads que deseas usar. Para proyectos nuevos, recomendamos usar Hasta la siguiente versión principal.
Cuando termines, Xcode comenzará a resolver las dependencias de tus paquetes y las descargará en segundo plano. Para obtener más detalles sobre cómo agregar dependencias de paquetes, consulta el artículo de Apple.
Descarga manual
Descarga el SDK de anuncios de Google para dispositivos móviles y
Embed & Sign
los siguientes frameworks en tu proyecto de Xcode:GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
En la configuración de compilación de tu proyecto, haz lo siguiente:
- Agrega la ruta de acceso
/usr/lib/swift
a Runpath Search Paths. - Agrega la marca del vinculador
-ObjC
a Otras marcas del vinculador.
- Agrega la ruta de acceso
Actualiza el archivo Info.plist
Actualiza el archivo Info.plist
de tu app para agregar dos claves:
Una clave
GADApplicationIdentifier
con un valor de cadena de tu Ad Manager app ID found in the Ad Manager UI and of the formca-app-pub-################~##########
.Una clave
SKAdNetworkItems
con valoresSKAdNetworkIdentifier
para Google (cstr6suwn9.skadnetwork
) y compradores externos seleccionados que proporcionaron estos valores a Google
Fragmento 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>
Para obtener un rendimiento óptimo de la inicialización, es importante asociar los grupos de rendimiento con las apps específicas en las que se usan. Las configuraciones del grupo de rendimiento orientadas a iOS y no asociadas a ninguna aplicación específica se enviarán a todas las aplicaciones para iOS de su cuenta, lo que podría prolongar el tiempo necesario para la inicialización.
En una app real, reemplaza el ID de app de ejemplo por tu ID de appAd Manager real. Puedes usar el ID de muestra si solo estás experimentando con el SDK en una app de Hello World.
Inicializa el SDK de Mobile Ads
Antes de cargar anuncios, llama al método startWithCompletionHandler:
en la GADMobileAds.sharedInstance
, que inicializa el SDK y llama a un controlador de finalización una vez que se completa la inicialización (o después de un tiempo de espera de 30 segundos). Esto solo se debe hacer una vez, idealmente cuando se inicia la app. Debes llamar a startWithCompletionHandler:
lo antes posible.
Este es un ejemplo de cómo llamar al método startWithCompletionHandler:
en tu AppDelegate
:
Ejemplo de AppDelegate (extracto)
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
Selecciona un formato del anuncio
El SDK de anuncios para dispositivos móviles ya se importó e inicializó, y puedes implementar un anuncio. Ad Manager ofrece varios formatos de anuncios diferentes para que puedas elegir el que mejor se adapte a la experiencia del usuario de tu app.
Los desarrolladores de SwiftUI deben seguir nuestra guía de SwiftUI.
Banner
Las unidades de anuncios en forma de banner muestran anuncios rectangulares que ocupan una parte del diseño de la app. Se pueden actualizar automáticamente después de un período determinado. Esto significa que los usuarios ven un anuncio nuevo a intervalos regulares, incluso si permanecen en la misma pantalla de tu app. También son el formato de anuncio más fácil de implementar.
Implementa anuncios en forma de banner
Intersticial
Las unidades de anuncios intersticiales muestran anuncios de página completa en tu app. Colócalas en pausas y transiciones naturales en la interfaz de tu app, como después de completar un nivel en una app de juegos.
Implementa anuncios intersticiales
Nativo
Los anuncios nativos son anuncios en los que puedes personalizar la forma en que se presentan los recursos, como los encabezados y las llamadas a la acción, en tus apps. Si aplicas diseño al anuncio por tu cuenta, puedes crear presentaciones de anuncios naturales y discretas que pueden contribuir a una experiencia del usuario enriquecida.
Google Ad Manager ofrece dos formas de implementar anuncios nativos: estilos nativos y anuncios nativos estándar a través de la renderización personalizada.
Los estilos nativos se diseñaron para simplificar la implementación de los anuncios nativos y son una excelente opción si no estás familiarizado con el formato. La renderización personalizada se diseñó para maximizar la libertad que tienes para crear tus presentaciones.
Implementa estilos nativos Implementa anuncios nativos (renderización personalizada)
Recompensado
Las unidades de anuncios recompensados permiten que los usuarios jueguen, respondan encuestas o miren videos para obtener recompensas en la app, como monedas, vidas extra o puntos. Puedes establecer recompensas distintas para cada unidad de anuncios y especificar los valores y los elementos de las recompensas que recibió el usuario.
Implementa anuncios recompensados
Anuncio intersticial recompensado
El anuncio intersticial recompensado es un nuevo tipo de formato de anuncio incentivado que te permite ofrecer recompensas, como monedas o vidas adicionales, para los anuncios que aparecen automáticamente durante las transiciones naturales de la aplicación.
A diferencia de los anuncios recompensados, los usuarios no deben aceptar ver un anuncio intersticial recompensado.
En lugar de la solicitud de aceptación de los anuncios recompensados, los anuncios intersticiales recompensados requieren una pantalla de presentación que anuncie la recompensa y les dé a los usuarios la oportunidad de rechazarla si así lo desean.
Implementa anuncios intersticiales recompensados
Aplicación abierta
La aplicación abierta es un formato de anuncio que aparece cuando los usuarios abren tu aplicación o vuelven a ella. El anuncio se superpone a la pantalla de carga.