Según la Política de Consentimiento de Usuarios de la UE de Google, debes divulgar determinada información a los usuarios del Espacio Económico Europeo (EEE) y el Reino Unido, y obtener su consentimiento para usar cookies y otro tipo de almacenamiento local, cuando sea un requisito legal, y usar datos personales (como el ID del anuncio) para publicar anuncios. Esta política refleja los requisitos de la Directiva de Privacidad Electrónica y el Reglamento General de Protección de Datos (GDPR) de la UE.
Para ayudar a los publicadores a cumplir con sus obligaciones en virtud de esta política, Google ofrece el SDK de User Messaging Platform (UMP). El SDK de UMP se actualizó para admitir los estándares más recientes de IAB. Todas estas configuraciones ahora se pueden administrar de forma conveniente en Ad Manager Privacidad y mensajería.
Requisitos previos
- Completa la guía de introducción.
- Si trabajas en requisitos relacionados con el GDPR, consultaCómo afectan los requisitos de la IAB a los mensajes de consentimiento para la UE.
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 del usuario creado a partir del Ad Manager ID de aplicación configurado en tu proyecto. Si no se configura ningún mensaje para tu aplicación, el SDK muestra un error.
Para obtener más detalles, consulta Información sobre la privacidad y la mensajería
Solicitud de información de consentimiento
Debes solicitar una actualización de la información de consentimiento del usuario en cada inicio de la app mediante Update()
. Esto determina si el usuario debe dar su consentimiento si todavía no lo hizo o si venció.
A continuación, se muestra un ejemplo de cómo comprobar el estado cuando se inicia 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.
}
Carga y muestra un formulario de consentimiento si es necesario
Una vez que recibas el estado de consentimiento más actualizado, llama aLoadAndShowConsentFormIfRequired()
en la claseConsentForm
para cargar un formulario de consentimiento. Si el estado de consentimiento es obligatorio, el SDK carga un formulario y lo presenta de inmediatoproporcionado. Action<FormError>
callback
se llama después de que se descarta el formulario. Si no se requiere el consentimiento, el Action<FormError>
callback
se llama 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.
});
}
Si necesitas realizar alguna acción después de que el usuario haya hecho una elección o descartado el formulario, coloca esa lógica en el Action<FormError>
callbackde tu formulario.
Solicitar anuncios
Antes de solicitar anuncios en tu app, verifica si obtuviste el consentimiento del usuario que usa . Hay dos lugares para verificar mientras obtienes el consentimiento:
- Una vez que se obtenga el consentimiento en la sesión actual,
- Inmediatamente después de llamar a
Update()
Es posible que se haya obtenido el consentimiento en la sesión anterior. Como práctica recomendada para la latencia, te sugerimos no esperar a que se complete la devolución de llamada para comenzar a cargar anuncios lo antes posible después del lanzamiento de tu app.
Si se produce un error durante el proceso de obtención del consentimiento, aún debes intentar solicitar anuncios. El SDK de UMP usa el estado de consentimiento de la sesión anterior.
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.
});
}
});
}
Opciones de privacidad
Algunos formularios de consentimiento requieren que el usuario modifique su consentimiento en cualquier momento. Cumple con los siguientes pasos para implementar un botón de opciones de privacidad si es necesario.
Entonces:
- Implementa un elemento de la IU, como un botón en la página de configuración de la app, que pueda activar un formulario de opciones de privacidad.
- Una vez que se complete
LoadAndShowConsentFormIfRequired()
, marcaPrivacyOptionsRequirementStatus
para determinar si se muestra el elemento de la IU que puede presentar el formulario de opciones de privacidad. - Cuando un usuario interactúe con tu elemento de la IU, llama a
ShowPrivacyOptionsForm()
para mostrar el formulario de modo que el usuario pueda actualizar sus opciones de privacidad en cualquier momento.
En el siguiente ejemplo, se muestra cómo mostrar el formulario de opciones de privacidad desde una Button
.
[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.
if (_privacyButton != null)
{
_privacyButton.interactable =
ConsentInformation.PrivacyOptionsRequirementStatus ==
PrivacyOptionsRequirementStatus.Required;
}
});
}
Prueba
Si quieres probar la integración en tu app mientras desarrollas, sigue estos pasos para registrar tu dispositivo de prueba de manera programática. Asegúrate de quitar el código que establece estos IDs de dispositivos de prueba antes de lanzar la app.
- Llama a
Update()
. Revisa el resultado del registro en busca de 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 del dispositivo de prueba en el portapapeles.
Modifica tu código para llamar
DebugGeography.TestDeviceHashedIds
y pasar una lista de los IDs de 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); }
Fuerza 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 el EEE o el Reino Unido con the DebugGeography
field on ConsentDebugSettings
. 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);
}
Restablecer el estado de consentimiento
Cuando pruebas tu app con el SDK de UMP, puede resultarte útil restablecer el estado del SDK para que puedas simular la experiencia de primera instalación de un usuario.
Para ello, el SDK proporciona el método Reset()
.
ConsentInformation.Reset();