De acordo com a Política de consentimento para usuários da União Europeia do Google, você precisa divulgar determinadas informações aos seus usuários no Espaço Econômico Europeu (EEE) e no Reino Unido e obter o consentimento deles para usar cookies ou outro armazenamento local, quando exigido por lei, e usar dados pessoais, como AdID, 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). O SDK do UMP foi atualizado para oferecer suporte aos padrões mais recentes do IAB. Todas essas configurações agora podem ser processadas com facilidade na AdMob privacidade e nas mensagens.
Pré-requisitos
- Conclua o Guia de primeiros passos.
- Configure suas mensagens na guia Privacidade e mensagens da sua AdMob conta. Para mais detalhes, consulte Sobre privacidade e mensagens,
- Se você estiver trabalhando em requisitos relacionados ao GDPR, leia Como os requisitos do IAB afetam as mensagens de consentimento da UE.
Tipos de mensagem do usuário
Consulte Tipos de mensagens do usuário para ver uma lista completa de mensagens com suporte. Para ver instruções específicas sobre como implementar cada tipo de mensagem, consulte a barra de navegação à esquerda.
Instalar com o Gradle
Se você estiver usando o SDK dos anúncios para dispositivos móveis do Google versão 19.8.0 ou mais recente, o SDK do UMP está incluído no pacote. Se você estiver usando uma versão anterior do SDK dos anúncios para dispositivos móveis, inclua o SDK da UMP no build.gradle do app da seguinte maneira:
dependencies {
// This dependency is automatically included by Google Mobile Ads SDK 19.8.0
// or higher.
implementation 'com.google.android.ump:user-messaging-platform:2.0.0'
}
Depois de fazer as mudanças no build.gradle do app, sincronize seu projeto com os arquivos do Gradle.
Em seguida,
encontre o ID do app
e adicione ao seu AndroidManifest.xml
:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rewardedinterstitialexample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!-- Sample app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Determinar se uma mensagem precisa ser exibida
Solicite uma atualização das informações de consentimento do usuário a cada inicialização
do app usando requestConsentInfoUpdate()
antes de carregar um formulário.
Isso pode determinar se o usuário precisa ou não consentir, caso ainda não tenha feito isso ou se o consentimento tiver expirado.
consentInformation
ao apresentar o formulário quando necessário.
Veja um exemplo de como verificar o status na inicialização do app:
Java
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import com.google.android.ump.ConsentForm; import com.google.android.ump.ConsentInformation; import com.google.android.ump.ConsentRequestParameters; import com.google.android.ump.FormError; import com.google.android.ump.UserMessagingPlatform; public class MainActivity extends AppCompatActivity { private ConsentInformation consentInformation; private ConsentForm consentForm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Set tag for under age of consent. false means users are not under // age. ConsentRequestParameters params = new ConsentRequestParameters .Builder() .setTagForUnderAgeOfConsent(false) .build(); consentInformation = UserMessagingPlatform.getConsentInformation(this); consentInformation.requestConsentInfoUpdate( this, params, new ConsentInformation.OnConsentInfoUpdateSuccessListener() { @Override public void onConsentInfoUpdateSuccess() { // The consent information state was updated. // You are now ready to check if a form is available. } }, new ConsentInformation.OnConsentInfoUpdateFailureListener() { @Override public void onConsentInfoUpdateFailure(FormError formError) { // Handle the error. } }); } }
Kotlin
Coming soon.
Carregar um formulário, se disponível
Antes de exibir um formulário, você precisa determinar se ele está disponível. Isso pode acontecer quando o usuário ativa o rastreamento de anúncios limitado ou quando você os marcou como abaixo da idade de consentimento.
Para verificar a disponibilidade de um formulário, use
the isConsentFormAvailable()
method on the ConsentInformation
instance que você criou anteriormente.
Em seguida, adicione um método wrapper para carregar o formulário:
Java
... consentInformation.requestConsentInfoUpdate( this, params, new ConsentInformation.OnConsentInfoUpdateSuccessListener() { @Override public void onConsentInfoUpdateSuccess() { // The consent information state was updated. // You are now ready to check if a form is available. if (consentInformation.isConsentFormAvailable()) { loadForm(); } } }, new ConsentInformation.OnConsentInfoUpdateFailureListener() { @Override public void onConsentInfoUpdateFailure(FormError formError) { // Handle the error. } }); } public void loadForm() { } }
Kotlin
Coming soon.
Para carregar o formulário, use the static loadConsentForm()
method on the UserMessagingPlatform
class.
Java
public void loadForm() { // Loads a consent form. Must be called on the main thread. UserMessagingPlatform.loadConsentForm( this, new UserMessagingPlatform.OnConsentFormLoadSuccessListener() { @Override public void onConsentFormLoadSuccess(ConsentForm consentForm) { MainActivity.this.consentForm = consentForm; } }, new UserMessagingPlatform.OnConsentFormLoadFailureListener() { @Override public void onConsentFormLoadFailure(FormError formError) { // Handle the error } } ); }
Kotlin
Coming soon.
Apresentar o formulário, se necessário
Depois de determinar a disponibilidade do formulário e carregá-lo, use o
métodoshow()
na instância
ConsentForm
para apresentá-lo.
Use o objeto
consentInformation
de antes para conferir o
consent status e atualizar o
métodoloadForm()
:
Java
public void loadForm() { UserMessagingPlatform.loadConsentForm( this, new UserMessagingPlatform.OnConsentFormLoadSuccessListener() { @Override public void onConsentFormLoadSuccess(ConsentForm consentForm) { MainActivity.this.consentForm = consentForm; if(consentInformation.getConsentStatus() == ConsentInformation.ConsentStatus.REQUIRED) { consentForm.show( MainActivity.this, new ConsentForm.OnConsentFormDismissedListener() { @Override public void onConsentFormDismissed(@Nullable FormError formError) { // Handle dismissal by reloading form. loadForm(); } }); } } }, new UserMessagingPlatform.OnConsentFormLoadFailureListener() { @Override public void onConsentFormLoadFailure(FormError formError) { /// Handle Error. } } ); }
Kotlin
Coming soon.
Se você precisar realizar alguma ação após o usuário ter escolhido ou dispensado o formulário, coloque essa lógica no gerenciador de conclusão ou no callback do formulário.
Teste
Forçar uma região geográfica
O SDK do UMP oferece uma maneira de testar o comportamento do app como se o dispositivo estivesse
localizado no EEE ou no Reino Unido usando the setDebugGeography
method on ConsentDebugSettings.Builder
.
É necessário fornecer o ID de hash do dispositivo de teste nas configurações de depuração do app para
usar a funcionalidade de depuração. Se você chamar
requestConsentInfoUpdate()
sem definir esse valor, o app
registrará o hash de ID necessário quando executado.
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); consentInformation.requestConsentInfoUpdate(this, params, new ConsentInformation.OnConsentInfoUpdateSuccessListener() { @Override public void onConsentInfoUpdateSuccess() { // The consent information state was updated. // You are now ready to check if a form is available. } }, new ConsentInformation.OnConsentInfoUpdateFailureListener() { @Override public void onConsentInfoUpdateFailure(FormError formError) { // Handle the error. } });
Kotlin
Coming soon.
Com o DebugGeography
, você tem a opção de
forçar a localização geográfica para uma destas opções:
Depurar região geográfica | Descrição |
---|---|
DEBUG_GEOGRAPHY_DISABLED |
Região de depuração desativada. |
DEBUG_GEOGRAPHY_EEA |
A região geográfica aparece como no EEE para dispositivos de depuração. |
DEBUG_GEOGRAPHY_NOT_EEA |
A região geográfica aparece como se não estivesse no EEE para dispositivos de depuração. |
As configurações de depuração só funcionam em dispositivos de teste. Os emuladores não precisam ser adicionados à lista de IDs de dispositivo porque já têm os testes ativados por padrão.
Redefinir o estado de consentimento
Ao testar seu app com o SDK da 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 reset()
método para fazer isso.
Java
consentInformation.reset();
Kotlin
consentInformation.reset()
Também é preciso chamar reset()
se você decidir remover
o SDK da UMP completamente do seu projeto.