---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ads.yandex.com/helpcenter/en/dev/ios/adaptive-inline-banner.md
  - https://ads.yandex.com/helpcenter/pt/dev/ios/adaptive-inline-banner.md
  - https://ads.yandex.com/helpcenter/ru/dev/ios/adaptive-inline-banner.md
  - https://ads.yandex.com/helpcenter/zh/dev/ios/adaptive-inline-banner.md
  - href: pt/dev/ios/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 iOS.
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 {#pre}

<!-- source: pt/dev/_includes/pre-ios.md -->
1. Siga os passos de integração do SDK descritos em [Início rápido](../../../en/dev/ios/quick-start.md).
2. [Inicialize](../../../en/dev/ios/quick-start.md#init) seu SDK de anúncios com antecedência.
3. Confirme se você está utilizando a última versão do [Yandex Mobile Ads SDK](../../../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-ios.md -->

## Implementação {#implement}

Principais passos para integrar banners adaptativos inline:

- Criar uma instância da classe AdView.
- Implementar os métodos do delegado.
- Carregar o anúncio.
- Passar [configurações adicionais](../../../en/dev/ios/target-adfox.md) se você estiver usando Adfox.
- Receber o anúncio no método delegado e renderizá-lo.

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

1. Todas as chamadas para métodos do Yandex Mobile Ads SDK devem ser feitas a partir do thread principal.

2. Aconselhamos que você não tente carregar um novo anúncio ao receber um erro no método delegado  `func adViewDidFailLoading(_ adView: AdView, error: Error)`. Se você precisar carregar um anúncio de  `func adViewDidFailLoading(_ adView: AdView, error: Error)`, restrinja as tentativas de carregamento de anúncios para evitar solicitações de anúncios malsucedidas recorrentes devido a restrições de conexão de rede.

3. Para garantir que seus banners adaptativos inline funcionem corretamente, use [Auto Layout](https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/AnatomyofaConstraint.html). Usar um quadro de tamanho fixo para a visualização pode resultar em uma renderização incorreta do anúncio.

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

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

6. Para obter o tamanho do anúncio, use o método  `BannerAdSize.inlineSize(withWidth: CGFloat, maxHeight: CGFloat)`, passando a largura disponível do contêiner do anúncio e a altura máxima permitida do anúncio como argumentos.

7. O objeto `BannerAdSize`, que é calculado usando o método  `BannerAdSize.inlineSize(withWidth: CGFloat, maxHeight: CGFloat)`, contém valores constantes de largura e altura do anúncio para dispositivos idênticos. Após testar o layout do seu aplicativo em um dispositivo específico, você poderá ter certeza de que o tamanho do anúncio será constante.

## Criação de uma instância da classe AdView

Para exibir anúncios em banner, crie uma instância da classe `AdView`, passando o tamanho do anúncio e o ID do anúncio para ela. Você também precisa definir um delegado para `AdView` implementando o protocolo `AdViewDelegate` para sua classe.

Os anúncios são calculados para dispositivos usando o método  `BannerAdSize.inlineSize(withWidth: CGFloat, maxHeight: CGFloat)` do SDK. Como argumento, passe a largura máxima permitida do contêiner do anúncio. Recomendamos usar toda a largura da tela do dispositivo ou a largura do contêiner pai. Você deve incluir todas as margens e áreas seguras de exibição aplicáveis ao aplicativo.

Você vai precisar da ID de unidade de anúncio da interface do Yandex Advertising Network (adUnitId).

Exemplo de criação de uma instância de `AdView` no View Controller:

```swift
final class InlineBannerViewController: UIViewController {
    private lazy var adView: AdView = {
        let adSize = BannerAdSize.inlineSize(withWidth: 320, maxHeight: 320)

        let adView = AdView(adUnitID: "R-M-XXXXX-YY", adSize: adSize)
        adView.delegate = self
        adView.translatesAutoresizingMaskIntoConstraints = false
        return adView
    }()
}

extension InlineBannerViewController: AdViewDelegate {
    func adViewDidLoad(_ adView: AdView) {
        // This method will call after successfully loading
    }

    func adViewDidFailLoading(_ adView: AdView, error: Error) {
        // This method will call after getting any error while loading the ad
    }
}
```

## Carregamento de anúncios

Após a criação de `AdView`, o anúncio precisa ser carregado.

Para notificar quando os anúncios são carregados ou falham ao carregar e para acompanhar o ciclo de vida dos banners adaptativos inline, você precisa definir propriedades de delegado para o objeto da classe `AdView` e implementar o protocolo `AdViewDelegate`.

Você pode expandir os parâmetros de solicitação de anúncio através de `AdRequest`, passando interesses do usuário, dados contextuais da página, detalhes de localização ou outras informações. Fornecer dados contextuais adicionais na solicitação pode melhorar consideravelmente a qualidade do anúncio. Saiba mais na seção [Segmentação de anúncios](../../../en/dev/android/target.md).

O exemplo a seguir mostra como carregar um banner adaptativo inline. Após o carregamento bem-sucedido, o método  `func adViewDidLoad(_ adView: AdView)` do delegado `AdViewDelegate` será chamado:

```swift
final class InlineBannerViewController: UIViewController {
    private lazy var adView: AdView = {
        let adSize = BannerAdSize.inlineSize(withWidth: 320, maxHeight: 320)

        let adView = AdView(adUnitID: "R-M-XXXXX-YY", adSize: adSize)
        adView.delegate = self
        adView.translatesAutoresizingMaskIntoConstraints = false
        return adView
    }()

    func loadAd() {
        adView.loadAd()
    }
}
```

## Exibição de anúncios

Depois de carregar o anúncio com êxito, você precisa renderizá-lo. Para isso, você pode usar restrições de layout automático.
Pegue o adView que você obteve do método delegado e adicione-o ao contêiner. Em seguida, adicione restrições de layout automático para que o banner seja exibido onde você deseja.

```swift
final class InlineBannerViewController: UIViewController {
    private lazy var adView: AdView = {
        let adSize = BannerAdSize.inlineSize(withWidth: 320, maxHeight: 320)

        let adView = AdView(adUnitID: "R-M-XXXXX-YY", adSize: adSize)
        adView.delegate = self
        adView.translatesAutoresizingMaskIntoConstraints = false
        return adView
    }()

    func showAd() {
        view.addSubview(adView)
        NSLayoutConstraint.activate([
            adView.topAnchor.constraint(equalTo: loadButton.bottomAnchor, constant: 100),
            adView.centerXAnchor.constraint(equalTo: view.centerXAnchor)
        ])
    }
}
```

## Teste da integração do banner adaptativo inline {#test}

### 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 -->

## Recursos adicionais {#resources}

* <!-- source: pt/dev/_includes/github-pubdev-links.md -->
  Link para [GitHub](https://github.com/yandexmobile/yandex-ads-sdk-ios/blob/master/Examples/YandexMobileAdsExample/YandexMobileAdsExample/Yandex/Banner/InlineBannerViewController.swift).
  <!-- endsource: pt/dev/_includes/github-pubdev-links.md -->
