Anúncios de abertura do aplicativo

Os anúncios de abertura de aplicativos são um formato de anúncio especial para monetizar as telas de carregamento do seu app. Esses anúncios podem ser fechados a qualquer momento e foram criados para serem veiculados:

  • Quando o app é aberto.
  • Quando o app é trazido para o primeiro plano.
  • Quando o usuário volta do segundo plano para o app.

Este guia mostrará como integrar anúncios exibidos ao abrir um aplicativo Android. Além de exemplos de código e instruções, contém recomendações específicas aos formatos e links para recursos adicionais.

Aparência

Os anúncios de abertura do aplicativo incluem um botão Go to the app para que os usuários saibam que estão no seu aplicativo e possam fechar o anúncio. Veja um exemplo de como este formato de anúncio pode se apresentar:

Pré-requisito

  1. Siga os passos de integração do SDK descritos em Início rápido.
  2. Primeiro, é preciso inicializar o SDK de publicidade.
  3. Certifique-se de possuir a última Yandex Mobile Ads SDK versão. Se estiver usando mediação, atualize para a single build mais recente.

Termos

  • Inicialização a frio é a inicialização de um aplicativo que não está na RAM, criando uma nova sessão de aplicativo.
  • Inicialização a quente é a alternação do aplicativo do modo de segundo plano, quando o aplicativo está pausado na RAM, para o modo de primeiro plano.

Implementação

  1. Inicialize o SDK ao inicializar o aplicativo.
  2. Crie e configure o objeto carregador de anúncios AppOpenAdLoader.
  3. Defina o listener do método de callback AppOpenAdLoadListener para enviar notificações quando os anúncios são carregados com êxito ou não.
  4. Carregar o anúncio usando o método loadAd(AdRequest, AppOpenAdLoadListener).
  5. Usar LifecycleEventObserver para lidar com mudanças de status do aplicativo e exibir anúncios de abertura do aplicativo.
  6. Antes de renderizar o anúncio, defina o listener do método de callback do anúncio AppOpenAdEventListener.
  7. Veicule o anúncio usando o método show(Activity).
  8. Liberar os recursos.

