Banner adaptativo inline
Banners adaptativos inline são um formato flexível de publicidade em banner, proporcionando máxima eficiência ao otimizar o tamanho do anúncio em cada dispositivo.
Esse tipo de anúncio permite que os desenvolvedores definam uma largura e altura máximas permitidas para o anúncio, embora o tamanho ideal do anúncio ainda seja determinado automaticamente. Para selecionar o melhor tamanho de anúncio, os banners adaptativos integrados usam a altura máxima em vez da altura fixa. Dessa forma, há espaço para 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, fornece recomendações específicas aos formatos e links para recursos adicionais.
Pré-requisito
- Siga o processo em Início rápido para integrar o plugin Yandex Mobile Ads Unity.
- Confirme se você está utilizando a última versão do plugin Yandex Mobile Ads Unity. Se você estiver usando mediação, confirme se também está utilizando a última versão da compilação unificada.
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.
Características da integração de banners adaptativos inline
-
Se houve um erro no evento
onAdFailedToLoad
, 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 quando surgirem limitações. -
Para garantir que os banners adaptativos inline funcionem corretamente, torne seus layouts de aplicativo adaptativos. Caso contrário, seus anúncios podem ser renderizados incorretamente.
-
Os banners adaptativos inline funcionam melhor quando usam toda a largura disponível. Na maioria dos casos, essa é a largura total da tela do dispositivo. Você deve incluir todas as margens e áreas seguras de exibição aplicáveis ao aplicativo.
-
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.InlineSize(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.InlineSize(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()
{
string adUnitId = "demo-banner-yandex"; // замените на "R-M-XXXXXX-Y"
BannerAdSize bannerMaxSize = BannerAdSize.InlineSize(GetScreenWidthDp(), 100);
banner = new Banner(adUnitId, bannerMaxSize, AdPosition.BottomCenter);
}
}
O construtor Banner
contém os seguintes parâmetros:
-
AdUnitId
: identificador único emitido na interface do Yandex Advertising Network, com o seguinte aspecto: R-M-XXXXXX-Y.Sugestão
Para fins de teste, você pode usar o ID do bloco de demonstração: "demo-banner-yandex". Antes de publicar o anúncio, você precisa substituir o ID do bloco de demonstração por um ID de bloco de anúncios real.
-
BannerAdSize
: Tamanho do banner que você deseja exibir. -
AdPosition
: A posição na tela. -
InlineSize(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 um anúncio, use o método LoadAd
, que recebe o objeto AdRequest
como argumento.
O tamanho do anúncio também deve ser calculado para cada dispositivo antes de carregar banners adaptativos inline.
A operação é realizada automaticamente através da API do SDK: BannerAdSize.InlineSize(screenWidth, maxAdHeight)
.
Você pode expandir os parâmetros de solicitação de anúncio através de AdRequest.Builder()
passando interesses do usuário, dados contextuais do aplicativo, detalhes de localização ou outros dados na solicitação. Fornecer dados contextuais adicionais na solicitação pode melhorar consideravelmente a qualidade do anúncio.
Para notificar quando os anúncios são carregados ou falham ao carregar e para acompanhar o ciclo de vida dos banners adaptativos inline, defina funções de callback para o objeto da classe BannerAd
.
private void RequestInlineBanner()
{
// ...
AdRequest request = new AdRequest.Builder().Build();
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()
{
// ...
// Called when a rewarded ad is loaded
banner.OnAdLoaded += HandleAdLoaded;
// Called when there was an error loading the ad
banner.OnAdFailedToLoad += HandleAdFailedToLoad;
// Called when the app goes inactive because the user tapped an ad and is about to switch to a different app (for example, a browser).
banner.OnLeftApplication += HandleLeftApplication;
// Called when the user returns to the app after a tap
banner.OnReturnedToApplication += HandleReturnedToApplication;
// Called when the user taps the ad
banner.OnAdClicked += HandleAdClicked;
// Called when an impression is registered
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}");
// We strongly advise against loading a new ad using this method
}
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
Recomendamos usar anúncios de teste para testar sua integração de banner adaptativo inline e seu próprio aplicativo.
Para garantir que anúncios de teste sejam retornados para cada solicitação de anúncio, criamos um ID especial de posicionamento de anúncios de demonstração. Use-o para verificar sua integração de anúncios.
adUnitId de demonstração: demo-banner-yandex
.
Importante
Antes de publicar seu app na loja, lembre-se de substituir a ID de inserção demonstrativa por uma ID real obtida na interface do Yandex Advertising Network.
Confira a lista de IDs de posicionamento de anúncios de demonstração disponíveis na seção Blocos de anúncio de demonstração para teste.
Teste da integração de anúncios
Você pode testar sua integração de banner adaptativo inline usando o analisador integrado do SDK.
A ferramenta garante que seus anúncios estejam integrados corretamente e gera um relatório detalhado no log. Para ver o relatório, procure a palavra-chave "YandexAds" na ferramenta Logcat usada para depuração de aplicativos Android.
adb logcat -v brief '*:S YandexAds'
Se a integração for bem-sucedida, você verá esta mensagem:
adb logcat -v brief '*:S YandexAds'
mobileads$ adb logcat -v brief '*:S YandexAds'
I/YandexAds(13719): [Integration] Ad type banner was integrated successfully
Se você estiver tendo problemas para integrar anúncios em banner, receberá um relatório detalhado sobre os problemas e recomendações de como corrigi-los.
Uso de blocos de anúncios de demonstração para teste de anúncios
Recomendamos usar anúncios de teste para testar sua integração de anúncios e seu próprio aplicativo.
Para garantir que anúncios de teste sejam retornados para cada solicitação de anúncio, criamos um ID especial de posicionamento de anúncios de demonstração. Use-o para verificar sua integração de anúncios.
adUnitId de demonstração: demo-banner-yandex
.
Importante
Antes de publicar seu app na loja, lembre-se de substituir a ID de inserção demonstrativa por uma ID real obtida na interface do Yandex Advertising Network.
Confira a lista de IDs de posicionamento de anúncios de demonstração disponíveis na seção Blocos de anúncio de demonstração para teste.
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, chame o método enableLogging
da classe YMAMobileAds
.
YMAMobileAds.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 você esteja alcançando um bom equilíbrio para o seu app, acompanhe a métrica "Parcela de impressões" ou "Parcela de impressões visíveis" na interface do Yandex Advertising Network. Se ela estiver abaixo de 20%, talvez seja uma boa ideia 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.