Comenzar

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.

Requisitos previos

  • Android con nivel de API 21 o superior

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 Ad Manager. El SDK de UMP intenta mostrar un mensaje de privacidad creado a partir del ID de aplicación de Ad Manager configurado en tu proyecto.

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

Cómo instalar con Gradle

Agrega la dependencia del SDK de Google User Messaging Platform al archivo Gradle a nivel de la app de tu módulo, que suele ser app/build.gradle:

dependencies {
  implementation("com.google.android.ump:user-messaging-platform:3.1.0")
}

Después de realizar los cambios en el build.gradle de tu app, asegúrate de sincronizar tu proyecto con los archivos de Gradle.

Agrega el ID de aplicación

Puedes encontrar el ID de tu aplicación en la IU de Ad Manager. Agrega el ID a tu AndroidManifest.xml con el siguiente fragmento de código:

<manifest>
  <application>
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
  </application>
</manifest>

Para obtener la información de consentimiento del usuario, haz lo siguiente:

Declara una instancia de ConsentInformation:

Java

private final ConsentInformation consentInformation;

Kotlin

private lateinit val consentInformation: ConsentInformation

Inicializa la instancia ConsentInformation:

Java

consentInformation = UserMessagingPlatform.getConsentInformation(context);

Kotlin

consentInformation = UserMessagingPlatform.getConsentInformation(context)

Debes solicitar una actualización de la información de consentimiento del usuario cada vez que se inicie la app con requestConsentInfoUpdate(). Esta solicitud verifica lo siguiente:

  • Si se requiere consentimiento. Por ejemplo, se requiere el consentimiento por primera vez o venció la decisión de consentimiento anterior.
  • 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.

Java


// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
    activity,
    params,
    () -> // Called when consent information is successfully updated.
    requestConsentError -> // Called when there's an error updating consent information.

Kotlin


// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
  activity,
  params,
  {
    // Called when consent information is successfully updated.
  },
  { requestConsentError ->
    // Called when there's an error updating consent information.
  },
)

Carga y presenta el formulario del mensaje de privacidad

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

Java


UserMessagingPlatform.loadAndShowConsentFormIfRequired(
    activity,
    formError -> {
      // Consent gathering process is complete.
    });

Kotlin


UserMessagingPlatform.loadAndShowConsentFormIfRequired(activity) { formError ->
  // 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 de usuario disponibles.

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

Después de llamar a requestConsentInfoUpdate(), verifica getPrivacyOptionsRequirementStatus() 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 IU visible y 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 la IU para que no sea visible ni interactivo.

Java


/** Helper variable to determine if the privacy options form is required. */
public boolean isPrivacyOptionsRequired() {
  return consentInformation.getPrivacyOptionsRequirementStatus()
      == PrivacyOptionsRequirementStatus.REQUIRED;
}

Kotlin


/** Helper variable to determine if the privacy options form is required. */
val isPrivacyOptionsRequired: Boolean
  get() =
    consentInformation.privacyOptionsRequirementStatus ==
      ConsentInformation.PrivacyOptionsRequirementStatus.REQUIRED

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

Presenta el formulario de opciones de privacidad

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

Java


UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener);

Kotlin


UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener)

Solicita anuncios con el consentimiento del usuario

Antes de solicitar anuncios, usa canRequestAds() para verificar si obtuviste el consentimiento del usuario:

Java

consentInformation.canRequestAds();

Kotlin

consentInformation.canRequestAds()

A continuación, se indican los siguientes lugares para verificar 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 llamar a requestConsentInfoUpdate(). Es posible que el SDK de UMP haya obtenido el consentimiento en la sesión de la app anterior.

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

Evita el trabajo redundante de las solicitudes de anuncios

Cuando verifiques canRequestAds() después de obtener el consentimiento y después de llamar a requestConsentInfoUpdate(), asegúrate de que tu lógica evite las solicitudes de anuncios redundantes que podrían hacer que ambas verificaciones muestren 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 la app.

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

    Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
    
  3. Copia el ID del dispositivo de prueba en el portapapeles.

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

    Java

    ConsentDebugSettings debugSettings = new ConsentDebugSettings.Builder(this)
        .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
        .build();
    
    ConsentRequestParameters params = new ConsentRequestParameters
        .Builder()
        .setConsentDebugSettings(debugSettings)
        .build();
    
    consentInformation = UserMessagingPlatform.getConsentInformation(this);
    // Include the ConsentRequestParameters in your consent request.
    consentInformation.requestConsentInfoUpdate(
        this,
        params,
        // ...
    );
    

    Kotlin

    val debugSettings = ConsentDebugSettings.Builder(this)
        .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
        .build()
    
    val params = ConsentRequestParameters
        .Builder()
        .setConsentDebugSettings(debugSettings)
        .build()
    
    consentInformation = UserMessagingPlatform.getConsentInformation(this)
    // Include the ConsentRequestParameters in your consent request.
    consentInformation.requestConsentInfoUpdate(
        this,
        params,
        // ...
    )
    

Cómo forzar una ubicación geográfica

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

Java

ConsentDebugSettings debugSettings = new ConsentDebugSettings.Builder(this)
    .setDebugGeography(ConsentDebugSettings.DebugGeography.DEBUG_GEOGRAPHY_EEA)
    .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
    .build();

ConsentRequestParameters params = new ConsentRequestParameters
    .Builder()
    .setConsentDebugSettings(debugSettings)
    .build();

consentInformation = UserMessagingPlatform.getConsentInformation(this);
// Include the ConsentRequestParameters in your consent request.
consentInformation.requestConsentInfoUpdate(
    this,
    params,
    ...
);

Kotlin

val debugSettings = ConsentDebugSettings.Builder(this)
    .setDebugGeography(ConsentDebugSettings.DebugGeography.DEBUG_GEOGRAPHY_EEA)
    .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
    .build()

val params = ConsentRequestParameters
    .Builder()
    .setConsentDebugSettings(debugSettings)
    .build()

consentInformation = UserMessagingPlatform.getConsentInformation(this)
// Include the ConsentRequestParameters in your consent request.
consentInformation.requestConsentInfoUpdate(
    this,
    params,
    ...
)

Cuando pruebes tu app con el SDK de UMP, te recomendamos que restablezcas el estado del SDK para que puedas simular la primera experiencia de instalación de un usuario. El SDK proporciona el método reset() para hacerlo.

Java

consentInformation.reset();

Kotlin

consentInformation.reset()

Ejemplos en GitHub

Consulta un ejemplo completo de la integración del SDK de UMP que se describe en esta página en BannerExample de Java y BannerExample de Kotlin.