Anúncios intersticiais
A publicidade intersticial é um formato de anúncio em tela cheia incorporado ao conteúdo do aplicativo durante pausas naturais, como a transição entre níveis de jogo ou a conclusão de uma ação-alvo.
Quando um aplicativo exibe um anúncio intersticial, o usuário pode clicar para acessar o site do anunciante ou fechar o anúncio e retornar ao app.
Durante as impressões de anúncios intersticiais, a atenção do usuário fica totalmente voltada para o anúncio, o que resulta em um custo mais alto para essas impressões.
Aparência
Este guia mostrará como integrar anúncios intersticiais em aplicativos Android. Além de exemplos de código e instruções, contém recomendações específicas aos formatos e links para recursos adicionais.
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.
Implementação
Principais passos para integrar anúncios intersticiais:
- Criar e configurar o carregador de anúncios
InterstitialAdLoader. - Registrar o listener para métodos de callback de carregamento de anúncios:
InterstitialAdLoadListener. - Carregar o anúncio.
- Passar configurações adicionais se você estiver usando Adfox.
- Registrar o listener
InterstitialAdEventListenerpara métodos de callback de eventos de anúncios. - Exiba o objeto
InterstitialAd.
Características da integração de anúncios intersticiais
-
Todas as chamadas para métodos do Yandex Mobile Ads SDK devem ser feitas a partir do thread principal.
-
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. -
Recomendamos manter uma referência forte ao carregador e ao anúncio durante todo o ciclo de vida da tela que hospeda as interações com o anúncio para evitar a limpeza pelo coletor de lixo.
-
Recomendamos usar uma única instância de
InterstitialAdLoaderpara todos os carregamentos de anúncios a fim de melhorar o desempenho.
Carregamento de anúncios
Para carregar anúncios intersticiais, crie e configure o objeto InterstitialAdLoader.
Para isso, você precisará do contexto de Activity ou Application.
Para notificar quando os anúncios são carregados ou falham ao carregar, defina o listener do método de callback InterstitialAdLoadListener para o objeto InterstitialAdLoader.
Para carregar um anúncio, você precisa da ID de posicionamento do anúncio, obtida na interface da Yandex Advertising Network (adUnitId).
É 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.
Após o anúncio ser carregado (chamando o método onAdLoaded(interstitialAd: InterstitialAd)), salve o link para o InterstitialAd carregado antes que sua exibição seja concluída.
O exemplo a seguir mostra como carregar um anúncio intersticial a partir de Activity:
class InterstitialAdActivity : AppCompatActivity(R.layout.activity_interstitial_ad) {
private var interstitialAd: InterstitialAd? = null
private var interstitialAdLoader: InterstitialAdLoader? = null
private lateinit var binding: ActivityInterstitialAdBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityInterstitialAdBinding.inflate(layoutInflater)
setContentView(binding.root)
// O carregamento de anúncios intersticiais deve ocorrer após a inicialização do SDK.
// Inicialize o SDK o mais cedo possível, por exemplo em Application.onCreate ou Activity.onCreate
interstitialAdLoader = InterstitialAdLoader(this)
loadInterstitialAd()
}
private fun loadInterstitialAd() {
val adRequest = AdRequest.Builder("your-ad-unit-id").build()
interstitialAdLoader?.loadAd(adRequest, object : InterstitialAdLoadListener {
override fun onAdLoaded(ad: InterstitialAd) {
interstitialAd = ad
// O anúncio foi carregado com sucesso. Agora você pode exibir o anúncio carregado.
}
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.
}
})
}
}
public class InterstitialAdActivity extends AppCompatActivity {
@Nullable
private InterstitialAd mInterstitialAd = null;
@Nullable
private InterstitialAdLoader mInterstitialAdLoader = null;
private ActivityInterstitialAdBinding mBinding;
public InterstitialAdActivity() {
super(R.layout.activity_interstitial_ad);
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding = ActivityInterstitialAdBinding.inflate(getLayoutInflater());
setContentView(mBinding.getRoot());
// O carregamento de anúncios intersticiais deve ocorrer após a inicialização do SDK.
// Inicialize o SDK o mais cedo possível, por exemplo em Application.onCreate ou Activity.onCreate
mInterstitialAdLoader = new InterstitialAdLoader(this);
loadInterstitialAd();
}
private void loadInterstitialAd() {
if (mInterstitialAdLoader != null) {
final AdRequest adRequest =
new AdRequest.Builder("your-ad-unit-id").build();
mInterstitialAdLoader.loadAd(adRequest, new InterstitialAdLoadListener(){
@Override
public void onAdLoaded(@NonNull final InterstitialAd interstitialAd){
mInterstitialAd = interstitialAd;
// O anúncio foi carregado com sucesso. Agora você pode exibir o anúncio carregado.
}
@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.
}
});
}
}
}
Caso você veicule anúncios através do Adfox, após a resposta do anúncio banner, os dados campaignId, bannerId e placeId poderão ser acessados a partir dos objetos interstitialAdLoader usando a propriedade adAttributes do tipo AdAttributes.
Exibição de anúncios
Os anúncios intersticiais devem ser exibidos durante pausas naturais no funcionamento do aplicativo. Um bom exemplo disso seriam as impressões ocorridas entre duas fases de um jogo ou quando um usuário conclui uma ação, como baixar um arquivo.
Antes de exibir anúncios, defina um InterstitialAdEventListener para ouvir os callbacks de eventos anúncio.
Para renderizar um anúncio, você precisará passar a Activity para o método show do anúncio carregado:
private fun showAd() {
interstitialAd?.apply {
setAdEventListener(object : InterstitialAdEventListener {
override fun onAdShown() {
// Convocado quando o anúncio é exibido.
}
override fun onAdFailedToShow(adError: AdError) {
// Convocado quando um InterstitialAd deixa de ser exibido.
// Liberar recursos após o anúncio ser descartado
interstitialAd?.setAdEventListener(null)
interstitialAd = null
// Agora você pode pré-carregar o próximo anúncio intersticial.
loadInterstitialAd()
}
override fun onAdDismissed() {
// Convocado quando o anúncio é descartado.
// Liberar recursos após o anúncio ser descartado
interstitialAd?.setAdEventListener(null)
interstitialAd = null
// Agora você pode pré-carregar o próximo anúncio intersticial.
loadInterstitialAd()
}
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.
}
})
show(this@Activity)
}
}
private void showAd() {
if (mInterstitialAd != null) {
mInterstitialAd.setAdEventListener(new InterstitialAdEventListener() {
@Override
public void onAdShown() {
// Convocado quando o anúncio é exibido.
}
@Override
public void onAdFailedToShow(@NonNull final AdError adError) {
// Convocado quando um InterstitialAd deixa de ser exibido.
}
@Override
public void onAdDismissed() {
// Convocado quando o anúncio é descartado.
// Liberar recursos após o anúncio ser descartado
if (mInterstitialAd != null) {
mInterstitialAd.setAdEventListener(null);
mInterstitialAd = null;
}
// Agora você pode pré-carregar o próximo anúncio intersticial.
loadInterstitialAd();
}
@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.
}
});
mInterstitialAd.show(this);
}
}
Liberação de recursos
Não armazene links de anúncios renderizados anteriormente. Chame setAdEventListener(null) para anúncios renderizados anteriormente.
Isso libera os recursos e evita vazamentos de memória.
override fun onDestroy() {
super.onDestroy()
interstitialAdLoader = null
destroyInterstitialAd()
}
private fun destroyInterstitialAd() {
interstitialAd?.setAdEventListener(null)
interstitialAd = null
}
@Override
protected void onDestroy() {
super.onDestroy();
mInterstitialAdLoader = null;
destroyInterstitialAd();
}
private void destroyInterstitialAd() {
if (mInterstitialAd != null) {
mInterstitialAd.setAdEventListener(null);
mInterstitialAd = null;
}
}
Teste da integração de anúncios intersticiais
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 intersticiais 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-interstitial-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 sua integração de anúncios intersticiais 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 interstitial was integrated successfully
Se houver algum problema na integração dos anúncios intersticiais, você receberá um relatório detalhado do problema com soluções recomendadas.
Recursos adicionais
- Link para GitHub.