Comece seguindo as instruções no artigo de integração básica e, em seguida, as instruções para qualquer um dos formatos de anúncio que você deseja integrar (anúncios intersticiais ou com recompensa, anúncios em banner, anúncios no formato MREC). Este artigo contém informações complementares e pressupõe que você tenha concluído a integração básica.
O Regulamento Geral sobre a Proteção de Dados (RGPD) entrou em vigor na União Europeia em 25 de maio de 2019. Para estar em conformidade com o RGPD, os desenvolvedores têm duas opções.
- Opção 1 (recomendado): O distribuidor controla o processo de consentimento do RGPD do usuário e comunica as escolhas do usuário à Vungle. Para isso, os desenvolvedores podem coletar o consentimento do usuário usando seus próprios mecanismos, usando a seguir as APIs da Vungle para atualizar ou enviar uma consulta do status de consentimento do usuário. Consulte a seção do exemplo de código abaixo para obter detalhes.
- Opção 2: A Vungle pode lidar com as exigências, exibindo uma caixa de diálogo de consentimento antes de exibir um anúncio para um usuário europeu, e lembrará o consentimento ou rejeição do usuário em anúncios subsequentes.
O método updateConsentStatus
(recomendado na Opção 1) leva o status de consentimento do usuário e a versão da mensagem de consentimento como seus parâmetros.
public static void updateConsentStatus(@NonNull Consent status, @NonNull String consentMessageVersion)
O status de consentimento especificará se o usuário tem OPTED_IN
ou OPTED_OUT
da versão da mensagem exibida. O consentMessageVersion
especifica a versão da política de consentimento controlada pelo distribuidor. Isso permite que você agrupe seus usuários pela versão da mensagem e busque consentimento novamente quando a política de RGPD mudar.
// Usage example of GDPR API
// To set the user's consent status to opted in:
Vungle.updateConsentStatus(Vungle.Consent.OPTED_IN, “1.0.0”);
// To set the user's consent status to opted out:
Vungle.updateConsentStatus(Vungle.Consent.OPTED_OUT, “1.0.0”);
// To find out what the user's current consent status is:
// This will return null if the GDPR Consent status has not been set
// Otherwise, it will return Vungle.Consent.OPTED_IN or Vungle.Consent.OPTED_OUT
Vungle.Consent currentGDPRStatus = Vungle.getConsentStatus();
String consentMessageVersion = Vungle.getConsentMessageVersion();
A partir de 1º de julho de 2020, a Lei de Privacidade do Consumidor da Califórnia (CCPA) será aplicada e os distribuidores devem atualizar para o Android SDK 6.7.0 para cumprir com a CCPA.
O método updateCCPAStatus
obtém o status de consentimento do usuário para especificar se o usuário tem OPTED_IN
ou OPTED_OUT
e o método getCCPAStatus()
retorna o status atual da CCPA do usuário.
public static void updateCCPAStatus(@NonNull final Consent status)
public static Consent getCCPAStatus()
// Usage example of CCPA API
// To set the user's CCPA status to opted in:
Vungle.updateCCPAStatus(Consent.OPTED_IN);
// To set the user's CCPA status to opted out:
Vungle.updateCCPAStatus(Consent.OPTED_OUT);
// To find out what the user's current consent status is:
Consent currentCCPAStatus = Vungle.getCCPAStatus();
A partir do Vungle Android SDK v6.4.11, é possível restringir a transmissão do Android ID usado quando o Google Advertising ID não estiver disponível.
// Set true to opt out for Android ID collection by SDK or false (default) to opt in
VungleSettings vungleSettings = new VungleSettings.Builder()
.setAndroidIdOptOut(true)
.build();
Vungle.init(appId, getApplicationContext(), initCallback, vungleSettings);
A inclusão do Google Play Services no projeto é opcional, mas é recomendado. Ele permite que o Vungle ofereça ao usuário final uma experiência mais personalizada em relação aos anúncios. Recomendamos incluir APIs de subsolo e identificador de anúncios, e também o uso do Google Play Services v11.0.1 ou superior.
Para incluir o Google Play Services, consulte o Guia de configuração do Google. Em seu aplicativo, verifique se o dispositivo tem uma versão suficientemente atualizada do Google Play Services. O Vungle SDK pode usar a API de localização e anúncios do Google Play Services.
-
google.android.gms:play-services-basement:16.0.0
(Recomendado) -
google.android.gms:play-services-ads-identifier:16.0.0
(Necessário para AAID)
Se adicionar o Vungle SDK para Android v6 ao projeto, estará adicionando aproximadamente 700 métodos principais do Vungle, excluindo quaisquer dependências transitivas. Espera-se que uma integração completa, incluindo bibliotecas de terceiros, adicione menos de 4.000 métodos em média. Considere as seguintes sugestões para reduzir o número total de métodos adicionados ao seu projeto:
-
ProGuard: Você pode ativar o ProGuard para reduzir o código do seu projeto. Ele descarta todas as classes não usadas no momento da compilação para reduzir a contagem de método o máximo possível. Você pode ativá-lo configurando
minifyEnabled
comotrue
embuild.gradle
no tipo de compilação adequada e fornecendo as regras que mantêm as classes exigidas pelo projeto. - MultiDex: Se você ainda estiver acima de 65 K no total de métodos, habilitar MultiDex pode ser a única solução fornecida pelo Google. Você deve configurar seu projeto para MultiDex apenas uma vez, mas isto terá impacto no build e no tempo de inicialização do aplicativo.
Se usar o ProGuard, adicione as seguintes linhas ao seu arquivo de configuração do ProGuard:
# Vungle
# Vungle
-dontwarn com.vungle.warren.downloader.DownloadRequestMediator$Status
-dontwarn com.vungle.warren.error.VungleError$ErrorCode
# Google
-dontwarn com.google.android.gms.common.GoogleApiAvailabilityLight
-dontwarn com.google.android.gms.ads.identifier.AdvertisingIdClient
-dontwarn com.google.android.gms.ads.identifier.AdvertisingIdClient$Info
# Moat SDK
-keep class com.moat.** { *; }
-dontwarn com.moat.**
# GSON
-keepattributes *Annotation*
-keepattributes Signature
# Prevent R8 from leaving Data object members always null
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
# OkHttp + Okio
-dontwarn javax.annotation.**
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
-dontwarn org.codehaus.mojo.animal_sniffer.*
-dontwarn okhttp3.internal.platform.ConscryptPlatform
A configuração mínima de espaço em disco foi introduzida no Vungle SDK v6.4.11 para determinar os limites de espaço disponível no dispositivo de um usuário antes do Vungle SDK ser inicializado e buscar anúncios. O valor padrão de setMinimumSpaceForInit
é 51 MB e de setMinimumSpaceForAd
é 50 MB. O tamanho é inserido em bytes.
VungleSettings vungleSettings = new VungleSettings.Builder()
.setMinimumSpaceForInit(51L * 1024L * 1024L) // 51 MB
.setMinimumSpaceForAd(50L * 1024L * 1024L) // 50 MB
.build();
Vungle.init(appId, getApplicationContext(), initCallback, vungleSettings);
A aceleração por hardware está ativada por padrão no aplicativo se o nível da API de destino estiver definido como 14 ou superior. Essa opção deve estar ativada para que o SDK exiba corretamente os anúncios Dynamic Template e MREC. Certifique-se de que esta opção esteja definida como 'true' no nível do aplicativo do seu projeto:
<application android:hardwareAccelerated="true" ...>
Para recuperar programaticamente o número da versão do SDK durante a execução (o que pode ser útil na mediação interna), o Vungle fornece a seguinte string:
com.vungle.warren.BuildConfig.VERSION_NAME
InitCallback
, PlayAdCallback
e LoadAdCallback
terão um código VungleException
quando o retorno de callback onError
for acionado. Você pode usar o código para depurar ou executar ações para corrigir o problema de forma programática.
if (exception.getExceptionCode() == VungleException.VUNGLE_NOT_INTIALIZED) {
// Call routine to initialize SDK
}
Códigos de exceção | Descrição |
CONFIGURATION_ERROR |
Ocorreu um erro de configuração. Verifique o ID do seu aplicativo e os IDs de referência do posicionamento e tente novamente quando a conectividade da rede estiver disponível. |
NO_SERVE |
O servidor de anúncios não encontrou anúncios para o seu lance atual. Tente novamente mais tarde. Esta exceção é um comportamento esperado. |
UNKNOWN_ERROR |
Ocorreu um erro desconhecido. Essa exceção deve ser rara. |
AD_EXPIRED |
O anúncio no cache expirou e não pode mais ser reproduzido. Carregue outro anúncio. |
MISSING_REQUIRED_ARGUMENTS_FOR_INIT |
Certifique-se de que todos os parâmetros Vungle.init() marcados como não nulos (NonNull) sejam fornecidos, pois são essenciais para o funcionamento do SDK. |
APPLICATION_CONTEXT_REQUIRED |
Forneça o Context do aplicativo para que nosso SDK possa continuar a oferecer suporte a nossa API além do ciclo de vida de Activity . |
OPERATION_ONGOING |
Já existe uma operação em andamento para a ação solicitada. Aguarde até que a operação seja concluída antes de iniciar outra. |
VUNGLE_NOT_INTIALIZED |
O Vungle não foi inicializado ou não se inicializa mais. Chame Vungle.init() para reinicializar. |
AD_UNABLE_TO_PLAY |
Não é possível reproduzir o anúncio. |
AD_FAILED_TO_DOWNLOAD |
Falha no download do anúncio. |
PLACEMENT_NOT_FOUND |
O posicionamento não é válido. |
SERVER_RETRY_ERROR |
O servidor remoto respondeu com HTTP Retry-After, o SDK tentará novamente esta solicitação. |
A configuração "permitir backup" está habilitada por padrão para seu aplicativo para a API 23 ou superior. A regra de backup garante que todos os dados do aplicativo tenham backup para a operação adequada do Vungle SDK e do próprio aplicativo. Se não tiver desabilitado a configuração "permitir backup" nem tiver especificado suas próprias regras de backup, você deve fornecer regras XML adicionais para definir quais arquivos em nosso sistema de arquivos SDK devem ser excluídos do backup automático.
<full-backup-content>
<exclude domain="file" path="vungle" />
<exclude domain="file" path="vungle_cache" />
<exclude domain="external" path="vungle_cache" />
<exclude domain="database" path="vungle_db" />
<exclude domain="sharedpref" path="com.vungle.sdk.xml" />
</full-backup-content>
- Adicione regras de exclusão do Vungle SDK ao arquivo .xml existente que tem as próprias regras de exclusão do seu aplicativo.
- Configure
fullBackupContent
para ser substituído no nível do aplicativo e adicione a regra de exclusão do Vungle SDK ao .xml existente.
- Crie um novo arquivo XML com as regras de exclusão do Vungle.
- Coloque o arquivo .xml no diretório
res/xml
. - Adicione
fullBackupContent
na tag do aplicativo deAndroidManifest.xml
com o nome do arquivo .xml que você criou acima.<application android:fullBackupContent="@xml/vungle_backup_rule">
Se o backup não for necessário para seu aplicativo, você pode simplesmente desativá-lo na tag do aplicativo:
<application
android:allowBackup="false" >