Principais etapas

  1. Inicialize o SDK ao inicializar o aplicativo.

    YandexAds.initialize(this) {
        // Agora é possível usar anúncios
    }
    
    YandexAds.initialize(this, () -> {
        // Agora é possível usar anúncios
    });
    
  2. Crie e configure o objeto carregador de anúncios AppOpenAdLoader.

    Você vai precisar da ID de posicionamento do anúncio obtida na interface da Yandex Advertising Network (AD_UNIT_ID).

    É possível ampliar os parâmetros de solicitação de anúncios com a classe AdRequest.Builder() para incluir na solicitação de anúncio informações sobre interesses do usuário, contexto da página, localização e outros dados adicionais. O acréscimo de mais contexto às solicitações de anúncios pode melhorar a qualidade dos anúncios consideravelmente. Para saber mais, consulte Segmentação de anúncios.

    val appOpenAdLoader: AppOpenAdLoader = AppOpenAdLoader(application)
    val AD_UNIT_ID = "R-M-XXXXXX-Y" // para depuração, você pode usar "demo-appopenad-yandex"
    val adRequest = AdRequest.Builder(AD_UNIT_ID).build()
    
    final AppOpenAdLoader appOpenAdLoader = AppOpenAdLoader(application);
    final String AD_UNIT_ID = "R-M-XXXXXX-Y"; // para depuração, você pode usar "demo-appopenad-yandex"
    final AdRequest adRequest = new AdRequest.Builder(AD_UNIT_ID).build();
    
  3. Defina o listener do método de callback AppOpenAdLoadListener para enviar notificações quando os anúncios são carregados com êxito ou não.

    val appOpenAdLoadListener = object : AppOpenAdLoadListener {
       override fun onAdLoaded(appOpenAd: AppOpenAd) {
           // O anúncio foi carregado com sucesso. Agora você pode exibir o anúncio carregado.
           this@Activity.appOpenAd = appOpenAd
       }
    
       override fun onAdFailedToLoad(adRequestError: AdRequestError) {
           // O anúncio não carregou, com AdRequestError.
           // Tentar carregar outro anúncio a partir do método onAdFailedToLoad() é fortemente desencorajado.
       }
    }
    
    AppOpenAdLoadListener appOpenAdLoadListener = new AppOpenAdLoadListener() {
        @Override
        public void onAdLoaded(@NonNull final AppOpenAd appOpenAd) {
            // O anúncio foi carregado com sucesso. Agora você pode exibir o anúncio carregado.
            mAppOpenAd = appOpenAd;
        }
    
        @Override
        public void onAdFailedToLoad(@NonNull final AdRequestError adRequestError) {
            // O anúncio não carregou, com AdRequestError.
            // Tentar carregar outro anúncio a partir do método onAdFailedToLoad() é fortemente desencorajado.
        }
    };
    
  4. Carregar o anúncio usando o método loadAd(AdRequest, AppOpenAdLoadListener).

     private fun loadAppOpenAd() {
        appOpenAdLoader.loadAd(adRequest, appOpenAdLoadListener)
     }
    
     private void loadAppOpenAd() {
         appOpenAdLoader.loadAd(adRequest, appOpenAdLoadListener);
     }
    
  5. Usar LifecycleEventObserver para lidar com mudanças de status do aplicativo e exibir anúncios de abertura do aplicativo.

    val processLifecycleObserver = DefaultProcessLifecycleObserver(
        onProcessCameForeground = ::showAppOpenAd
    )
    ProcessLifecycleOwner.get().lifecycle.addObserver(processLifecycleObserver)
    
    final DefaultProcessLifecycleObserver processLifecycleObserver = new DefaultProcessLifecycleObserver() {
        @Override
        public void onProcessCameForeground() {
            showAppOpenAd();
        }
    }
    
    ProcessLifecycleOwner.get().getLifecycle().addObserver(processLifecycleObserver);
    
  6. Antes de renderizar o anúncio, defina o listener do método de callback do anúncio AppOpenAdEventListener.

    private inner class AdEventListener : AppOpenAdEventListener {
        override fun onAdShown() {
            // Convocado quando o anúncio é exibido.
        }
    
        override fun onAdFailedToShow(adError: AdError) {
            // Convocado quando o anúncio deixa de ser exibido.
        }
    
        override fun onAdDismissed() {
            // Convocado quando o anúncio é descartado.
            // Libere recursos após o descarte e pré-carregue um novo anúncio.
            clearAppOpenAd()
            loadAppOpenAd()
        }
    
        override fun onAdClicked() {
            // Convocado quando há o registro de clique em um anúncio.
        }
    
        override fun onAdImpression(impressionData: ImpressionData?) {
            // Convocado quando há o registro de impressão de um anúncio.
            // Obter dados de receita em nível de impressão no argumento.
        }
    }
    
    private val appOpenAdEventListener = AdEventListener()
    appOpenAd?.setAdEventListener(appOpenAdEventListener)
    
    AppOpenAdEventListener appOpenAdEventListener = new AppOpenAdEventListener() {
       @Override
       public void onAdShown() {
           // Convocado quando o anúncio é exibido.
       }
    
       @Override
       public void onAdFailedToShow(@NonNull final AdError adError) {
           // Convocado quando o anúncio deixa de ser exibido.
       }
    
       @Override
       public void onAdDismissed() {
           // Convocado quando o anúncio é descartado.
           // Libere recursos após o descarte e pré-carregue um novo anúncio.
           clearAppOpenAd();
           loadAppOpenAd();
       }
    
       @Override
       public void onAdClicked() {
           // Convocado quando há o registro de clique em um anúncio.
       }
    
       @Override
       public void onAdImpression(@Nullable final ImpressionData impressionData) {
           // Convocado quando há o registro de impressão de um anúncio.
       }
    };
    
    if (mAppOpenAd != null) {
       mAppOpenAd.setAdEventListener(appOpenAdEventListener);
    }
    
  7. Veicule o anúncio usando o método show.

    private fun showAppOpenAd() {
        appOpenAd?.show(activity)
    }
    
    private void showAppOpenAd() {
        if (mAppOpenAd != null) {
           mAppOpenAd.show(activity);
        }
    }
    

    Observação

    Se o anúncio já tiver sido veiculado, a chamada do método show(Activity) (mostrar atividade) retornará um erro de exibição em AppOpenAdEventListener.onAdFailedToShow(AdError) (falha na exibição, erro no anúncio).

  8. Liberar os recursos.

    Isso previne vazamentos de memória.

    private fun clearAppOpenAd() {
        appOpenAd?.setAdEventListener(null)
        appOpenAd = null
    }
    
    private void clearAppOpenAd() {
        if (mAppOpenAd != null) {
            mAppOpenAd.setAdEventListener(null);
            mAppOpenAd = null;
        }
    }
    

