Começar

Selecione a plataforma: Android iOS Unity Flutter

O SDK da plataforma de mensagens aos 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 aos usuários com um dos tipos de mensagens aos usuários disponíveis na guia Privacidade e mensagens da sua conta da AdMob. O SDK da UMP tenta mostrar uma mensagem de privacidade criada com base no ID do aplicativo da AdMob definido no seu projeto.

Para mais detalhes, consulte Sobre privacidade e mensagens.

Instalar com Gradle

Adicione a dependência do SDK da plataforma de mensagens de usuários do Google ao arquivo Gradle no nível do app do módulo, normalmente app/build.gradle:

dependencies {
  implementation("com.google.android.ump:user-messaging-platform:3.1.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 seu 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>

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 do 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 a 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. Depois do carregamento, os formulários aparecem 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 mensagens 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 usuários no ponto de entrada das opções de privacidade, consulte Tipos de mensagens disponíveis para o usuário.

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 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 da interface para que ele não fique 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 das opções de privacidade, consulte ConsentInformation.PrivacyOptionsRequirementStatus.

Apresentar o formulário de opções de privacidade

Quando o usuário interagir com seu 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ê obteve o consentimento do usuário:

Java

consentInformation.canRequestAds();

Kotlin

consentInformation.canRequestAds()

Confira a seguir os locais em que você pode pedir anúncios enquanto coleta 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 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 redundante de solicitação de anúncio

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 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.

  1. Ligue para a requestConsentInfoUpdate().
  2. Verifique a saída do registro em busca de 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.
    
  3. Copie o ID do dispositivo de teste para a área de transferência.

  4. 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 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,
    ...
)

Ao testar o app com o SDK da UMP, talvez seja ú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.