De acordo com a Política de consentimento para usuários da União Europeia do Google, é necessário divulgar algumas informações aos usuários no Espaço Econômico Europeu (EEE) e o Reino Unido e receber o consentimento deles para usar cookies ou outro armazenamento local, conforme os requisitos legais, e usar dados pessoais (como ID de publicidade) para veicular anúncios. Essa política reflete os requisitos da Diretiva de privacidade eletrônica da UE e do Regulamento geral de proteção de dados (GDPR).
Para ajudar os editores a cumprir as obrigações determinadas por essa política, o Google oferece o SDK da plataforma de mensagens aos usuários (UMP, na sigla em inglês). O SDK do UMP foi atualizado para aceitar os padrões mais recentes do IAB. Todas essas configurações agora podem ser processadas de forma conveniente em AdMob Privacidade e mensagens.
Pré-requisitos
- Leia o Guia para iniciantes
- Se você estiver trabalhando em requisitos relacionados ao GDPR, leia Como os requisitos do IAB afetam as mensagens de consentimento para a União Europeia
Criar um tipo de mensagem
Crie mensagens de usuários com um dos tipos disponíveis na guia Privacidade e mensagens da sua AdMob conta. O SDK do UMP tenta exibir uma mensagem do usuário criada a partir do AdMob ID do aplicativo definido no seu projeto. Se nenhuma mensagem for configurada para o aplicativo, o SDK retornará um erro.
Saiba mais em Sobre privacidade e mensagens.
Solicitação de informações de consentimento
Solicite uma atualização das informações de consentimento do usuário a cada inicialização do app usando Update()
. Isso determina se o usuário precisa dar consentimento caso ainda não tenha feito isso ou tenha expirado.
Veja um exemplo de como verificar o status da inicialização do app:
void Start()
{
// Set tag for under age of consent.
// Here false means users are not under age of consent.
ConsentRequestParameters request = new ConsentRequestParameters
{
TagForUnderAgeOfConsent = false,
};
// 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.
}
Carregar e mostrar um formulário de consentimento, se necessário
Depois de receber o status de consentimento mais atualizado, chameLoadAndShowConsentFormIfRequired()
na classeConsentForm
para carregar um formulário de consentimento. Se o status de consentimento for obrigatório, o SDK carregará um formulário e o apresentará imediatamentefornecido. O Action<FormError>
callback
é chamado depois que o formulário é dispensado. Se o consentimento não for necessário, o Action<FormError>
callbackserá chamado imediatamente.
void Start()
{
// Set tag for under age of consent.
// Here false means users are not under age of consent.
ConsentRequestParameters request = new ConsentRequestParameters
{
TagForUnderAgeOfConsent = false,
};
// 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.
});
}
Se você precisar realizar qualquer ação depois que o usuário fizer uma escolha ou dispensar
o formulário, coloque essa lógica no Action<FormError>
callback
do formulário.
Solicitar anúncios
Antes de solicitar anúncios no seu app, verifique se você recebeu o consentimento do usuário que usa . Há dois lugares a serem verificados ao obter o consentimento:
- Depois de receber o consentimento na sessão atual.
- Imediatamente após chamar
Update()
. É possível que o consentimento tenha sido dado na sessão anterior. Como prática recomendada de latência, não espere a conclusão do callback para começar a carregar anúncios o mais rápido possível após o início do aplicativo.
Se ocorrer um erro durante o processo de solicitação de consentimento, você ainda precisará tentar solicitar anúncios. O SDK do UMP usa o status de consentimento da sessão anterior.
void Start()
{
// Set tag for under age of consent.
// Here false means users are not under age of consent.
ConsentRequestParameters request = new ConsentRequestParameters
{
TagForUnderAgeOfConsent = false,
};
// 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.
});
}
});
}
Teste
Se você quiser testar a integração no app durante o desenvolvimento, siga as etapas abaixo para registrar o dispositivo de teste de maneira programática.
- Chame
Update()
. Verifique a saída do registro de uma mensagem parecida com a abaixo, que mostra o ID do dispositivo e como adicioná-lo como um dispositivo de teste:
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]
Copie o ID do dispositivo de teste para a área de transferência.
Modifique seu código para chamar
DebugGeography.TestDeviceHashedIds
e transmitir uma lista dos IDs de dispositivos de teste.
void Start()
{
var debugSettings = new ConsentDebugSettings
{
DebugGeography = DebugGeography.TestDeviceHashedIds =
new List<string>
{
"TEST-DEVICE-HASHED-ID"
}
};
// Set tag for under age of consent.
// Here false means users are not under age of consent.
ConsentRequestParameters request = new ConsentRequestParameters
{
TagForUnderAgeOfConsent = false,
ConsentDebugSettings = debugSettings,
};
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
Forçar uma região geográfica
O SDK do UMP oferece uma maneira de testar o comportamento do seu app como se o dispositivo estivesse
localizado no EEE ou no Reino Unido usando the DebugGeography
field on ConsentDebugSettings
. As
configurações de depuração só funcionam em dispositivos de teste.
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"
}
};
// Set tag for under age of consent.
// Here false means users are not under age of consent.
ConsentRequestParameters request = new ConsentRequestParameters
{
TagForUnderAgeOfConsent = false,
ConsentDebugSettings = debugSettings,
};
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
Redefinir estado de consentimento
Ao testar seu app com o SDK do UMP, pode ser útil redefinir o
estado do SDK para que você possa simular a primeira experiência de instalação de um usuário.
O SDK fornece o método Reset()
para fazer isso.
ConsentInformation.Reset();