Esta guía está destinada a publicadores que desean monetizar una app para iOS con AdMob y no usan Firebase. Si planeas incluir Firebase en tu app (o lo piensas), consulta la versión AdMob con Firebase de esta guía.
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 continuar con la implementación de uno o más de los formatos de anuncios admitidos.
Requisitos previos
- Usa Xcode 14.1 o una versión posterior
- Orientación a iOS 11.0 o versiones posteriores
- Recomendación: Crea una cuenta de AdMob y registra una app.
Importa el SDK de anuncios para dispositivos móviles
CocoaPods (preferido)
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, desde la línea de comandos, ejecuta lo siguiente:
pod install --repo-update
Si eres nuevo en 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 los pasos que se indican a continuación para importar el paquete de Swift.
En Xcode, instala Google Mobile Ads Swift Package. Para ello, navega a File > Add Packages....
En el mensaje que aparece, busca el repositorio de GitHub del paquete Swift de anuncios de Google para dispositivos móviles:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
Selecciona la versión del paquete Swift de anuncios de Google para dispositivos móviles que deseas utilizar. Para los proyectos nuevos, te 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 y descomprime el framework del SDK directamente y, luego, importa los siguientes frameworks a tu proyecto de Xcode:
GoogleAppMeasurement.xcframework
GoogleAppMeasurementIdentitySupport.xcframework
GoogleMobileAds.xcframework
GoogleUtilities.xcframework
nanopb.xcframework
PromisesObjC.xcframework
UserMessagingPlatform.xcframework
Agrega la marca del vinculador
-ObjC
a Otras marcas del vinculador en la configuración de compilación de tu proyecto:
Actualiza el archivo Info.plist
Actualiza el archivo Info.plist
de tu app para agregar dos claves:
Una clave
GADApplicationIdentifier
con un valor de string de tuAdMob app ID found in the AdMob UI.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>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>
Si aún no creas una cuenta de AdMob ni registras una app, este es un buen momento para hacerlo.
Inicializa el SDK de anuncios para dispositivos móviles
Antes de cargar anuncios, llama al método startWithCompletionHandler:
en 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.m (extracto)
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
Si usas la mediación, te recomendamos que esperes hasta que se llame al controlador de finalización antes de cargar anuncios, ya que esto garantizará que se inicialicen todos los adaptadores de mediación.
Seleccionar un formato del anuncio
El SDK de anuncios para dispositivos móviles ya se importó y se inicializó, y está todo listo para implementar un anuncio. AdMob ofrece una variedad de formatos de anuncios, de modo que puedes elegir el que mejor se adapte a la experiencia del usuario de tu app.
Banner
Son anuncios rectangulares que aparecen en la parte superior o inferior de la pantalla del dispositivo. Los anuncios en forma de banner permanecen en la pantalla mientras los usuarios interactúan con la app y se pueden actualizar automáticamente después de un período determinado. Si es la primera vez que utilizas la publicidad móvil, son un excelente punto de partida.
Intersticial
Anuncios de pantalla completa que cubren la interfaz de una app hasta que el usuario los cierra. Es mejor usarlos en pausas naturales en el flujo de ejecución de una app, como entre niveles de un juego o justo después de completar una tarea.
Cómo implementar un anuncio intersticial
Nativo
Anuncios personalizables que se adaptan al aspecto de tu app. Tú decides cómo y dónde colocarlos, de modo que el diseño sea más coherente con el de tu app.
Recompensado
Anuncios que recompensan a los usuarios por mirar videos cortos y por interactuar con encuestas y anuncios con juegos. Es una buena opción para monetizar usuarios de juegos gratuitos.
Implementa anuncios recompensados | Cómo implementar anuncios recompensados (APIs nuevas) |