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 Android nível 21 ou mais recente
Criar um tipo de mensagem
Crie mensagens de usuário com um dos tipos de mensagem de usuário disponíveis na guia Privacidade e mensagens da sua conta da AdMob. O SDK da UMP tenta mostrar uma mensagem de privacidade criada com o ID do aplicativo da AdMob definido no seu 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
app, normalmente app/build.gradle:
dependencies {
implementation("com.google.android.ump:user-messaging-platform:4.0.0")
}
Depois de fazer as mudanças no 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 da AdMob.
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)
Solicite uma atualização das informações de consentimento do usuário a cada inicialização do app
usando
requestConsentInfoUpdate(). Essa solicitação verifica o seguinte:
- Se o consentimento é necessá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 todos 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 é mostrada aos usuários no ponto de entrada de opções de privacidade, consulte Tipos de mensagem de 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 de opções de privacidade é necessário para seu 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 de interface para não ser visível e 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 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 interage 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 o 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()
A seguir, listamos os locais para verificar se você pode solicitar anúncios ao coletar o consentimento:
- Depois que o SDK da UMP coleta o consentimento na sessão atual.
- Imediatamente depois de chamar
requestConsentInfoUpdate(). O SDK da 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 você pode solicitar anúncios. O SDK da UMP usa o status de consentimento da sessão anterior do app.
Evitar trabalho repetitivo na solicitação de anúncio
Ao verificar
canRequestAds() depois de coletar o consentimento e depois de chamar
requestConsentInfoUpdate(), verifique se a lógica impede solicitações de anúncios redundantes que
podem resultar em ambas as verificações retornando true. Por exemplo, com uma variável
booleana.
Teste
Se você quiser testar a integração no app durante o desenvolvimento, siga estas etapas para registrar seu dispositivo de teste de maneira programática. Remova o código que define esses IDs de dispositivo de teste antes de lançar o app.
- Ligue para a
requestConsentInfoUpdate(). Verifique a saída do registro para uma mensagem semelhante ao exemplo a seguir, 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().TestDeviceHashedIdse transmita 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
setDebugGeography(). 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 o app com o SDK da UMP, pode ser útil redefinir o
estado do SDK para simular a experiência de primeira 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.