Empezar

Esta guía está dirigida a los editores que quieren monetizar una aplicación iOS con AdMob y no utilizan Firebase. Si tienes previsto incluir Firebase en tu aplicación (o te lo estás pensando), consulta la sección AdMob con Firebase de esta guía.

Integrar el SDK de anuncios de Google para móviles en una aplicación es lo primero que debes hacer para mostrar anuncios y obtener ingresos. Después, puedes implementar uno o varios formatos de anuncios admitidos.

Requisitos previos

  • Usar Xcode 13.2.1 o una versión posterior.
  • Orientar los anuncios a iOS 10.0 o a una versión posterior.

Importar el SDK de anuncios para móviles

CocoaPods (opción preferida)

La forma más sencilla de importar el SDK en un proyecto de iOS es mediante CocoaPods. Abre el Podfile de tu proyecto y añade esta línea en el destino de tu aplicación:

pod 'Google-Mobile-Ads-SDK'

A continuación, en la línea de comandos, ejecuta lo siguiente:

pod install --repo-update

Si es la primera vez que utilizas CocoaPods, consulta la documentación oficial para obtener información sobre cómo crear y usar Podfiles.

Swift Package Manager

A partir de la versión 9.0.0, el SDK de anuncios de Google para móviles es compatible con Swift Package Manager. Sigue los pasos indicados a continuación para importar un paquete de Swift.

  1. En Xcode, instala el paquete de Swift de anuncios de Google para móviles en File > Add Packages… (Archivo > Añadir paquetes…).

  2. En el mensaje que aparecerá, busca el repositorio de GitHub del paquete de Swift de anuncios de Google para móviles:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. Selecciona la versión del paquete de Swift de anuncios de Google para móviles que quieres usar. En el caso de los proyectos nuevos, recomendamos utilizar la opción Up to Next Major Version (Hasta la siguiente versión principal).

Cuando hayas terminado, Xcode empezará a resolver las dependencias de tu paquete y las descargará en segundo plano. Para obtener más información sobre cómo añadir dependencias de paquetes, consulta este artículo de Apple.

Descarga manual

  1. Descarga y descomprime directamente el framework del SDK. Después, importa los siguientes frameworks en tu proyecto de Xcode:

    • GoogleAppMeasurement.xcframework
    • GoogleAppMeasurementIdentitySupport.xcframework
    • GoogleMobileAds.xcframework
    • GoogleUtilities.xcframework
    • nanopb.xcframework
    • PromisesObjC.xcframework
    • UserMessagingPlatform.xcframework
  2. Añade la marca de vinculación -ObjC a Other Linker Flags (Otras marcas de vinculación) en la configuración de compilación de tu proyecto:

Actualizar el archivo Info.plist

Actualiza el archivo Info.plist de tu aplicación para añadir dos claves:

  1. Una clave GADApplicationIdentifier con un valor de cadena de tu ID de aplicación de AdMob (identificado en la UI de AdMob).
  2. Una clave SKAdNetworkItems con valores SKAdNetworkIdentifier de Google (cstr6suwn9.skadnetwork). Selecciona otros compradores que hayan proporcionado estos valores a Google.
<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>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>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>3sh42y64q3.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>prcb7njmu6.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>9rd848q2bz.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>n6fk4nfna4.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>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>av6w8kgt66.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>424m5254lk.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>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>3qcr597p9d.skadnetwork</string>
    </dict>
  </array>

Si todavía no has creado una cuenta de AdMob ni has registrado una aplicación, ahora es un buen momento para hacerlo.

Inicializar el SDK de anuncios para móviles

Antes de cargar anuncios, llama al método startWithCompletionHandler: en GADMobileAds.sharedInstance. Esta acción inicializa el SDK y, una vez terminado ese proceso (o tras un tiempo de espera de 30 segundos), se hace una retrollamada a un controlador de finalización. Solo es necesario hacerlo una vez, preferiblemente al iniciar la aplicación. Eso sí, debes llamar a startWithCompletionHandler: lo antes posible.

A continuación, tienes un ejemplo de cómo llamar al método startWithCompletionHandler: en AppDelegate:

Ejemplo de AppDelegate.m (fragmento)

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, espera a que se llame al controlador de finalización antes de cargar anuncios. De este modo, te asegurarás de que todos los adaptadores de mediación se hayan inicializado.

Seleccionar un formato de anuncio

Se ha importado e inicializado el SDK de anuncios para móviles y ya puedes implementar un anuncio. AdMob ofrece varios formatos de anuncio para que puedas elegir el que mejor se ajuste a la experiencia de usuario de tu aplicación.

Son anuncios rectangulares que aparecen en la parte superior o inferior de la pantalla del dispositivo. Los anuncios de banner permanecen en la pantalla mientras los usuarios interactúan con la aplicación y pueden actualizarse automáticamente después de un tiempo determinado. Si es la primera vez que utilizas la publicidad para móviles, estos anuncios son un excelente punto de partida.

Implementar un banner

Intersticial

Son anuncios a pantalla completa que cubren la interfaz de una aplicación hasta que el usuario los cierra. El mejor momento para usarlos son las pausas naturales de una aplicación. Por ejemplo, al pasar de un nivel a otro en un juego o después de completar una tarea.

Implementar un intersticial

Nativo

Son anuncios personalizables que se ajustan a la apariencia de tu aplicación. Puedes decidir cómo y dónde colocarlos para que no desentonen con el diseño.

Implementar Native Ads

Bonificado

Son anuncios que ofrecen recompensas a los usuarios por ver vídeos breves e interactuar con encuestas y anuncios con juegos. Son útiles para obtener ingresos con los usuarios de juegos gratuitos.

Implementar anuncios bonificadosImplementar anuncios bonificados (APIs nuevas)