---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ads.yandex.com/helpcenter/en/dev/unity/interstitial.md
  - https://ads.yandex.com/helpcenter/pt/dev/unity/interstitial.md
  - https://ads.yandex.com/helpcenter/ru/dev/unity/interstitial.md
  - https://ads.yandex.com/helpcenter/zh/dev/unity/interstitial.md
  - href: pt/dev/unity/interstitial.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

# Anúncios intersticiais

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

Quando o aplicativo renderiza um anúncio intersticial, o usuário tem duas opções: clicar no anúncio e ir para o site do anunciante ou fechar o anúncio e voltar para o aplicativo.

Nos anúncios intersticiais, a atenção do usuário está totalmente focada nos anúncios, por isso o custo de impressão é maior.

{% cut "Aparência" %}

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

{% endcut %}

Este guia mostrará como integrar anúncios intersticiais 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 {#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 anúncios intersticiais:

1. Criar um carregador de anúncios `InterstitialAdLoader` e registrar listeners para eventos de carregamento de anúncios.
2. Definir os parâmetros de carregamento de anúncios em `AdRequestConfiguration`.
3. Carregar o anúncio usando o método  `InterstitialAdLoader.LoadAd(AdRequestConfiguration)`.
4. Passar [configurações adicionais](../../../en/dev/unity/target-adfox.md) se você estiver usando Adfox.
5. Registrar listeners para eventos em que os usuários interagem com seu anúncio.
6. Mostrar o anúncio chamando o método  `Interstitial.Show()`.
7. Liberar os recursos.

## Características da integração de anúncios intersticiais {#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. Recomendamos usar uma única instância de `InterstitialAdLoader` para todos os carregamentos de anúncios a fim de melhorar o desempenho.

## Guia passo a passo

1. Crie um objeto `InterstitialAdLoader` no script C# anexado a `GameObject`, depois registre listeners de eventos de carregamento de anúncios.

   ```c#
   using UnityEngine;
   using YandexMobileAds;
   using YandexMobileAds.Base;

   public class YandexMobileAdsInterstitialDemoScript : MonoBehaviour
   {
       private InterstitialAdLoader interstitialAdLoader;
       private Interstitial interstitial;

       private void SetupLoader()
       {
           interstitialAdLoader = new InterstitialAdLoader();
           interstitialAdLoader.OnAdLoaded += HandleInterstitialLoaded;
           interstitialAdLoader.OnAdFailedToLoad += HandleInterstitialFailedToLoad;
           // ...
       }

       public void HandleInterstitialLoaded(object sender, InterstitialAdLoadedEventArgs args)
       {
           // The ad was loaded successfully. Now you can handle it.
           interstitial = args.Interstitial;
       }

       public void HandleInterstitialFailedToLoad(object sender, AdFailedToLoadEventArgs args)
       {
           // Ad {args.AdUnitId} failed for to load with {args.Message}
           // Attempting to load a new ad from the OnAdFailedToLoad event is strongly discouraged.
       }
   }
   ```

2. Configurar os parâmetros de carregamento de anúncios em `AdRequestConfiguration`.

   ```c#
   string adUnitId = "demo-interstitial-yandex"; // replace with "R-M-XXXXXX-Y"
   AdRequestConfiguration adRequestConfiguration = new AdRequestConfiguration.Builder(adUnitId).Build();
   ```

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

   Você pode expandir os parâmetros de solicitação de anúncio através de  `AdRequestConfiguration.Builder` passando interesses do usuário, dados contextuais do aplicativo, detalhes de localização ou outros dados. Fornecer dados contextuais adicionais na solicitação pode melhorar consideravelmente a qualidade do anúncio.

   {% endnote %}

3. Carregue o anúncio com o método `LoadAd`, passando `AdRequestConfiguration` como argumento.

   ```c#
   interstitialAdLoader.LoadAd(adRequestConfiguration);
   ```

4. Registrar listeners para eventos em que os usuários interagem com seu anúncio.

   ```c#
   using System;

   // ...
   interstitial.OnAdClicked += HandleAdClicked;
   interstitial.OnAdShown += HandleInterstitialShown;
   interstitial.OnAdFailedToShow += HandleInterstitialFailedToShow;
   interstitial.OnAdImpression += HandleImpression;
   interstitial.OnAdDismissed += HandleInterstitialDismissed;
   // ...

   public void HandleAdClicked(object sender, EventArgs args)
   {
       // Called when a click is recorded for an ad.
   }

   public void HandleInterstitialShown(object sender, EventArgs args)
   {
       // Called when ad is shown.
   }

   public void HandleInterstitialFailedToShow(object sender, AdFailureEventArgs args)
   {
       // Called when an InterstitialAd failed to show.
   }

   public void HandleInterstitialDismissed(object sender, EventArgs args)
   {
       // Called when ad is dismissed.
   }

   public void HandleImpression(object sender, ImpressionData impressionData)
   {
       // Called when an impression is recorded for an ad.
   }
   ```

5. Mostre o anúncio chamando  `Show()` no objeto `Interstitial`.

   ```c#
   if (interstitial != null)
   {
       interstitial.Show();
   }
   ```

6. Chame  `Destroy()` em anúncios que são exibidos e elimine links que não são mais usados na tela atual.

   Isso libera os recursos e evita vazamentos de memória.

   ```c#
   public void DestroyInterstitial()
   {
       if (interstitial != null)
       {
           interstitial.Destroy();
           interstitial = null;
       }
   }
   ```

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

{% list tabs %}

- Android

   <!-- source: pt/dev/_includes/test-android-interstitial.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 anúncios intersticiais 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-interstitial-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 verificar sua integração de anúncios intersticiais usando o analisador integrado do SDK.

   A ferramenta garante que seus anúncios intersticiais 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á a seguinte mensagem:

   ```bash
   adb logcat -v brief '*:S YandexAds'
   mobileads$ adb logcat -v brief '*:S YandexAds'
   I/YandexAds(13719): [Integration] Ad type interstitial was integrated successfully
   ```

   Se você estiver tendo problemas para integrar anúncios intersticiais, receberá um relatório detalhado sobre os problemas e recomendações de como corrigi-los.
   <!-- endsource: pt/dev/_includes/test-android-interstitial.md -->

- iOS

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

   <!-- source: pt/dev/_includes/test-ios-interstitial.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-interstitial-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-interstitial.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 chamar o carregamento de anúncios no método `Awake` para `gameObject`. Você precisa preservar o objeto entre as cenas usando a chamada  `DontDestroyOnLoad()`. Isso garante que o anúncio carregado não seja excluído junto com o `gameObject` na mudança de cena.

```c#
private void Awake()
{
    SetupLoader();
    RequestInterstitial();
    DontDestroyOnLoad(gameObject);
}
```

Além disso, você pode vincular o carregamento do próximo anúncio às funções de callback executadas quando a exibição do anúncio é concluída ou falha. Assim:

```c#
public void HandleInterstitialFailedToShow(object sender, EventArgs args)
{
    // Called when an InterstitialAd failed to show.

    // Clear resources after Ad dismissed.
    DestroyInterstitial();

    // Now you can preload the next interstitial ad.
    RequestInterstitial();
}

public void HandleInterstitialDismissed(object sender, EventArgs args)
{
    // Called when ad is dismissed.

    // Clear resources after Ad dismissed.
    DestroyInterstitial();

    // Now you can preload the next interstitial ad.
    RequestInterstitial();
}
```

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

### Exemplo de código completo

```c#
using System;
using UnityEngine;
using UnityEngine.UI;
using YandexMobileAds;
using YandexMobileAds.Base;

public class YandexMobileAdsInterstitialDemoScript : MonoBehaviour
{
    private InterstitialAdLoader interstitialAdLoader;
    private Interstitial interstitial;
    [SerializeField] private Button button;

    private void Awake()
    {
        SetupLoader();
        RequestInterstitial();
        DontDestroyOnLoad(gameObject);
        button = this.GetComponent<Button>();
        button.onClick.AddListener(ShowInterstitial);
    }

    private void SetupLoader()
    {
        interstitialAdLoader = new InterstitialAdLoader();
        interstitialAdLoader.OnAdLoaded += HandleInterstitialLoaded;
        interstitialAdLoader.OnAdFailedToLoad += HandleInterstitialFailedToLoad;
    }

    private void RequestInterstitial()
    {
        string adUnitId = "demo-interstitial-yandex"; // replace with "R-M-XXXXXX-Y"
        AdRequestConfiguration adRequestConfiguration = new AdRequestConfiguration.Builder(adUnitId).Build();
        interstitialAdLoader.LoadAd(adRequestConfiguration);
    }

    private void ShowInterstitial()
    {
        if (interstitial != null)
        {
            interstitial.Show();
        }
    }

    public void HandleInterstitialLoaded(object sender, InterstitialAdLoadedEventArgs args)
    {
        // The ad was loaded successfully. Now you can handle it.
        interstitial = args.Interstitial;

        // Add events handlers for ad actions
        interstitial.OnAdClicked += HandleAdClicked;
        interstitial.OnAdShown += HandleInterstitialShown;
        interstitial.OnAdFailedToShow += HandleInterstitialFailedToShow;
        interstitial.OnAdImpression += HandleImpression;
        interstitial.OnAdDismissed += HandleInterstitialDismissed;
    }

    public void HandleInterstitialFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        // Ad {args.AdUnitId} failed for to load with {args.Message}
        // Attempting to load a new ad from the OnAdFailedToLoad event is strongly discouraged.
    }

    public void HandleInterstitialDismissed(object sender, EventArgs args)
    {
        // Called when ad is dismissed.

        // Clear resources after Ad dismissed.
        DestroyInterstitial();

        // Now you can preload the next interstitial ad.
        RequestInterstitial();
    }

    public void HandleInterstitialFailedToShow(object sender, EventArgs args)
    {
        // Called when an InterstitialAd failed to show.

        // Clear resources after Ad dismissed.
        DestroyInterstitial();

        // Now you can preload the next interstitial ad.
        RequestInterstitial();
    }

    public void HandleAdClicked(object sender, EventArgs args)
    {
        // Called when a click is recorded for an ad.
    }

    public void HandleInterstitialShown(object sender, EventArgs args)
    {
        // Called when ad is shown.
    }

    public void HandleImpression(object sender, ImpressionData impressionData)
    {
        // Called when an impression is recorded for an ad.
    }

    public void DestroyInterstitial()
    {
        if (interstitial != null)
        {
            interstitial.Destroy();
            interstitial = null;
        }
    }
}
```

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