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
- Siga os passos de integração do SDK descritos em Início rápido.
- Primeiro, é preciso inicializar o SDK de publicidade.
- 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
- Inicialize o SDK ao inicializar o aplicativo.
- Crie e configure o objeto carregador de anúncios
AppOpenAdLoader. - Defina o listener do método de callback
AppOpenAdLoadListenerpara enviar notificações quando os anúncios são carregados com êxito ou não. - Carregar o anúncio usando o método
loadAd(AdRequest, AppOpenAdLoadListener). - Usar LifecycleEventObserver para lidar com mudanças de status do aplicativo e exibir anúncios de abertura do aplicativo.
- Antes de renderizar o anúncio, defina o listener do método de callback do anúncio
AppOpenAdEventListener. - Veicule o anúncio usando o método
show(Activity). - Liberar os recursos.
Principais etapas
-
Inicialize o SDK ao inicializar o aplicativo.
KotlinJavaYandexAds.initialize(this) { // Agora é possível usar anúncios }YandexAds.initialize(this, () -> { // Agora é possível usar anúncios }); -
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.KotlinJavaval 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(); -
Defina o listener do método de callback
AppOpenAdLoadListenerpara enviar notificações quando os anúncios são carregados com êxito ou não.KotlinJavaval 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. } }; -
Carregar o anúncio usando o método
loadAd(AdRequest, AppOpenAdLoadListener).KotlinJavaprivate fun loadAppOpenAd() { appOpenAdLoader.loadAd(adRequest, appOpenAdLoadListener) }private void loadAppOpenAd() { appOpenAdLoader.loadAd(adRequest, appOpenAdLoadListener); } -
Usar
LifecycleEventObserverpara lidar com mudanças de status do aplicativo e exibir anúncios de abertura do aplicativo.KotlinJavaval processLifecycleObserver = DefaultProcessLifecycleObserver( onProcessCameForeground = ::showAppOpenAd ) ProcessLifecycleOwner.get().lifecycle.addObserver(processLifecycleObserver)final DefaultProcessLifecycleObserver processLifecycleObserver = new DefaultProcessLifecycleObserver() { @Override public void onProcessCameForeground() { showAppOpenAd(); } } ProcessLifecycleOwner.get().getLifecycle().addObserver(processLifecycleObserver); -
Antes de renderizar o anúncio, defina o listener do método de callback do anúncio
AppOpenAdEventListener.KotlinJavaprivate 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); } -
Veicule o anúncio usando o método
show.KotlinJavaprivate 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 emAppOpenAdEventListener.onAdFailedToShow(AdError)(falha na exibição, erro no anúncio). -
Liberar os recursos.
Isso previne vazamentos de memória.
KotlinJavaprivate 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
- Todas as chamadas para métodos do Yandex Mobile Ads SDK devem ser feitas a partir do thread principal.
- O carregamento pode demorar, então não aumente o tempo de inicialização a frio se o anúncio não tiver carregado.
- Pré-carregue anúncios com antecedência para impressões subsequentes em inicializações a quente.
- 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.
- 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
-
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.
-
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.
-
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.
-
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.
-
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).
-
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
- Link para GitHub.