O SDK da plataforma de mensagens de usuários (UMP, na sigla em inglês) do Google é uma ferramenta de privacidade e mensagens para ajudar você a gerenciar as escolhas de privacidade. Para mais informações, consulte Sobre a página "Privacidade e mensagens".
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.
Coletar consentimento
Para coletar o consentimento, siga estas etapas:
- Solicitar as informações mais recentes de consentimento do usuário.
- Carregue e apresente um formulário de consentimento, se necessário.
Solicitação de informações de consentimento
Solicite uma atualização das informações de consentimento do usuário a cada inicialização do app usando Update()
. 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.
Carregue e apresente um formulário de mensagem de privacidade, se necessário
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.
O código abaixo demonstra como solicitar as informações de consentimento mais recentes do usuário. Se necessário, o código é carregado e apresenta um formulário de mensagem de privacidade:
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// 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.
});
}
Opções de privacidade
Alguns formulários de mensagens de privacidade são apresentados a partir de um ponto de entrada das opções de privacidade renderizado pelo editor, permitindo que os usuários gerenciem essas opções 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.
Para implementar um ponto de entrada de opções de privacidade, siga estas etapas:
- Depois de chamar
Update()
, consultePrivacyOptionsRequirementStatus
para determinar se um ponto de entrada de opções de privacidade é necessário. - Se necessário, adicione um elemento de interface visível e interativo ao app para servir como ponto de entrada das opções de privacidade. Se um ponto de entrada de privacidade não for necessário, configure o elemento da interface para não ser visível e interativo.
- Apresente o formulário de opções de privacidade usando
ShowPrivacyOptionsForm()
.
O exemplo de código a seguir demonstra essas etapas:
[SerializeField, Tooltip("Button to show the privacy options form.")]
private Button _privacyButton;
private void Start()
{
// Enable the privacy settings button.
if (_privacyButton != null)
{
_privacyButton.onClick.AddListener(UpdatePrivacyButton);
// Disable the privacy settings button by default.
_privacyButton.interactable = false;
}
}
/// <summary>
/// Shows the privacy options form to the user.
/// </summary>
public void ShowPrivacyOptionsForm()
{
Debug.Log("Showing privacy options form.");
ConsentForm.ShowPrivacyOptionsForm((FormError showError) =>
{
if (showError != null)
{
Debug.LogError("Error showing privacy options form with error: " + showError.Message);
}
// Enable the privacy settings button.
if (_privacyButton != null)
{
_privacyButton.interactable =
ConsentInformation.PrivacyOptionsRequirementStatus ==
PrivacyOptionsRequirementStatus.Required;
}
});
}
Solicitar anúncios
Antes de solicitar anúncios no seu app, verifique se você recebeu o consentimento
do usuário usando
CanRequestAds()
. Há dois
lugares para verificar ao coletar o consentimento:
- Após o consentimento ser coletado na sessão atual.
- Imediatamente após chamar
Update()
. É possível que o consentimento tenha sido dado na sessão anterior. Como prática recomendada para latência, recomendamos não esperar a conclusão do callback para que você possa começar a carregar anúncios assim que possível após o lançamento do app.
Se ocorrer um erro durante o processo de solicitação de consentimento, verifique se você consegue solicitar anúncios. O SDK do UMP usa o status de consentimento da sessão anterior.
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// 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 estas etapas para registrar o dispositivo de teste de forma programática. Remova o código que define esses IDs de dispositivo de teste antes de lançar o app.
- Ligue para a
Update()
. Verifique a saída do registro para encontrar uma mensagem semelhante ao exemplo a seguir, 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]
Copie o ID do dispositivo de teste para a área de transferência.
Modifique seu código para chamar
DebugGeography.TestDeviceHashedIds
e transmita uma lista dos IDs do dispositivo de teste.void Start() { var debugSettings = new ConsentDebugSettings { TestDeviceHashedIds = new List<string> { "TEST-DEVICE-HASHED-ID" } }; // Create a ConsentRequestParameters object. ConsentRequestParameters request = new ConsentRequestParameters { ConsentDebugSettings = debugSettings, }; // Check the current consent information status. ConsentInformation.Update(request, OnConsentInfoUpdated); }
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.
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"
}
};
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters
{
ConsentDebugSettings = debugSettings,
};
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
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.
ConsentInformation.Reset();
Exemplos no GitHub
Veja um exemplo completo da integração do SDK da UMP abordado nesta página em HelloWorld.