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.
Obtén la información de consentimiento del usuario
Debes solicitar una actualización de la información de consentimiento del usuario en cada inicio de la app con Update()
. 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.
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError consentError)
{
// If the error is null, the consent information state was updated.
if (consentError != null)
{
// Handle the error.
UnityEngine.Debug.LogError(consentError);
return;
}
}
Carga y presenta el formulario de 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 muestran de inmediato.
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError consentError)
{
if (consentError != null)
{
// Handle the error.
UnityEngine.Debug.LogError(consentError);
return;
}
// If the error is null, the consent information state was updated.
// You are now ready to check if a form is available.
ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
{
if (formError != null)
{
// Consent gathering failed.
UnityEngine.Debug.LogError(consentError);
return;
}
// Consent has been gathered.
});
}
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.
Para implementar un punto de entrada de opciones de privacidad, completa los siguientes pasos:
- Después de llamar a
Update()
, verificaPrivacyOptionsRequirementStatus
para determinar si se requiere un punto de entrada de las opciones de privacidad. - Si es necesario, agrega un elemento de la IU visible y con el que se pueda interactuar a tu app para que sirva como punto de entrada de las 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.
- Presenta el formulario de opciones de privacidad con
ShowPrivacyOptionsForm()
.
En el siguiente ejemplo de código, se muestran estos pasos:
[SerializeField, Tooltip("Button to show the privacy options form.")]
private Button _privacyButton;
private void Start()
{
// Enable the privacy settings button.
if (_privacyButton != null)
{
_privacyButton.onClick.AddListener(UpdatePrivacyButton);
// Disable the privacy settings button by default.
_privacyButton.interactable = false;
}
}
/// <summary>
/// Shows the privacy options form to the user.
/// </summary>
public void ShowPrivacyOptionsForm()
{
Debug.Log("Showing privacy options form.");
ConsentForm.ShowPrivacyOptionsForm((FormError showError) =>
{
if (showError != null)
{
Debug.LogError("Error showing privacy options form with error: " + showError.Message);
}
// Enable the privacy settings button.
UpdatePrivacyButton();
});
}
/// <summary>
/// Updates the privacy buttons visual state based on the consent information.
/// </summary>
void UpdatePrivacyButton()
{
if (_privacyButton != null)
{
_privacyButton.interactable =
ConsentInformation.PrivacyOptionsRequirementStatus ==
PrivacyOptionsRequirementStatus.Required;
}
}
Solicita anuncios con el consentimiento del usuario
Antes de solicitar anuncios, usa
CanRequestAds()
para verificar si obtuviste el consentimiento del usuario:
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
Update()
. 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.
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError consentError)
{
if (consentError != null)
{
// Handle the error.
UnityEngine.Debug.LogError(consentError);
return;
}
// If the error is null, the consent information state was updated.
// You are now ready to check if a form is available.
ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
{
if (formError != null)
{
// Consent gathering failed.
UnityEngine.Debug.LogError(consentError);
return;
}
// Consent has been gathered.
if (ConsentInformation.CanRequestAds())
{
MobileAds.Initialize((InitializationStatus initstatus) =>
{
// TODO: Request an ad.
});
}
});
}
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.
- Llamar a
Update()
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:
Android
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
iOS
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
Copia el ID de tu dispositivo de prueba en el portapapeles.
Modifica tu código para llamar a
DebugGeography.TestDeviceHashedIds
y pasar una lista de los IDs de tus dispositivos de prueba.void Start() { var debugSettings = new ConsentDebugSettings { TestDeviceHashedIds = new List<string> { "TEST-DEVICE-HASHED-ID" } }; // Create a ConsentRequestParameters object. ConsentRequestParameters request = new ConsentRequestParameters { ConsentDebugSettings = debugSettings, }; // Check the current consent information status. ConsentInformation.Update(request, OnConsentInfoUpdated); }
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 DebugGeography
. Ten en cuenta que la configuración de depuración solo funciona en dispositivos de prueba.
void Start()
{
var debugSettings = new ConsentDebugSettings
{
// Geography appears as in EEA for debug devices.
DebugGeography = DebugGeography.EEA,
TestDeviceHashedIds = new List<string>
{
"TEST-DEVICE-HASHED-ID"
}
};
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters
{
ConsentDebugSettings = debugSettings,
};
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
Restablece el estado de consentimiento
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.
ConsentInformation.Reset();
Ejemplos en GitHub
Consulta un ejemplo completo de la integración del SDK de UMP que se aborda en esta página en HelloWorld.