De acordo com a Política de consentimento para usuários da União Europeia do Google, você precisa divulgar algumas informações aos seus usuários no Espaço Econômico Europeu (EEE) e no Reino Unido e solicitar o consentimento deles para o uso de cookies ou outro armazenamento local, onde exigido por lei, e para usar dados pessoais (como o ID de publicidade) para veicular anúncios. Esta política reflete os requisitos da Diretiva de privacidade eletrônica da UE e do Regulamento geral de proteção de dados (GDPR).
Este guia descreve as etapas necessárias para oferecer suporte à mensagem do TCF v2 do IAB do GDPR como parte do SDK da UMP. O objetivo é ser usado com o artigo Começar a usar, que mostra uma visão geral de como fazer o app funcionar com o SDK da UMP e os conceitos básicos de configuração da mensagem. As orientações a seguir são específicas para a mensagem do TCF v2 do IAB do GDPR. Para mais informações, consulte Como os requisitos do IAB afetam as mensagens de consentimento da UE.
Pré-requisitos
- Conclua o Guia para iniciantes.
- Crie uma mensagem sobre as regulamentações europeias para apps.
Revogação de consentimento
O GDPR exige a revogação do consentimento para permitir que os usuários retirem suas escolhas de consentimento a qualquer momento. Consulte Opções de privacidade para implementar uma maneira de os usuários retirarem as escolhas de consentimento.
Tag para usuários abaixo da idade de consentimento
Para indicar se um usuário está abaixo da idade de consentimento, defina
setTagForUnderAgeOfConsent
(TFUA). Quando você define o TFUA como true
, o SDK do UMP
não solicita o consentimento do usuário. Se o app tiver um público misto, defina
esse parâmetro para usuários menores de idade para garantir que o consentimento não seja solicitado.
O exemplo a seguir define TFUA como "true" em uma solicitação de consentimento do UMP:
Java
ConsentRequestParameters params = new ConsentRequestParameters
.Builder()
// Indicate the user is under age of consent.
.setTagForUnderAgeOfConsent(true)
.build();
consentInformation = UserMessagingPlatform.getConsentInformation(this);
consentInformation.requestConsentInfoUpdate(
this,
params,
(OnConsentInfoUpdateSuccessListener) () -> {
// ...
},
(OnConsentInfoUpdateFailureListener) requestConsentError -> {
// ...
});
Kotlin
val params = ConsentRequestParameters
.Builder()
// Indicate the user is under age of consent.
.setTagForUnderAgeOfConsent(true)
.build()
consentInformation = UserMessagingPlatform.getConsentInformation(this)
consentInformation.requestConsentInfoUpdate(
this,
params,
ConsentInformation.OnConsentInfoUpdateSuccessListener {
// ...
},
ConsentInformation.OnConsentInfoUpdateFailureListener {
requestConsentError ->
// ...
})
Mediação
Siga as etapas em Adicionar parceiros de anúncios a mensagens do GDPR publicadas para adicionar seus parceiros de mediação à lista de parceiros de anúncios. Se isso não for feito, os parceiros não poderão veicular anúncios no seu app.
Os parceiros de mediação também podem ter outras ferramentas para ajudar com a conformidade com o GDPR. Consulte o guia de integração de um parceiro específico para mais detalhes.
Como ler as opções de consentimento
Depois que o consentimento do GDPR for coletado, você poderá ler as opções de consentimento do armazenamento
local seguindo a
especificação do TCF v2.
A chave IABTCF_PurposeConsents
indica o consentimento para cada uma das
finalidades do TCF.
O snippet de código abaixo mostra como verificar o consentimento para a finalidade 1:
Java
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context);
// Example value: "1111111111"
String purposeConsents = sharedPref.getString("IABTCF_PurposeConsents", "");
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
if (!purposeConsents.isEmpty()) {
String purposeOneString = purposeConsents.charAt(0);
boolean hasConsentForPurposeOne = purposeOneString.equals("1");
}
Kotlin
val sharedPref = PreferenceManager.getDefaultSharedPreferences(context)
// Example value: "1111111111"
val purposesConsents = sharedPref.getString("IABTCF_PurposeConsents", "")
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
if (!purposeConsents.isEmpty()) {
val purposeOneString = purposeConsents.first()
val hasConsentForPurposeOne = purposeOneString == "1"
}
Perguntas frequentes
- O que vai acontecer se eu não atender aos requisitos da plataforma de gestão de consentimento para veicular anúncios no EEE e Reino Unido?
A partir de 16 de janeiro de 2024, se um parceiro não adotar uma CMP certificada pelo Google, apenas anúncios limitados poderão ser veiculados no tráfego do EEE e do Reino Unido.
A aplicação vai começar em 16 de janeiro de 2024 em uma pequena porcentagem do tráfego do EEE e do Reino Unido e vai aumentar até que o Google aplique em todo o tráfego dessas regiões até o fim de fevereiro de 2024. Implemente uma CMP certificada até 16 de janeiro de 2024 para garantir que sua monetização não seja afetada.
- Como posso verificar se o usuário consentiu?
O consentimento não é representado por um único bit, mas sim por um conjunto de finalidades e fornecedores, conforme definido na especificação do TCF do IAB. Consulte as Políticas de consentimento: anúncios personalizados e não personalizados para conferir os critérios de personalização do Google Ads.
Além disso, as adtechs na lista de provedores de tecnologia de anúncio (ATP) do Google que não estão registradas na lista de fornecedores do TCF usam a especificação técnica de consentimento adicional do Google para coletar o consentimento. O Google publica a lista dos provedores de tecnologia de publicidade não registrados no IAB e os IDs deles no seguinte local: https://storage.googleapis.com/tcfac/additional-consent-providers.csv.
Para depurar uma solicitação de anúncio individual, use o recurso de depuração avançada de blocos de anúncios no Ad Inspector para exportar uma string de solicitação de anúncio. Em seguida, procure os seguintes parâmetros de consulta:
Parâmetro de consulta Significado gdpr
Indica se o GDPR se aplica a essa solicitação de anúncio. gdpr_consent
A string de TC. O IAB oferece uma ferramenta da Web em que você pode decodificar o valor manualmente. addtl_consent
A string AC da especificação técnica do consentimento adicional do Google. Para ler as opções de consentimento de forma programática, consulte Como ler as opções de consentimento para mais informações.
- Preciso usar o SDK da UMP do Google para atender ao requisito da CMP?
Não, você pode usar qualquer CMP da Lista de CMPs certificadas pelo Google para veicular anúncios.
- Como posso mostrar o formulário de consentimento novamente usando o SDK da UMP, mesmo que o usuário já tenha dado consentimento?
Se um usuário já tiver tomado uma decisão de consentimento, a solução de gerenciamento de consentimento do Google não vai solicitar um novo consentimento até que a string de TC expire ou se torne inválida.
O GDPR exige a modificação do consentimento para permitir que os usuários retirem as escolhas de consentimento a qualquer momento. Consulte opções de privacidade para implementar uma maneira de os usuários retirarem as escolhas de consentimento. Para mostrar um formulário de consentimento novamente, chame
showPrivacyOptionsForm()
.- Integrei uma CMP certificada pelo Google, mas não vejo nenhuma solicitação de anúncio feita aos parceiros de mediação, nem mesmo de usuários que consentiram. Por que isso está acontecendo?
No TCF, o Google verifica se os provedores de tecnologia de publicidade e outras origens de demanda programática não violam a política do Google e têm pelo menos uma base legal para processar dados antes da inclusão deles na hierarquia de mediação. Navegue até a seção Mediação para mais informações.
Alguns parceiros de mediação na lista de provedores de tecnologia de anúncio (ATP) do Google não estão registrados na lista de fornecedores do TCF. Em vez disso, esses parceiros usam a especificação técnica do consentimento adicional do Google para coletar o consentimento. O Google publica a lista de provedores de tecnologia de publicidade não registrados no IAB e os IDs deles no seguinte local: https://storage.googleapis.com/tcfac/additional-consent-providers.csv
O SDK UMP oferece suporte ao armazenamento do ACString, permitindo que você adicione parceiros de anúncios às mensagens do GDPR publicadas sem precisar saber se os parceiros estão registrados no TCF. Ao usar uma CMP de terceiros, faça o seguinte:
- Confirme se a CMP de terceiros oferece suporte ao armazenamento da ACString.
- Inclua cada parceiro de mediação na lista de provedores de tecnologia de anúncios que a CMP de terceiros usa para coletar o consentimento.
- Posso mudar a forma como meu app funciona se os usuários não permitirem? Isso é permitido pela política?
Os editores podem ler a string do TCF do IAB nos apps. Consulte Como ler as opções de consentimento para informações sobre como ler as opções de consentimento de forma programática. Os editores precisam analisar as obrigações de acordo com as regulamentações relevantes com um advogado.
- Quando seleciono Gerenciar opções e dou consentimento para todos os fins, não aparecem anúncios. Por que isso está acontecendo?
Além de coletar o consentimento para fins específicos, você também precisa coletar o consentimento do fornecedor. O consentimento para as finalidades e para o fornecedor é necessário para que qualquer fornecedor, como o Google, possa veicular anúncios apropriados.
- Como implementar a versão 2 da string de consentimento adicional para usuários que já consentiram com a versão 1?
Verifique a chave
IABTCF_AddtlConsent
no armazenamento local de acordo com a especificação técnica de consentimento adicional do Google para determinar se um usuário consentiu com a versão 2 da string de AC e se você precisa mostrar o formulário de consentimento novamente.Java
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context); // Example value: "2~1.35.41.101~dv.9.21.81" String additionalConsent = sharedPref.getString("IABTCF_AddtlConsent", ""); // Index 0 contains information about the specification version number. if (!additionalConsent.isEmpty()) { String specACVersion = additionalConsent.charAt(0); boolean isACVersion2 = purposeOneString.equals("2"); }
Kotlin
val sharedPref = PreferenceManager.getDefaultSharedPreferences(context) // Example value: "2~1.35.41.101~dv.9.21.81" val additionalConsent = sharedPref.getString("IABTCF_AddtlConsent", "") // Index 0 contains information about the specification version number. if (!additionalConsent.isEmpty()) { val specACVersion = additionalConsent.first() val isACVersion2 = specACVersion == "2" }