Comenzar

Esta guía está destinada a los publicadores que desean monetizar una app para iOS con AdMob y no utilizan Firebase. Si planeas incluir Firebase en tu app (o lo estás considerando), 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 integres 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
  • Orientación 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, 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 estos pasos para importar el paquete de Swift:

  1. En Xcode, navega a File > Add Packages... para instalar el paquete de anuncios Swift de Google para dispositivos móviles.

  2. 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
    
  3. Selecciona la versión del paquete Swift de anuncios de Google para dispositivos móviles que quieres 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. Si quieres obtener más información para agregar dependencias de paquetes, consulta este artículo de Apple.

Descarga manual

  1. Descarga el SDK de anuncios de Google para dispositivos móviles y Embed & Sign los siguientes marcos de trabajo en tu proyecto de Xcode:

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. Agrega la marca del vinculador -ObjC a Otras marcas del vinculador en la configuración de compilación del proyecto:

Actualiza el archivo Info.plist

Actualiza el archivo Info.plist de tu app para agregar dos claves:

  1. Una clave GADApplicationIdentifier con un valor de cadena de tuAdMob app ID found in the AdMob UI

  2. Una clave SKAdNetworkItems con valores SKAdNetworkIdentifier 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 has creado una cuenta de AdMob ni has registrado una app, este es el momento ideal para hacerlo.

En una app real, reemplaza el ID de app de ejemplo por tu ID de appAdMob real. Puedes usar el ID de muestra si solo experimentas 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 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

Seleccionar un formato de anuncio

El SDK de Mobile Ads ya se importó y se inicializó, y ya puedes implementar un anuncio. AdMob ofrece una variedad de formatos de anuncios diferentes para que puedas elegir el que mejor se adapte a la experiencia del usuario de tu app.

Si eres desarrollador de SwiftUI, sigue nuestra guía de SwiftUI.

Los bloques de anuncios en forma de banner muestran anuncios rectangulares que ocupan una parte del diseño de la app. Pueden actualizarse automáticamente después de un período determinado. Esto significa que los usuarios ven un anuncio nuevo en intervalos regulares, incluso si permanecen en la misma pantalla en tu app. También son el formato de anuncio más sencillo de implementar.

Implementa anuncios en forma de banner

Intersticial

Las unidades de anuncios intersticiales muestran anuncios de página completa en tu app. Colócalos en pausas y transiciones naturales en la interfaz de la app, por ejemplo, después de completar un nivel en una app de juego.

Implementa anuncios intersticiales

Nativo

Los anuncios nativos son anuncios en los que puedes personalizar la forma en que se presentan en tus apps recursos, como los títulos y los llamados a la acción. Si aplicas un estilo al anuncio tú mismo, puedes crear presentaciones de anuncios naturales y discretas que pueden contribuir a una experiencia del usuario enriquecida.

Implementa anuncios nativos

Recompensado

Las unidades de anuncios recompensados permiten que los usuarios jueguen, realicen encuestas o miren videos para obtener recompensas en la app, como monedas, vidas adicionales o puntos. Puedes establecer diferentes recompensas para distintas unidades de anuncios y especificar los elementos y valores de la recompensa que recibió el usuario.

Implementa anuncios recompensados

Intersticial recompensado

Los anuncios intersticiales recompensados son un nuevo tipo de formato de anuncio incentivado que te permite ofrecer recompensas, como monedas o vidas adicionales, por los anuncios que aparecen automáticamente durante las transiciones naturales de la app.

A diferencia de los anuncios recompensados, los usuarios no necesitan aceptar ver un anuncio intersticial recompensado.

En lugar de la solicitud de aceptación en los anuncios recompensados, los anuncios intersticiales recompensados requieren una pantalla de presentación en la que se anuncie la recompensa y se les dé a los usuarios la oportunidad de inhabilitarla si quieren hacerlo.

Implementa anuncios intersticiales recompensados

Aplicación abierta

El anuncio de aplicación abierta es un formato de anuncio que aparece cuando los usuarios abren la app o regresan a ella. El anuncio se superpone a la pantalla de carga.

Implementa anuncios de aplicación abierta