---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ads.yandex.com/helpcenter/en/dev/unity/adaptive-inline-banner.md
  - https://ads.yandex.com/helpcenter/pt/dev/unity/adaptive-inline-banner.md
  - https://ads.yandex.com/helpcenter/ru/dev/unity/adaptive-inline-banner.md
  - https://ads.yandex.com/helpcenter/zh/dev/unity/adaptive-inline-banner.md
  - href: pt/dev/unity/adaptive-inline-banner.md
    type: text/markdown
    title: Markdown version
  - href: llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://ads.yandex.com/helpcenter/pt/llms.txt

# Banner adaptativo inline

<!-- source: pt/dev/_includes/adaptive-inline-banner.md -->
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.
<!-- endsource: pt/dev/_includes/adaptive-inline-banner.md -->

<!-- source: pt/dev/_includes/adaptive-inline-banner.md -->
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.
<!-- endsource: pt/dev/_includes/adaptive-inline-banner.md -->

Normalmente, esse formato é usado em aplicativos baseados em feed ou contextos em que é aceitável focar principalmente no anúncio.

{% cut "Aparência" %}

<img src="https://yastatic.net/s3/doc-binary/src/docs/support/mobile-ads/pt/monetization/_images/banner-inline-pt-ex.png" width="200">

{% endcut %}

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 {#pre}

<!-- source: pt/dev/_includes/pre-unity.md -->
1. Siga o processo em [Início rápido](../../../en/dev/unity/quick-start.md) para integrar o plugin Yandex Mobile Ads Unity.
2. Confirme se você está utilizando a última versão do [plugin Yandex Mobile Ads Unity](../../../en/dev/platforms.md). Se você estiver usando mediação, confirme se também está utilizando a última versão da [compilação unificada](../../../en/dev/platforms.md).
<!-- endsource: pt/dev/_includes/pre-unity.md -->

## Implementação {#implement}

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](../../../en/dev/unity/target-adfox.md) se você estiver usando Adfox.

## Características da integração de banners adaptativos inline {#features}

1. 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.

2. Para garantir que os banners adaptativos inline funcionem corretamente, [torne seus layouts de aplicativo adaptativos](https://developer.android.com/guide/topics/large-screens/support-different-screen-sizes). Caso contrário, seus anúncios podem ser renderizados incorretamente.

3. 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.

4. 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.

5. 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.

6. O objeto `BannerAdSize`, que é calculado usando o método  `BannerAdSize.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`.
```c#
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.

   {% note tip %}

   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.

   {% endnote %}

* `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`.

```c#
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:

```c#
using System;
// ...

private void RequestInlineBanner()
{
    // ...
    // Called when the banner ad is loaded
    banner.OnAdLoaded += HandleAdLoaded;

    // Called when there was an error loading the ad
    banner.OnAdFailedToLoad += HandleAdFailedToLoad;

    // 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 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 {#test}

{% list tabs %}

- Android

   <!-- source: pt/dev/_includes/test-android-inline-banner.md -->
   ### Uso de blocos de anúncios de demonstração para teste de anúncios {#demo-blocks}

   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`.

   {% note warning %}

   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.

   {% endnote %}

   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](../../../en/dev/android/demo-blocks.md).

   ### Teste da integração de anúncios {#test-int}

   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](https://developer.android.com/studio/command-line/logcat) usada para depuração de aplicativos Android.

   ```bash
   adb logcat -v brief '*:S YandexAds'
   ```

   Se a integração for bem-sucedida, você verá esta mensagem:

   ```bash
   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.
   <!-- endsource: pt/dev/_includes/test-android-inline-banner.md -->

- iOS

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

   <!-- source: pt/dev/_includes/test-ios-inline-banner.md -->
   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`.

   {% note warning %}

   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.

   {% endnote %}

   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](../../../en/dev/ios/demo-blocks.md).
   <!-- endsource: pt/dev/_includes/test-ios-inline-banner.md -->

   ### Teste da integração de anúncios

   <!-- source: pt/dev/_includes/test-integration-ios.md -->
   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`.

   ```swift
   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.

   <img src= "https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/common/integration-ios-2.png">
   <!-- endsource: pt/dev/_includes/test-integration-ios.md -->

{% endlist %}

## Dicas

### Pré-carregamento de anúncios

<!-- source: pt/dev/_includes/preload.md -->
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.
<!-- endsource: pt/dev/_includes/preload.md -->

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()`.

<!-- source: pt/dev/_includes/cash-ads.md -->
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.
<!-- endsource: pt/dev/_includes/cash-ads.md -->

### 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 {#resources}

* <!-- source: pt/dev/_includes/github-pubdev-links.md -->
  Link para [GitHub](https://github.com/yandexmobile/yandex-ads-unity-plugin).
  <!-- endsource: pt/dev/_includes/github-pubdev-links.md -->
