Introdução ao Vungle - SDK v.6 para Android ou Amazon

Use este artigo para integrar o Vungle SDK para Android ou Amazon. Começando com v.5.3.0 do nosso SDK para Android, o Vungle é compatível com plataformas Amazon OS 5.4 e superiores. As etapas de integração do SDK da Amazon são as mesmas que as do Android, mas certifique-se de usar seu ID de aplicativo da Amazon para fazer a integração com a Amazon.

Neste artigo:

RGPD: Implementação recomendada

O Regulamento Geral sobre a Proteção de Dados (RGPD) entrou em vigor na União Europeia em 25 de maio. Para entrar em conformidade com o RGPD, 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 Instruções de implementação recomendadas para RGPD 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.

Antes de começar

Destaques do lançamento

  • Rápido: O desempenho de inicialização e cache do anúncio é até cinco vezes maior que na v5
  • Leve: contagens de método reduzidas
    • SDK principal: 750 métodos
    • Integração completa, incluindo bibliotecas de terceiros: aprox. 4.000 métodos
  • Conformidade com RGPD: A Vungle fornece duas opções para obter consentimento do usuário, e tanto a Vungle quanto o distribuidor podem controlar esse processo. Novas chamadas de API foram adicionadas.

Requisitos

  • Android 4.0 (Ice Cream Sandwich - API versão 14) ou superior
  • Biblioteca de suporte do Android v26 ou superior
  • Android targetSdk versão 26 ou inferior

Aplicativo de amostra

Etapa 1. Incluir o Vungle SDK no seu projeto

O Vungle SDK está disponível de duas maneiras: como um AAR pelo Maven ou como integração JAR.

Opção 1. Integração AAR

Abra o build.gradle no nível do projeto e adicione o URL maven na seção Projeto todo.

allprojects {
repositories {
maven {
url 'https://jitpack.io'
}
}
}

Abra o arquivo build.gradle do seu projeto e adicione as dependências de compilação na seção Dependencies.

dependencies { … // Vungle SDK
compile 'com.github.vungle:vungle-android-sdk:6.2.5'
// Optional Google Play Services - Location and Basement
compile 'com.google.android.gms:play-services-basement:11.0.4'
compile 'com.google.android.gms:play-services-location:11.0.4' … }

Se incluir o Vungle SDK através do Maven, você pode pular a "Etapa 2. Importar o Vungle SDK."

