Dar os primeiros passos

De acordo com a Política de consentimento para usuários da União Europeia do Google, é necessário divulgar algumas informações aos usuários no Espaço Econômico Europeu (EEE) e o Reino Unido e receber o consentimento deles para usar cookies ou outro armazenamento local, conforme os requisitos legais, e usar dados pessoais (como ID de publicidade) 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, na sigla em inglês). O SDK do UMP foi atualizado para aceitar os padrões mais recentes do IAB. Todas essas configurações agora podem ser processadas de forma conveniente em AdMob Privacidade e mensagens.

Pré-requisitos

Criar um tipo de mensagem

Crie mensagens de usuários com um dos tipos disponíveis na guia Privacidade e mensagens da sua AdMob conta. O SDK do UMP tenta exibir uma mensagem do usuário criada a partir do AdMob ID do aplicativo definido no seu projeto. Se nenhuma mensagem for configurada para o aplicativo, o SDK retornará um erro.

Saiba mais em Sobre privacidade e mensagens.

Solicite uma atualização das informações de consentimento do usuário a cada inicialização do app usando Update(). Isso determina se o usuário precisa dar consentimento caso ainda não tenha feito isso ou tenha expirado.

Veja um exemplo de como verificar o status da inicialização do app:

void Start()
{
    // Set tag for under age of consent.
    // Here false means users are not under age of consent.
    ConsentRequestParameters request = new ConsentRequestParameters
    {
        TagForUnderAgeOfConsent = false,
    };

    // Check the current consent information status.
    ConsentInformation.Update(request, OnConsentInfoUpdated);
}

void OnConsentInfoUpdated(FormError consentError)
{
    if (consentError != null)
    {
        // Handle the error.
        UnityEngine.Debug.LogError(consentError);
        return;
    }

    // If the error is null, the consent information state was updated.
    // You are now ready to check if a form is available.
}

Carregar e mostrar um formulário de consentimento, se necessário

Depois de receber o status de consentimento mais atualizado, chameLoadAndShowConsentFormIfRequired() na classeConsentForm para carregar um formulário de consentimento. Se o status de consentimento for obrigatório, o SDK carregará um formulário e o apresentará imediatamentefornecido. O Action<FormError> callback é chamado depois que o formulário é dispensado. Se o consentimento não for necessário, o Action<FormError> callbackserá chamado imediatamente.

void Start()
{
    // Set tag for under age of consent.
    // Here false means users are not under age of consent.
    ConsentRequestParameters request = new ConsentRequestParameters
    {
        TagForUnderAgeOfConsent = false,
    };

    // Check the current consent information status.
    ConsentInformation.Update(request, OnConsentInfoUpdated);
}

void OnConsentInfoUpdated(FormError consentError)
{
    if (consentError != null)
    {
        // Handle the error.
        UnityEngine.Debug.LogError(consentError);
        return;
    }
    

    // If the error is null, the consent information state was updated.
    // You are now ready to check if a form is available.
    ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
    {
        if (formError != null)
        {
            // Consent gathering failed.
            UnityEngine.Debug.LogError(consentError);
            return;
        }

        // Consent has been gathered.
    });
}

Se você precisar realizar qualquer ação depois que o usuário fizer uma escolha ou dispensar o formulário, coloque essa lógica no Action<FormError> callback do formulário.

Solicitar anúncios

Antes de solicitar anúncios no seu app, verifique se você recebeu o consentimento do usuário que usa . Há dois lugares a serem verificados ao obter o consentimento:

  1. Depois de receber o consentimento na sessão atual.
  2. Imediatamente após chamar Update(). É possível que o consentimento tenha sido dado na sessão anterior. Como prática recomendada de latência, não espere a conclusão do callback para começar a carregar anúncios o mais rápido possível após o início do aplicativo.
.

Se ocorrer um erro durante o processo de solicitação de consentimento, você ainda precisará tentar solicitar anúncios. O SDK do UMP usa o status de consentimento da sessão anterior.

void Start()
{
    // Set tag for under age of consent.
    // Here false means users are not under age of consent.
    ConsentRequestParameters request = new ConsentRequestParameters
    {
        TagForUnderAgeOfConsent = false,
    };

    // Check the current consent information status.
    ConsentInformation.Update(request, OnConsentInfoUpdated);
}

void OnConsentInfoUpdated(FormError consentError)
{
    if (consentError != null)
    {
        // Handle the error.
        UnityEngine.Debug.LogError(consentError);
        return;
    }

    // If the error is null, the consent information state was updated.
    // You are now ready to check if a form is available.
    ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
    {
        if (formError != null)
        {
            // Consent gathering failed.
            UnityEngine.Debug.LogError(consentError);
            return;
        }

        // Consent has been gathered.
        if (ConsentInformation.CanRequestAds())
        {
            MobileAds.Initialize((InitializationStatus initstatus) =>
            {
              // TODO: Request an ad.
            });
        }
    });
    
}

Teste

Se você quiser testar a integração no app durante o desenvolvimento, siga as etapas abaixo para registrar o dispositivo de teste de maneira programática.

  1. Chame Update().
  2. Verifique a saída do registro de uma mensagem parecida com a abaixo, que mostra o ID do dispositivo e como adicioná-lo como um dispositivo de teste:

    Android

    Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.

    iOS

    <UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
  3. Copie o ID do dispositivo de teste para a área de transferência.

  4. Modifique seu código para chamar DebugGeography.TestDeviceHashedIds e transmitir uma lista dos IDs de dispositivos de teste.

void Start()
{
    var debugSettings = new ConsentDebugSettings
    {
        DebugGeography = DebugGeography.TestDeviceHashedIds =
        new List<string>
        {
            "TEST-DEVICE-HASHED-ID"
        }
    };

    // Set tag for under age of consent.
    // Here false means users are not under age of consent.
    ConsentRequestParameters request = new ConsentRequestParameters
    {
        TagForUnderAgeOfConsent = false,
        ConsentDebugSettings = debugSettings,
    };

    // Check the current consent information status.
    ConsentInformation.Update(request, OnConsentInfoUpdated);
}

Forçar uma região geográfica

O SDK do UMP oferece uma maneira de testar o comportamento do seu app como se o dispositivo estivesse localizado no EEE ou no Reino Unido usando the DebugGeography field on ConsentDebugSettings. As configurações de depuração só funcionam em dispositivos de teste.

void Start()
{
    var debugSettings = new ConsentDebugSettings
    {
        // Geography appears as in EEA for debug devices.
        DebugGeography = DebugGeography.EEA,
        TestDeviceHashedIds = new List<string>
        {
            "TEST-DEVICE-HASHED-ID"
        }
    };

    // Set tag for under age of consent.
    // Here false means users are not under age of consent.
    ConsentRequestParameters request = new ConsentRequestParameters
    {
        TagForUnderAgeOfConsent = false,
        ConsentDebugSettings = debugSettings,
    };

    // Check the current consent information status.
    ConsentInformation.Update(request, OnConsentInfoUpdated);
}

Ao testar seu app com o SDK do 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 método Reset() para fazer isso.

ConsentInformation.Reset();