Banner adaptativo inline
Um banner adaptativo inline é um formato flexível de anúncio em banner que otimiza o tamanho do anúncio em cada dispositivo, garantindo máxima eficiência.
Com esse tipo de anúncio, os desenvolvedores podem definir a largura e a altura máximas permitidas para o anúncio, deixando o sistema determinar o tamanho ideal automaticamente. Para escolher o melhor tamanho de anúncio, os banners adaptativos inline utilizam uma altura máxima, e não uma altura fixa. Isso ajuda a melhorar o desempenho.
Normalmente, esse formato é usado em aplicativos baseados em feed ou contextos em que é aceitável focar principalmente no anúncio.
Aparência
Este guia mostra como integrar banners adaptativos inline em aplicativos Unity. 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 as Yandex Mobile Ads etapas de integração do plug‑in descritas em Início rápido.
- Certifique-se de possuir a última versão do Yandex Mobile Ads plug-in Unity. Se estiver usando mediação, atualize para a single build mais recente.
Implementação
Principais passos para integrar banners adaptativos inline:
- Criar e configurar o objeto de anúncio Banner.
- Registrar um listener de método de callback.
- Carregar o anúncio.
- Passar configurações adicionais se você estiver usando Adfox.
Especificidades da integração de banner adaptativo inline
-
Se o
onAdFailedToLoadcallback 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. -
Para que os banners adaptativos inline funcionem corretamente, torne os layouts do seu app adaptativos. Caso contrário, seus anúncios podem ser renderizados incorretamente.
-
Os banners adaptativos inline funcionam melhor quando utilizam toda a largura disponível da tela. Na maioria dos casos, será a largura total da tela do dispositivo. Você precisa considerar os parâmetros de margem definidos no seu aplicativo e a área segura de exibição.
-
Os banners adaptativos inline foram projetados para uso em conteúdo rolável. Ele pode ter a mesma altura que a tela do dispositivo ou ser limitado à altura máxima, dependendo da API.
-
Para obter o tamanho do anúncio, use o método
BannerAdSize.Inline(screenWidth, maxAdHeight), que recebe a largura disponível do contêiner do anúncio e a altura máxima aceitável do anúncio como argumentos. -
O objeto
BannerAdSize, que é calculado usando o métodoBannerAdSize.Inline(screenWidth, maxAdHeight), contém dados técnicos para selecionar os tamanhos de anúncio mais eficazes no backend. A altura do anúncio pode mudar toda vez que é carregado. A largura e altura reais do anúncio ficam disponíveis após o recebimento de uma mensagem de carregamento de anúncio bem-sucedido.
Adição de Banner ao projeto
Para exibir um banner em seu aplicativo, crie um objeto Banner no script (em C#) que está anexado ao GameObject.
using UnityEngine;
using YandexMobileAds;
using YandexMobileAds.Base;
public class YandexMobileAdsInlineBannerDemoScript : MonoBehaviour
{
private Banner banner;
private int GetScreenWidthDp()
{
int screenWidth = (int)Screen.safeArea.width;
return ScreenUtils.ConvertPixelsToDp(screenWidth);
}
private void RequestInlineBanner()
{
BannerAdSize bannerMaxSize = BannerAdSize.Inline(GetScreenWidthDp(), 100);
banner = new Banner(bannerMaxSize, AdPosition.BottomCenter);
}
}
O construtor Banner contém os seguintes parâmetros:
-
BannerAdSize: Tamanho do banner que você deseja exibir. -
AdPosition: A posição na tela. -
Inline(int width, int maxHeight): Dimensões do banner.
Defina a largura e a altura máxima permitida. O anúncio se ajustará a essas dimensões. A altura do anúncio selecionado não excederá a altura da tela do dispositivo.
Carregamento e renderização de anúncios
Após criar e configurar um objeto da classe Banner, você precisa carregar o anúncio. Para carregar o anúncio, use o método LoadAd, informando um objeto AdRequest com a ID do seu bloco de anúncio como parâmetro.
Antes de carregar um banner adaptativo inline, calcule o tamanho do anúncio em cada dispositivo.
A operação é realizada automaticamente através da API do SDK: BannerAdSize.Inline(screenWidth, maxAdHeight).
Você pode expandir os parâmetros de solicitação de anúncio através de AdTargeting, passando interesses do usuário, dados contextuais da página, detalhes de localização ou outras informações. 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.
Para ativar notificações quando anúncios são carregados ou deixam de ser carregados e rastrear os eventos do ciclo de vida de um banner adaptativo inline, defina as funções callback para a instância da classe BannerAd.
private void RequestInlineBanner()
{
// ...
string adUnitId = "demo-banner-yandex"; // substitua por "R-M-XXXXXX-Y"
AdRequest request = new AdRequest(adUnitId);
banner.LoadAd(request);
}
Eventos de anúncios em banner
Para rastrear eventos que ocorrem em anúncios de banner, registre um delegado para o EventHandler apropriado, conforme mostrado abaixo:
using System;
// ...
private void RequestInlineBanner()
{
// ...
// Convocado quando o anúncio em banner é carregado
banner.OnAdLoaded += HandleAdLoaded;
// Convocado se ocorrer um erro durante o processo de carregamento
banner.OnAdFailedToLoad += HandleAdFailedToLoad;
//Convocado quando o usuário clica no anúncio
banner.OnAdClicked += HandleAdClicked;
// Convocado quando uma impressão é registrada
banner.OnImpression += HandleImpression;
// ...
}
private void HandleAdLoaded(object sender, EventArgs args)
{
Debug.Log("AdLoaded event received");
banner.Show();
}
private void HandleAdFailedToLoad(object sender, AdFailureEventArgs args)
{
Debug.Log($"AdFailedToLoad event received with message: {args.Message}");
// Aconselhamos que você não carregue um novo anúncio usando este método
}
private void HandleLeftApplication(object sender, EventArgs args)
{
Debug.Log("LeftApplication event received");
}
private void HandleReturnedToApplication(object sender, EventArgs args)
{
Debug.Log("ReturnedToApplication event received");
}
private void HandleAdClicked(object sender, EventArgs args)
{
Debug.Log("AdClicked event received");
}
private void HandleImpression(object sender, ImpressionData impressionData)
{
var data = impressionData == null ? "null" : impressionData.rawData;
Debug.Log($"HandleImpression event received with data: {data}");
}
Teste da integração do banner adaptativo inline
Uso de blocos de anúncios de demonstração para teste de anúncios
Use anúncios-teste para verificar a integração dos banners adaptativos inline 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-banner-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
É possível verificar se seus banners adaptativos inline estão integrados corretamente usando o analisador embutido 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 banner was integrated successfully
Se houver algum problema na integração dos banners, você receberá um relatório detalhado do problema com soluções recomendadas.
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-banner-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 testar sua integração de anúncios usando a ferramenta Console nativa.
Para ver logs detalhados, convoque o método enableLogging da classe YandexAds.
YandexAds.enableLogging()
Para ver os logs do SDK, acesse a ferramenta Console e defina Subsystem = com.mobile.ads.ads.sdk. Você também pode filtrar logs por categoria e nível de erro.
Se você estiver tendo problemas para integrar anúncios, receberá um relatório detalhado sobre os problemas e recomendações de como corrigi-los.
Dicas
Pré-carregamento de anúncios
Carregar um anúncio pode levar vários segundos, dependendo do número de redes de anúncios conectadas na mediação móvel e da velocidade da Internet do usuário. Recomendamos pré-carregar os anúncios antes de exibi-los.
Você pode carregar um anúncio na inicialização do aplicativo ou pouco antes de ser exibido. Você precisa preservar o objeto entre as cenas usando a chamada DontDestroyOnLoad(gameObject). Isso garante que o anúncio carregado não seja excluído junto com o gameObject na mudança de cena.
Quando você precisar renderizar o banner, chame banner.Show().
Se você armazenar em cache anúncios em muitas telas que provavelmente não serão exibidas, a eficácia do anúncio pode diminuir. Por exemplo, se os usuários completam 2–3 níveis de jogo por sessão, você não deve armazenar em cache anúncios para 6–7 telas. Caso contrário, a visualizabilidade do seu anúncio pode diminuir, e o sistema de publicidade pode despriorizar seu aplicativo.
Para garantir que o cache beneficie seu app, monitore as métricas "Taxa de exibição" ou "Taxa de visualização" na interface Yandex Advertising Network. Se estiver abaixo de 20%, você provavelmente deve revisar seu algoritmo de cache. Quanto maior o percentual de impressões, melhor.
Limpeza de memória não utilizada
Recomendamos chamar banner?.Destroy() e recriar o objeto Banner antes de cada solicitação de anúncio. Isso garante que toda a memória utilizada seja liberada, e o aplicativo pode solicitar e mostrar anúncios muitas vezes sem sobrecarregar o dispositivo. Isso também pode prevenir erros de código relacionados ao carregamento repetido de anúncios e interrupções no ciclo de vida.
Recursos adicionais
- Link para GitHub.