O SDK da plataforma de mensagens de usuários (UMP) do Google é uma ferramenta de privacidade e mensagens para ajudar você a gerenciar as opções de privacidade. Para mais informações, consulte Sobre a página "Privacidade e mensagens".
Pré-requisitos
- API do Android de nível 21 ou mais recente
Criar um tipo de mensagem
Crie mensagens do usuário com um dos tipos disponíveis na guia Privacidade e mensagens da sua conta do Ad Manager. O SDK da UMP tenta mostrar uma mensagem de privacidade criada com base no ID do aplicativo do Ad Manager definido no projeto.
Para mais detalhes, consulte Sobre privacidade e mensagens.
Instalar com o Gradle
Adicione a dependência do SDK da plataforma de mensagens de usuários do Google ao arquivo Gradle
do módulo no nível do app, normalmente app/build.gradle
:
dependencies {
implementation("com.google.android.ump:user-messaging-platform:3.1.0")
}
Depois de fazer as mudanças na build.gradle
do app, sincronize o
projeto com os arquivos do Gradle.
Adicionar o ID do aplicativo
Você encontra o ID do aplicativo na
interface do Ad Manager.
Adicione o ID ao
AndroidManifest.xml
com o seguinte snippet 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>
Receber as informações de consentimento do usuário
Para receber as informações de consentimento do usuário, faça o seguinte:
Declare uma instância de ConsentInformation
:
Java
private final ConsentInformation consentInformation;
Kotlin
private lateinit val consentInformation: ConsentInformation
Inicialize a instância ConsentInformation
:
Java
consentInformation = UserMessagingPlatform.getConsentInformation(context);
Kotlin
consentInformation = UserMessagingPlatform.getConsentInformation(context)
Você precisa solicitar uma atualização das informações de consentimento do usuário em cada inicialização
do app usando
requestConsentInfoUpdate()
. Essa solicitação verifica o seguinte:
- Se o consentimento é obrigatório. Por exemplo, o consentimento é necessário pela primeira vez ou a decisão de consentimento anterior expirou.
- Se um ponto de entrada de opções de privacidade é necessário. Algumas mensagens de privacidade exigem que os apps permitam que os usuários modifiquem as opções de privacidade a qualquer 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.
},
)
Carregar e apresentar o formulário de mensagem de privacidade
Depois de receber o status de consentimento mais atualizado, chame
loadAndShowConsentFormIfRequired()
para carregar os formulários necessários para
coletar o consentimento do usuário. Após o carregamento, os formulários são apresentados imediatamente.
Java
UserMessagingPlatform.loadAndShowConsentFormIfRequired(
activity,
formError -> {
// Consent gathering process is complete.
});
Kotlin
UserMessagingPlatform.loadAndShowConsentFormIfRequired(activity) { formError ->
// Consent gathering process is complete.
}
Opções de privacidade
Alguns formulários de mensagem de privacidade são apresentados em um ponto de entrada de opções de privacidade renderizado pelo editor, permitindo que os usuários gerenciem as opções de privacidade a qualquer momento. Para saber mais sobre qual mensagem é exibida aos seus usuários no ponto de entrada das opções de privacidade, consulte Tipos de mensagens do usuário disponíveis.
Verificar se um ponto de entrada de opções de privacidade é necessário
Depois de chamar
requestConsentInfoUpdate()
, verifique
getPrivacyOptionsRequirementStatus()
para
determinar se um ponto de entrada para as opções de privacidade é necessário para o app. Se um ponto
de entrada for necessário, adicione um elemento de interface visível e interativo ao app que
apresente o formulário de opções de privacidade. Se um ponto de entrada de privacidade não for necessário,
configure o elemento da interface para que ele não seja visível nem interativo.
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 conferir a lista completa de status de requisitos de opções de privacidade, consulte
ConsentInformation.PrivacyOptionsRequirementStatus
.
Apresentar o formulário de opções de privacidade
Quando o usuário interagir com o elemento, apresente o formulário de opções de privacidade:
Java
UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener);
Kotlin
UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener)
Solicitar anúncios com consentimento do usuário
Antes de solicitar anúncios, use
canRequestAds()
para verificar se você
recebeu o consentimento do usuário:
Java
consentInformation.canRequestAds();
Kotlin
consentInformation.canRequestAds()
Confira a seguir os lugares em que é possível solicitar anúncios durante a coleta de consentimento:
- Depois que o SDK do UMP coleta o consentimento na sessão atual.
- Imediatamente após chamar
requestConsentInfoUpdate()
. O SDK do UMP pode ter recebido o consentimento na sessão anterior do app.
Se ocorrer um erro durante o processo de coleta de consentimento, verifique se é possível solicitar anúncios. O SDK do UMP usa o status de consentimento da sessão anterior do app.
Evitar trabalho redundante de solicitações de anúncios
Ao verificar
canRequestAds()
depois de coletar o consentimento e chamar
requestConsentInfoUpdate()
, garanta que sua lógica impeça solicitações de anúncios redundantes que
possam resultar em ambas as verificações retornando true
. Por exemplo, com uma variável
booleana.
Teste
Se você quiser testar a integração no seu app durante o desenvolvimento, siga estas etapas para registrar o dispositivo de teste por programação. Remova o código que define esses IDs de dispositivo de teste antes de lançar o app.
- Ligue para a
requestConsentInfoUpdate()
. Verifique se há uma mensagem semelhante ao exemplo abaixo na saída do registro, que mostra o ID do dispositivo e como adicioná-lo como um dispositivo de teste:
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
Copie o ID do dispositivo de teste para a área de transferência.
Modifique o código para chamar
ConsentDebugSettings.Builder().TestDeviceHashedIds
e transmitir uma lista dos IDs dos dispositivos de teste.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, // ... )
Forçar uma região geográfica
O SDK da UMP oferece uma maneira de testar o comportamento do app como se o dispositivo
estivesse localizado em várias regiões, como o EEE ou o Reino Unido, usando
DebugGeography
. As configurações de depuração só funcionam em dispositivos de teste.
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,
...
)
Redefinir o estado de consentimento
Ao testar seu app com o SDK da UMP, pode ser útil redefinir o
estado do SDK para simular a experiência de instalação de um usuário.
O SDK fornece o método reset()
para fazer isso.
Java
consentInformation.reset();
Kotlin
consentInformation.reset()
Exemplos no GitHub
Confira um exemplo completo da integração do SDK da UMP abordada nesta página em Java BannerExample e Kotlin BannerExample.