Comenzar

Selecciona la plataforma: Android iOS Unity Flutter

El SDK de Google User Messaging Platform (UMP) es una herramienta de privacidad y mensajería que te ayuda a administrar las opciones de privacidad. Para obtener más información, consulta Acerca de Privacidad y mensajería.

Crea un tipo de mensaje

Crea mensajes para los usuarios con uno de los tipos de mensajes para los usuarios disponibles en la pestaña Privacidad y mensajería de tu cuenta de AdMob. El SDK de UMP intenta mostrar un mensaje de privacidad creado a partir del ID de aplicación de AdMob establecido en tu proyecto.

Para obtener más detalles, consulta Acerca de la privacidad y la mensajería.

Importa el SDK

CocoaPods (opción preferida)

La forma más sencilla de importar el SDK en un proyecto para iOS es usar CocoaPods. Abre el Podfile de tu proyecto y agrega esta línea al destino de tu app:

pod 'GoogleUserMessagingPlatform'

Luego, ejecuta el comando siguiente:

pod install --repo-update

Si no conoces CocoaPods, consulta Cómo usar CocoaPods para obtener detalles sobre cómo crear y usar Podfiles.

Swift Package Manager

El SDK de UMP también admite Swift Package Manager. Sigue estos pasos para importar el paquete de Swift.

  1. En Xcode, instala el paquete Swift del SDK de UMP. Para ello, navega a File > Add Packages….

  2. En el mensaje que aparece, busca el repositorio de GitHub del paquete Swift del SDK de UMP:

    https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
    
  3. Selecciona la versión del paquete Swift del SDK de UMP que deseas usar. Para los proyectos nuevos, recomendamos usar la opción Up to Next Major Version.

Luego, Xcode resuelve las dependencias de tu paquete y las descarga en segundo plano. Para obtener más detalles sobre cómo agregar dependencias de paquetes, consulta el artículo de Apple.

Descarga manual

La otra forma de importar el SDK es hacerlo de forma manual.

Descarga el SDK

Luego, arrastra el framework a tu proyecto de Xcode y asegúrate de seleccionar Copy items if needed.

Luego, puedes incluir el framework en cualquier archivo que necesites con el siguiente código:

Swift

import UserMessagingPlatform

Objective-C

#include <UserMessagingPlatform/UserMessagingPlatform.h>

Agrega el ID de aplicación

Puedes encontrar el ID de tu aplicación en la IU de AdMob. Agrega el ID a tu Info.plist con el siguiente fragmento de código:

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>

Debes solicitar una actualización de la información de consentimiento del usuario en cada inicio de la app con requestConsentInfoUpdate(with:completionHandler:). Esta solicitud verifica lo siguiente:

  • Indica si se requiere consentimiento. Por ejemplo, se requiere el consentimiento por primera vez o venció la decisión de consentimiento anterior.
  • Indica si se requiere un punto de entrada de opciones de privacidad. Algunos mensajes de privacidad requieren que las apps permitan a los usuarios modificar sus opciones de privacidad en cualquier momento.

Swift


// Requesting an update to consent information should be called on every app launch.
ConsentInformation.shared.requestConsentInfoUpdate(with: parameters) {
  requestConsentError in
  // ...
}

SwiftUI


// Requesting an update to consent information should be called on every app launch.
ConsentInformation.shared.requestConsentInfoUpdate(with: parameters) {
  requestConsentError in
  // ...
}

Objective-C


// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable requestConsentError) {
                           // ...
                         }];

Carga y presenta el formulario de mensaje de privacidad

Después de recibir el estado de consentimiento más actualizado, llama a loadAndPresentIfRequired(from:) para cargar los formularios necesarios para recopilar el consentimiento del usuario. Después de la carga, los formularios se muestran de inmediato.

Swift


try await ConsentForm.loadAndPresentIfRequired(from: viewController)

SwiftUI


try await ConsentForm.loadAndPresentIfRequired(from: nil)

Objective-C


[UMPConsentForm
    loadAndPresentIfRequiredFromViewController:viewController
                             completionHandler:^(NSError *_Nullable loadAndPresentError) {
                                 // Consent gathering process is complete.
                                }];

Opciones de privacidad

Algunos formularios de mensajes de privacidad se presentan desde un punto de entrada de opciones de privacidad renderizado por el publicador, lo que permite a los usuarios administrar sus opciones de privacidad en cualquier momento. Para obtener más información sobre qué mensaje ven los usuarios en el punto de entrada de las opciones de privacidad, consulta Tipos de mensajes disponibles para los usuarios.

Verifica si se requiere un punto de entrada de opciones de privacidad

Después de llamar a requestConsentInfoUpdate(with:completionHandler:), verifica UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus para determinar si se requiere un punto de entrada de opciones de privacidad para tu app. Si se requiere un punto de entrada, agrega un elemento de la IU visible y con el que se pueda interactuar a tu app que presente el formulario de opciones de privacidad. Si no se requiere un punto de entrada de privacidad, configura el elemento de IU para que no sea visible ni interactivo.