Opção 2. Integração JAR

  1. Faça download do Vungle SDK v.6, descompacte-o, acesse a pasta libs, copie todos os JARs e adicione-os à pasta libs do projeto.

    image1.png
  2. Abra o build.gradle no nível do projeto e atualize a seção repositories:

    allprojects {
    repositories {
    jcenter()
    }
    }
  3. Abra o arquivo do nível do aplicativo build.gradle do seu aplicativo e adicione outras dependências na seção Dependencies.

    dependencies { … // Vungle SDK compile files('libs/vungle-android-sdk-6.2.5.jar') // Required Third-party Dependencies compile files('libs/android-job-1.2.0.jar') compile files('libs/cat-1.0.5.jar') compile files('libs/converter-gson-2.2.0.jar') compile files('libs/fetch-1.1.5.jar') compile files('libs/gson-2.7.jar') compile files('libs/logging-interceptor-3.7.0.jar') compile files('libs/okhttp-3.7.0.jar') compile files('libs/okio-1.12.0.jar') compile files('libs/retrofit-2.2.0.jar') compile files('libs/VNG-moat-mobile-app-kit-2.2.0.jar') // Google Play Services compile 'com.google.android.gms:play-services-gcm:11.0.4' // Required compile 'com.google.android.gms:play-services-basement:11.0.4' // Optional compile 'com.google.android.gms:play-services-location:11.0.4' // Optional // Support libraries compile 'com.android.support:support-v4:26.0.1' … } 
  4. Se incluir o Vungle SDK manualmente, passe para a "Etapa 2. Importar o Vungle SDK."

  5. Atualize o AndroidManifest.xml adicionando as seguintes linhas ao seu AndroidManifest.xml a atribuindo o nome do item do aplicativo ao nome de classe do aplicativo para multiDex:
    <!--Required Permissions-->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <!--Optional Permissions-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <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"
    android:networkSecurityConfig="@xml/network_security_config" >

    <activity android:name=".MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

    <!-- Google Play Services -->
    <meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

    <!-- Vungle -->
    <activity
    android:name="com.vungle.warren.ui.VungleActivity"
    android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
    android:launchMode="singleTop"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

    <!-- android-job -->
    <service
    android:name="com.evernote.android.job.v21.PlatformJobService"
    android:exported="false"
    android:permission="android.permission.BIND_JOB_SERVICE" />
    <service
    android:name="com.evernote.android.job.v14.PlatformAlarmService"
    android:exported="false"
    android:permission="android.permission.BIND_JOB_SERVICE" />
    <service
    android:name="com.evernote.android.job.v14.PlatformAlarmServiceExact"
    android:exported="false" />
    <receiver
    android:name="com.evernote.android.job.v14.PlatformAlarmReceiver"
    android:exported="false" >
    <intent-filter>
    <!-- Keep the filter for legacy intents -->
    <action android:name="com.evernote.android.job.v14.RUN_JOB" />
    <action android:name="net.vrallev.android.job.v14.RUN_JOB" />
    </intent-filter>
    </receiver>
    <receiver
    android:name="com.evernote.android.job.JobBootReceiver"
    android:exported="false" >
    <intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
    <action android:name="android.intent.action.QUICKBOOT_POWERON" />
    <action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
    <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
    </intent-filter>
    </receiver>
    <service
    android:name="com.evernote.android.job.gcm.PlatformGcmService"
    android:enabled="true"
    tools:replace="android:enabled"/>
    <intent-filter>
    <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
    </intent-filter>
    </service>
    <service
    android:name="com.evernote.android.job.JobRescheduleService"
    android:exported="false"
    android:permission="android.permission.BIND_JOB_SERVICE" />

    </application>

Etapa 2. Importar o Vungle SDK

import com.vungle.warren.Vungle; import com.vungle.warren.AdConfig; // Custom ad configurations import com.vungle.warren.InitCallback; // Initialization callback import com.vungle.warren.LoadAdCallback; // Load ad callback import com.vungle.warren.PlayAdCallback; // Play ad callback import com.vungle.warren.VungleNativeAd; // Flex-Feed ad

Etapa 3. Inicializar o Vungle SDK

O método de inicialização segue os seguintes parâmetros:

  • Lista de strings de substituição dos IDs de referência de posicionamento usados
  • ID do aplicativo Vungle
  • Contexto do aplicativo
  • InitCallback
    • onSuccess: notifica quando o SDK foi inicializado com êxito
    • onError: notifica quando há falha na inicialização
      • gera IllegalArgumentException se InitCallback for nulo
      • gera VungleException se os argumentos necessários estiverem ausentes ou forem inválidos
    • onAutoCacheAdAvailable: notifica quando o posicionamento com cache automático tem um anúncio disponível para ser reproduzido

O onAutoCacheAdAvailablecallback está disponível como parte do callback de inicialização porque o SDK tentará continuamente fazer o cache de um anúncio do posicionamento com cache automático sempre que um anúncio não estiver em cache previamente. Isso inclui casos em que o SDK é iniciado pela primeira vez ou quando um anúncio com cache prévio for reproduzido no posicionamento. Essa condição continuará verdadeira até que o processo acabe ou que a instância do Vungle seja recuperada pela coleta de lixo. Em todos os posicionamentos que não tiverem cache automático, o loadAd deve ser explicitamente emitido conforme descrito na "Etapa 5. Carregar um anúncio".

private final List placement_collection = Arrays.asList("PLACEMENT_1", "PLACEMENT_2", "PLACEMENT_3"); Vungle.init(placement_collection, app_id, this.getApplicationContext(), new InitCallback() { @Override public void onSuccess() { // Initialization has succeeded and SDK is ready to load an ad or play one if there // is one pre-cached already } @Override public void onError(Throwable throwable) { // Initialization error occurred - throwable.getLocalizedMessage() contains error message } @Override public void onAutoCacheAdAvailable(String placementId) { // Callback to notify when an ad becomes available for the auto-cached placement // // NOTE: This callback works only for the auto-cached placement. Otherwise, please use // LoadAdCallback with loadAd API for loading placements. } }; 

Você pode verificar a qualquer momento se o Vungle SDK está inicializado. Para isso, faça a chamada do método isInitialized:

public static boolean isInitialized()

Etapa 4. Ouvinte de eventos

Implemente agora o LoadAdCallback em eventos de carregamento de anúncios e o PlayAdCallback em eventos de reprodução de anúncios se quiser usar o callback genérico em todos os eventos. Caso contrário, pule para a "Etapa 5. Carregar um anúncio" para implementar callbacks em linha.

// Implement LoadAdCallback
private final LoadAdCallback vungleLoadAdCallback = new LoadAdCallback() {
@Override
public void onAdLoad(String placementReferenceId) {
// Placement reference ID for the placement to load ad assets
}

@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Placement reference ID for the placement that failed to download ad assets
// Throwable contains error message
}
};
// Implement PlayAdCallback
private final PlayAdCallback vunglePlayAdCallback = new PlayAdCallback() {
@Override
public void onAdStart(String placementReferenceId) {
// Placement reference ID for the placement to be played
}

@Override
public void onAdEnd (String placementReferenceId, boolean completed, boolean isCTAClicked) {
// Placement reference ID for the placement that has completed ad experience
// completed has value of true or false to notify whether video was
// watched for 80% or more
// isCTAClkcked has value of true or false to indicate whether download button
// of an ad has been clicked by the user
}

@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Placement reference ID for the placement that failed to play an ad
// Throwable contains error message
}
};

Etapa 5. Carregar um anúncio

No Vungle SDK para Android v6, é permitido um callback por carga, em vez de depender do VungleAdEventListener global da v5. O LoadAdCallback será notificado sobre o estado de carregamento da chamada a que foi atribuído. O SDK v6 só faz referência a esse callback e não o armazena em lugar algum. É responsabilidade do chamador garantir que o callback seja gerenciado corretamente.

public static void loadAd(@NonNull final String id, @Nullable LoadAdCallback callback) 

O SDK gerencia o download de ativos de anúncio do posicionamento com cache automático, assim, não há necessidade de invocar esse método no posicionamento com cache automático. Em outros posicionamentos, o método loadAd deve ser invocado e concluído com êxito antes que o SDK execute um anúncio no posicionamento. O callback onAdLoad será acionado quando isso acontecer.

// Load Ad Implementation
if (Vungle.isInitialized()) {
Vungle.loadAd("PLACEMENT_ID", new LoadAdCallback() {
@Override
public void onAdLoad(String placementReferenceId) { }

@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Load ad error occurred - throwable.getLocalizedMessage() contains error message
}
};
}

Etapa 6. Verificar a disponibilidade do anúncio

Use o método estático canPlayAdmethod para verificar se há um anúncio disponível para ser reproduzido antes de invocar o playAd() method

public static boolean canPlayAd(@NonNull String id)

Etapa 7. Reproduzir um anúncio

Para reproduzir um anúncio, invoque o método playAd, com ID de referência de posicionamento, AdConfig opcional (nulo se não estiver em uso) e um monitor de eventos PlayAdCallback, que será notificado sobre êxitos ou falhas na reprodução do anúncio.

public static void playAd(@NonNull final String id, final AdConfig settings, @Nullable final PlayAdCallback listener) 

Você deve sempre verificar a disponibilidade do anúncio chamando o método canPlayAd antes de invocar o método playAd. Você também deve se certificar de que um playAd adicional não seja emitido antes de receber um callback onAdEnd ou onError da chamada playAd inicial, porque o anúncio não será renderizado corretamente se o playAd for chamado de forma repetitiva constantemente.

if (Vungle.canPlayAd("PLACEMENT_ID")) {
Vungle.playAd("PLACEMENT_ID", new AdConfig, new PlayAdCallback() {
@Override
public void onAdStart(String placementReferenceId) { }

@Override
public void onAdEnd(String placementReferenceId, boolean completed, boolean isCTAClicked) { }

@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Play ad error occurred - throwable.getLocalizedMessage() contains error message
}
});
}

Reinicialize o SDK quando onError

Em raras ocasiões, os recursos podem ficar limitados, fazendo com que o sistema desaloque alguma parte do Vungle SDK ou algumas das dependências de terceiros exigidas pelo nosso SDK. Nesses casos, o LoadAdCallback and PlayAdCallback dispara um callback onError() com um objeto acionável com um código de ‘VungleException.VUNGLE_NOT_INTIALIZED’. Isso indica que o Vungle SDK está em um estado inoperante e deve ser reinicializado.

@Override public void onError(String placementReferenceID, Throwable throwable) { try { VungleException ex = (VungleException) throwable; if (ex.getExceptionCode() == VungleException.VUNGLE_NOT_INTIALIZED) { initializeVungleSDK(); } } catch (ClassCastException cex) { Log.d(LOG_TAG, cex.getMessage()); } } 

Anúncios do Native Flex

Anúncios Flex-View

Os anúncios Flex-View são carregados e reproduzidos como anúncios normais em tela cheia. Basta chamar o ID de referência de posicionamento configurado com o tipo de posicionamento com tipo "Flex-View" no painel.

O Flex-View pode ser fechado programaticamente emitindo o método closeFlexViewAd com o ID de referência de posicionamento que estiver em execução no momento no anúncio Flex-View.

public static boolean closeFlexViewAd(@NonNull final String placementReferenceId)

Há uma outra opção para fechar automaticamente os anúncios do Flex-View depois do intervalo especificado. Consulte a seção Opções de configuração de anúncios.

Anúncios Flex-Feed

O formato de anúncio Flex-Feed não requer tela cheia. Em vez disso, o distribuidor determina as dimensões e a localização exatas do contêiner de anúncios dentro do aplicativo. Esses contêineres de anúncios podem estar em visualizações de coleção ou em lista/tabela.

Carregamento de anúncios Flex-Feed

O distribuidor deve carregar um anúncio intersticial no contêiner do Flex-Feed. O carregamento de um anúncio Flex-Feed é semelhante ao de um anúncio intersticial ou de uma tela cheia, no entanto, o posicionamento deve estar configurado para ser compatível com Flex-Feed. Fale com seu gerente de conta da Vungle para ativar seu posicionamento para Flex-Feed.

Exibição de anúncios Flex-Feed

A exibição de anúncios Flex-Feed é diferente da exibição de anúncios em tela cheia. Com os anúncios Flex-Feed, você deve primeiro criar um contêiner para o anúncio. Esse contêiner é um Layout. Você pode colocar o RelativeLayout em qualquer lugar na tela. O anúncio é dimensionado em qualquer tamanho de contêiner, mas lembre-se de que uma resolução muito baixa torna os anúncios menos visíveis. Você deve então chamar o Vungle.getNativeAd para obter o objeto de anúncio do Flex-Feed e chamar a função addView para associar o contêiner ao anúncio Flex-Feed.

private RelativeLayout flexfeed_container = findViewById(...); VungleNativeAd vungleNativeAd = Vungle.getNativeAd("FLEXFEED_ID", vunglePlayAdCallback); View nativeAdView = vungleNativeAd.renderNativeView(); flexfeed_container.addView(nativeAdView); 

Encerramento de anúncios Flex-Feed

Como a visualização do anúncio Flex-Feed foi adicionada à visualização de contêiner, ela também deve ser removida se a visualização do anúncio desaparecer da tela, se a atividade ou fragmento for destruído ou se o contêiner de exibição principal for reciclado ou destruído. Sem o encerramento do anúncio, esse evento causará um comportamento inesperado no seu aplicativo.

private VungleNativeAd vungleNativeAd; // Calling finishDisplayingAd when you want to finish displaying Flex-Feed Ad will acionará onAdEnd e avisará quando for possível remover o contêiner de exibição do Flex-Feed secundário
vungleNativeAd.finishDisplayingAd(); // And removing empty ad view from container @Override public void onAdEnd(String id, boolean completed) { … parentView.remove(nativeAdView); vungleNativeAd = null; … }

Anexação e desanexação do estado de um anúncio Flex-Feed

Se o usuário fizer rolagem até o ponto em que o anúncio em vídeo não é mais visível na tela, o distribuidor deve pausar o vídeo e continuar quando estiver visível novamente. Para controlar os estados de pausa e continuação, chame setAdVisibility() na instância VungleNativeAd, e defina-o como "true" se o vídeo estiver visível e como "false" se o vídeo sair da tela. O setAdVisibility não deve ser confundido com a visibilidade da Exibição: esse configurador informa o Vungle SDK se a visualização do anúncio nativo está visível ou não, e conforme o caso, o SDK pausa/continua a reprodução do vídeo.

Para pausar um anúncio Flex-Feed:

vungleNativeAd.setAdVisibility(false);

Para continuar com um anúncio Flex-Feed:

vungleNativeAd.setAdVisibility(true);

Configurações avançadas

Google Play Services (opcional)

Se incluir os Google Play Services no seu projeto, você permite que o Vungle ofereça ao usuário final uma experiência de anúncios mais personalizada. O Google Cloud Messaging é uma API obrigatória, enquanto as APIs Google Location and Activity Recognition e o Google Location and Basement são opcionais. Recomendamos usar a versão 11.0.1 ou mais recente.

Para incluir o Google Play Services, convém usar 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 opcionalmente usa a localização e API de anúncios do Google Play Services.

  • google.android.gms:play-services-gcm:11.0.1 // Required
  • google.android.gms:play-services-basement:11.0.1 // Recommended
  • google.android.gms:play-services-location:11.0.1 // Recommended

Redução da contagem de método

Se adicionar o Vungle SDK para Android v6 ao projeto, estará adicionando aproximadamente 750 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 quaisquer classes não usadas no momento da compilação para reduzir a contagem de método ao máximo. Você pode ativá-lo especificando minifyEnabled true em build.gradle no tipo de compilação adequada e ao fornecer as regras que mantêm as classes exigidas pelo projeto.

  • MultiDex: Se você ainda estiver com uma contagem de métodos superior a 65 mil, a ativação do multiDex pode ser a única solução fornecida pela Google. Você precisa configurar seu projeto para multiDex apenas uma vez, mas isto terá impacto na compilação e no tempo de inicialização do aplicativo.

Proguard

Se estiver usando o Proguard, adicione as seguintes linhas ao arquivo de configuração do ProGuard:

# Vungle -keep class com.vungle.warren.** { *; } # Evernote -dontwarn com.evernote.android.job.gcm.** -dontwarn com.evernote.android.job.GcmAvailableHelper -dontwarn com.google.android.gms.ads.identifier.** -keep public class com.evernote.android.job.v21.PlatformJobService -keep public class com.evernote.android.job.v14.PlatformAlarmService -keep public class com.evernote.android.job.v14.PlatformAlarmReceiver -keep public class com.evernote.android.job.JobBootReceiver -keep public class com.evernote.android.job.JobRescheduleService -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -keep class com.google.android.gms.internal.** { *; } # Moat SDK -keep class com.moat.** { *; } -dontwarn com.moat.**

Observação sobre threads de IU

Os callbacks são executados em uma thread em segundo plano, de modo que qualquer interação ou atualizações de IU resultantes de um evento de callback deve ser passado à thread da IU principal antes da execução. Há duas formas comuns de executar o código no thread de IU:

Opções de configuração de anúncios

Configuração de anúncios

Você tem a opção de personalizar os anúncios individuais reproduzidos, fornecendo um novo objeto adConfig em playAd. O AdConfig é um objeto e pode ser nulo (neste caso, o anúncio será reproduzido com configurações padrão) ou não-nulo com substituições ao configurador AdConfig. Veja a seguir um exemplo de como usar o AdConfig:

Vungle.playAd(placementReferenceID, null, vunglePlayAdCallback);

O caso acima usa nulo como um objeto adConfig; você pode fazer isso se não quiser definir configurações adicionais. Use um objeto AdConfig como mostrado aqui:

AdConfig adConfig = new AdConfig(); adConfig.setAutoRotate(true); adConfig.setMuted(true); Vungle.playAd(placementReferenceID, adConfig, vunglePlayAdCallback);

A tabela a seguir mostra todas as opções AdConfig disponíveis.

Opção

Descrição

setBackButtonImmediatelyEnabled

true se o botão Voltar for ativado antes da exibição do botão para fechar o anúncio, false em caso contrário

setFlexViewCloseTime

tem um valor inteiro maior ou igual a 0 que especifica o número de segundos para que o anúncio Flex-View seja fechado automaticamente

setImmersiveMode

true se o modo imersivo for ativado em dispositivos KitKat ou superiores, false caso contrário

setAutoRotate

true se o anúncio em vídeo fizer rotação automática, false se seguir a orientação do anúncio em vídeo

setMuted

true se o vídeo começar com as configurações de áudio correspondentes à do aplicativo em questão, false se começar mudo independentemente

setOrdinal

Tem um valor inteiro ordinal para rastrear o número de anúncios que foram reproduzidos na mesma sessão

setTransitionAnimationEnabled

true se a animação da transição de vídeo for ativada, false se for desativada

Você pode usar o mesmo objeto AdConfig para vários IDs de referência de posicionamento de anúncios reproduzidos.

Configuração adicional de anúncio com recompensa

Você pode usar o objeto do Vungle para definir configurações de vídeo com recompensa.

Opção

Descrição

setIncentivizedFields(@Nullable String userID, @Nullable String title, @Nullable String body, @Nullable String keepWatching, @Nullable String close)

Quando um usuário tenta fechar um vídeo com recompensa, um pop-up será exibido para confirmar o que o usuário deseja fazer. Você pode personalizar o pop-up usando essa configuração. Use null quando não quiser modificar o valor padrão; por exemplo, se quiser apenas alterar o ID do usuário.

Configure um anúncio com recompensa de seguinte forma:

Vungle.setIncentivizedFields("user1","title1","body1","keepwatching1","close1"); Vungle.playAd("YOUR_APP_ID", AdConfig, vunglePlayAdCallback);

Lista de posicionamentos válidos

Um método auxiliar que retorne a coleção de strings contendo todos os IDs de referência de posicionamento da sessão em curso.

public static Collection getValidPlacements()

Instruções para a implementação recomendada do RGPD

Para usar as APIs da Vungle para atualizar ou consultar o status de consentimento do usuário (como recomendado na Opção 1 do RGPD: Implementação recomendada da Vungle), use as funções a seguir:

 // To set the user's consent status to opted in: Vungle.updateConsentStatus(Vungle.Consent.OPTED_IN); // To set the user's consent status to opted out: Vungle.updateConsentStatus(Vungle.Consent.OPTED_OUT); // To find out what the user's current consent status is: Vungle.Consent currentStatus = Vungle.getConsentStatus(); 

Aceleração de hardware

A aceleração de hardware está ativada por padrão 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 com Modelo Dinâmico e Native Flex. Certifique-se de que esta opção esteja definida como 'true' em seu projeto:

<application android:hardwareAccelerated="true" ...>

Recuperação do número da versão do SDK

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

Outras observações

O Android Studios tem um problema conhecido no qual você pode receber a falha mostrada abaixo. Se tiver o Instant Run mais recente do Android Studios, desative-o para se livrar dessa falha.

1-20 13:53:03.649 27642-27828/com.publisher.sample W/GooglePlayServicesUtil: Google Play services out of date. Requires 10240000 but found 9879438 11-20 13:53:03.659 27642-27828/com.publisher.sample W/VungleDevice: Google Play Services not available: SERVICE_VERSION_UPDATE_REQUIRED 11-20 13:53:05.679 27642-27642/com.publisher.sample D/Event: No subscribers registered for event class com.vungle.publisher.lu 11-20 13:53:05.679 27642-27642/com.publisher.sample D/Event: No subscribers registered for event class de.greenrobot.event.NoSubscriberEvent
Tem mais dúvidas? Envie uma solicitação

Comentários