Funcionalidades da integração de anúncios de abertura do aplicativo

  1. Todas as chamadas para métodos do Yandex Mobile Ads SDK devem ser feitas a partir do thread principal.
  2. O carregamento pode demorar, então não aumente o tempo de inicialização a frio se o anúncio não tiver carregado.
  3. Pré-carregue anúncios com antecedência para impressões subsequentes em inicializações a quente.
  4. Não recomendamos carregar anúncios de abertura de app em simultâneo com outros formatos de anúncio na inicialização do aplicativo, pois este pode estar baixando dados operacionais essenciais. Isso pode gerar cargas excessivas para o seu dispositivo e para a conexão de internet, atrasando o carregamento dos anúncios.
  5. Se o onAdFailedToLoad() callback retornar um erro, não tente carregar um novo anúncio novamente. Se não houver outra opção, limite o número de tentativas de carregamento de anúncios. Isso ajudará a evitar solicitações constantes malsucedidas e problemas de conexão se houver limitações.

Teste da integração de anúncios de abertura de app

Uso de blocos de anúncios de demonstração para teste de anúncios

Use anúncios-teste para verificar a integração dos anúncios e o aplicativo em si. Para garantir que os anúncios-teste sejam retornados para cada solicitação de anúncio, é possível usar uma ID especial de posicionamento de anúncios demonstrativa.

adUnitId de demonstração: demo-appopenad-yandex.

Importante

Antes de publicar seu app na loja, certifique-se de substituir a ID de posicionamento demonstrativa pela ID real obtida na interface Yandex Advertising Network.

Para a lista de todas as IDs de posicionamento de anúncio demonstrativas disponíveis, consulte Blocos de anúncio demonstrativos para testes.

Teste da integração de anúncios

Você pode verificar se seus anúncios de abertura de app estão integrados corretamente usando o analisador integrado do SDK. Aparecerá no log um relatório detalhado com os resultados do teste.

Para visualizar o relatório, faça uma busca pela palavra-chave "YandexAds" no Logcat, uma ferramenta para depuração de aplicativos Android.

adb logcat -v brief '*:S YandexAds'

Se a integração for bem-sucedida, a seguinte mensagem será retornada:

adb logcat -v brief '*:S YandexAds'
mobileads$ adb logcat -v brief '*:S YandexAds'
I/YandexAds(13719): [Integration] Ad type App Open Ad was integrated successfully

Se houver algum problema na integração dos anúncios, você receberá um relatório detalhado do problema com soluções recomendadas.

Recomendações

  1. Não recomendamos a exibição de anúncios de abertura de app antes da tela de carregamento inicial do aplicativo.

    A apresentação da tela de carregamento inicial melhora a experiência do usuário, tornando-a mais intuitiva. Dessa forma, o usuário sabe que abriu o aplicativo certo e não fica surpreso ou confuso com o anúncio. Na mesma tela, você pode avisar os usuários sobre o próximo anúncio. Use um indicador de carregamento ou simplesmente uma mensagem de texto informando ao usuário que ele retomará a visualização do conteúdo do aplicativo após o anúncio.

  2. Se houver um atraso entre a solicitação e a renderização do anúncio, o usuário poderá abrir brevemente seu aplicativo e, em seguida, ver inesperadamente um anúncio não relacionado ao conteúdo. Isso pode impactar negativamente a experiência do usuário, então vale a pena evitar. Uma possível solução é exibir a tela de carregamento inicial antes da apresentação do conteúdo principal, e só começar a exibir anúncios a partir dessa tela. Não recomendamos a exibição de anúncios caso o app já tenha apresentado conteúdo após a tela de carregamento inicial.

  3. Espere os usuários novos abrirem e usarem o aplicativo algumas vezes antes de começar a exibir impressões de anúncios de abertura de app. Só exiba o anúncio para usuários que atendam a critérios específicos (por exemplo, que concluam uma determinada fase, abram o app um certo número de vezes ou não participem de oferecimentos recompensados). Não recomendamos a exibição de anúncios imediatamente após a instalação do aplicativo.

  4. Ajuste a frequência de impressões com base no comportamento do usuário. Não recomendamos a veiculação de anúncios a cada inicialização do app a frio ou a quente.

  5. Só exiba anúncios caso o aplicativo já esteja rodando em segundo plano há algum tempo (30 segundos, 2 minutos ou 15 minutos, por exemplo).

  6. Não deixe de realizar testes, pois cada aplicativo é um caso único e requer uma abordagem própria para maximizar a receita sem comprometer a retenção dos usuários ou o tempo de permanência no app. O comportamento e o engajamento dos usuários podem oscilar com o tempo, por isso recomendamos que você teste diferentes estratégias de exibição de anúncios de abertura de app periodicamente no seu aplicativo.

Recursos adicionais

Seguinte