Swift


var isPrivacyOptionsRequired: Bool {
  return ConsentInformation.shared.privacyOptionsRequirementStatus == .required
}

Objective-C


- (BOOL)isPrivacyOptionsRequired {
  return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
         UMPPrivacyOptionsRequirementStatusRequired;
}

Para obtener la lista completa de los estados de requisitos de las opciones de privacidad, consulta UMPPrivacyOptionsRequirementStatus.

Presenta el formulario de opciones de privacidad

Cuando el usuario interactúe con tu elemento, presenta el formulario de opciones de privacidad:

Swift


try await ConsentForm.presentPrivacyOptionsForm(from: viewController)

SwiftUI


try await ConsentForm.presentPrivacyOptionsForm(from: nil)

Objective-C


[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                          completionHandler:completionHandler];

Solicita anuncios con el consentimiento del usuario

Antes de solicitar anuncios, usa UMPConsentInformation.sharedInstance.canRequestAds para verificar si obtuviste el consentimiento del usuario:

Swift

ConsentInformation.shared.canRequestAds

Objective-C

UMPConsentInformation.sharedInstance.canRequestAds;

A continuación, se indican los lugares que debes consultar para saber si puedes solicitar anuncios mientras recopilas el consentimiento:

  • Después de que el SDK de UMP recopila el consentimiento en la sesión actual.
  • Inmediatamente después de que hayas llamado a requestConsentInfoUpdate(with:completionHandler:). Es posible que el SDK de UMP haya obtenido el consentimiento en la sesión anterior de la app.

Si se produce un error durante el proceso de recopilación del consentimiento, verifica si puedes solicitar anuncios. El SDK de UMP usa el estado de consentimiento de la sesión anterior de la app.

Evita el trabajo redundante de las solicitudes de anuncios

Cuando verifiques UMPConsentInformation.sharedInstance.canRequestAds después de obtener el consentimiento y después de llamar a requestConsentInfoUpdate(with:completionHandler:), asegúrate de que tu lógica evite solicitudes de anuncios redundantes que podrían hacer que ambas verificaciones devuelvan true. Por ejemplo, con una variable booleana.

Prueba

Si quieres probar la integración en tu app mientras la desarrollas, sigue estos pasos para registrar tu dispositivo de prueba de forma programática. Asegúrate de quitar el código que establece estos IDs de dispositivos de prueba antes de lanzar tu app.

  1. Llamar a requestConsentInfoUpdate(with:completionHandler:)
  2. Verifica el resultado del registro para ver un mensaje similar al siguiente ejemplo, que muestra el ID de tu dispositivo y cómo agregarlo como dispositivo de prueba:

    <UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
    
  3. Copia el ID de tu dispositivo de prueba en el portapapeles.

  4. Modifica tu código para llamar a UMPDebugSettings().testDeviceIdentifiers y pasar una lista de los IDs de tus dispositivos de prueba.

    Swift

    let parameters = RequestParameters()
    let debugSettings = DebugSettings()
    
    debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
    parameters.debugSettings = debugSettings
    
    // Include the UMPRequestParameters in your consent request.
    ConsentInformation.shared.requestConsentInfoUpdate(
        with: parameters,
        completionHandler: { error in
          // ...
        })
    

    Objective-C

    UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
    UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
    
    debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
    parameters.debugSettings = debugSettings;
    
    // Include the UMPRequestParameters in your consent request.
    [UMPConsentInformation.sharedInstance
        requestConsentInfoUpdateWithParameters:parameters
                            completionHandler:^(NSError *_Nullable error){
                              // ...
    }];
    

Forzar una ubicación geográfica

El SDK de UMP proporciona una forma de probar el comportamiento de tu app como si el dispositivo estuviera ubicado en varias regiones, como el EEE o el Reino Unido, con geography. Ten en cuenta que la configuración de depuración solo funciona en dispositivos de prueba.

Swift

let parameters = RequestParameters()
let debugSettings = DebugSettings()

debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = .EEA
parameters.debugSettings = debugSettings

// Include the UMPRequestParameters in your consent request.
ConsentInformation.shared.requestConsentInfoUpdate(
    with: parameters,
    completionHandler: { error in
      // ...
    })

Objective-C

UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];

debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
debugSettings.geography = UMPDebugGeographyEEA;
parameters.debugSettings = debugSettings;

// Include the UMPRequestParameters in your consent request.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable error){
                           // ...
}];

Cuando pruebes tu app con el SDK de UMP, te resultará útil restablecer el estado del SDK para simular la experiencia de instalación inicial de un usuario. El SDK proporciona el método reset para hacerlo.

Swift

ConsentInformation.shared.reset()

Objective-C

[UMPConsentInformation.sharedInstance reset];

Ejemplos en GitHub

Consulta un ejemplo completo de la integración del SDK de UMP que se aborda en esta página en