Adicionar anúncios intersticiais a um aplicativo Unity

O Audience Network permite que você monetize os seus aplicativos para Android e para iOS usando os anúncios do Facebook. Os anúncios intersticiais são experiências de anúncio em tela cheia que podem ser usadas em pontos de transição no fluxo de um aplicativo, por exemplo, entre atividades ou durante uma pausa entre níveis de um jogo. O conteúdo criativo pode ser de imagens, de vídeos ou de carrosséis. Este guia explica como adicionar anúncios intersticiais ao seu aplicativo.

Certifique-se de ter concluído os guias de Introdução do Audience Network e de Introdução do Unity antes de continuar.

Etapas de anúncio intersticial

Etapa 1: criar um objeto de anúncio intersticial

Etapa 2: adicionar eventos de retorno de chamada

Etapa 3: carregar um anúncio

Etapa 4: exibir o anúncio

Etapa 1: criar um objeto de anúncio intersticial

A primeira etapa para exibir um anúncio intersticial é criar um objeto InterstitialAd em um script C# anexado a um GameObject.

...
using AudienceNetwork;
...

public class InterstitialAdTest : MonoBehaviour
{
    ...
    private InterstitialAd interstitialAd;
    private bool isLoaded;
    ...

    public void LoadInterstitial()
    {
        this.interstitialAd = new InterstitialAd("YOUR_PLACEMENT_ID");
        this.interstitialAd.Register(this.gameObject);

        // Set delegates to get notified on changes or when the user interacts with the ad.
        this.interstitialAd.InterstitialAdDidLoad = (delegate() {
            Debug.Log("Interstitial ad loaded.");
            this.isLoaded = true;
        });
        interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) {
            Debug.Log("Interstitial ad failed to load with error: " + error);
        });
        interstitialAd.InterstitialAdWillLogImpression = (delegate() {
            Debug.Log("Interstitial ad logged impression.");
        });
        interstitialAd.InterstitialAdDidClick = (delegate() {
            Debug.Log("Interstitial ad clicked.");
        });

        this.interstitialAd.interstitialAdDidClose = (delegate() {
            Debug.Log("Interstitial ad did close.");
            if (this.interstitialAd != null) {
                this.interstitialAd.Dispose();
            }
        });

        // Initiate the request to load the ad.
        this.interstitialAd.LoadAd();
    }
    ...
}

O construtor de um InterstitialAd tem os seguintes parâmetros.

  • placementId: a identificação do posicionamento do Audience Network para essa unidade de anúncio intersticial.

Etapa 2: adicionar eventos de retorno de chamada

Depois, você pode implementar alguns retornos de chamada para assinar os eventos do ciclo de vida do anúncio. Para monitorar esses eventos, registre um delegado para o evento, como no exemplo abaixo:

...
// Set delegates to get notified on changes or when the user interacts with the ad.
this.interstitialAd.InterstitialAdDidLoad = (delegate() {
    Debug.Log("Interstitial ad loaded.");
    this.isLoaded = true;
});
interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) {
    Debug.Log("Interstitial ad failed to load with error: " + error);
});
interstitialAd.InterstitialAdWillLogImpression = (delegate() {
    Debug.Log("Interstitial ad logged impression.");
});
interstitialAd.InterstitialAdDidClick = (delegate() {
    Debug.Log("Interstitial ad clicked.");
});

this.interstitialAd.interstitialAdDidClose = (delegate() {
    Debug.Log("Interstitial ad did close.");
    if (this.interstitialAd != null) {
        this.interstitialAd.Dispose();
    }
});
...

Retorno de chamada para atividade de anúncio destruída no Unity Android

Este documento só é relevante para Android.

No momento, os jogos do Unity para Android são compatíveis somente com o Unity principal Activity para ter launchMode de singleTask. Consulte o Documento do Unity para o manifesto Android e o Documento do Android para atividade.

Como usamos Activity para mostrar anúncios Interstitial e Rewarded Video, a atividade de anúncios pode ser destruída sem ser fechada corretamente quando um usuário coloca um aplicativo em segundo plano e, depois, o abre novamente usando o ícone sem usar a opção de trocar de aplicativo. Você pode usar os retornos de chamada a seguir e verificar se o anúncio foi fechado pelo usuário:

Para intersticiais:

this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); this.didClose = true; if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); #if UNITY_ANDROID /* *Relevante somente para Android. *Este retorno de chamada só será acionado se a atividade intersticial foi * destruída sem ser fechada adequadamente. Isso pode acontecer se um * aplicativo com launchMode:singleTask (como um jogo do Unity) ficar em * segundo plano e, depois, for aberto novamente quando o usuário tocar no ícone. */ this.interstitialAd.interstitialAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Interstitial activity destroyed without being closed first."); Debug.Log("Game should resume."); } }); #endif 

Para vídeos com incentivo:

this.rewardedVideoAd.rewardedVideoAdDidClose = (delegate() { Debug.Log("Rewarded video ad did close."); this.didClose = true; if (this.rewardedVideoAd != null) { this.rewardedVideoAd.Dispose(); } }); #if UNITY_ANDROID /* *Relevante somente para Android. *Este retorno de chamada só será acionado se a atividade intersticial foi * destruída sem ser fechada adequadamente. Isso pode acontecer se um * aplicativo com launchMode:singleTask (como um jogo do Unity) ficar em * segundo plano e, depois, for aberto novamente quando o usuário tocar no ícone. */ this.rewardedVideoAd.rewardedVideoAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Rewarded video activity destroyed without being closed first."); Debug.Log("Game should resume. User should not get a reward."); } }); #endif 

Etapa 3: carregar um anúncio

Após a instanciação do InterstitialAd, é necessário carregar um anúncio. Para isso, use o método loadAd() na classe InterstitialAd.

Veja como carregar um anúncio no exemplo exibido acima.

...
this.interstitialAd.LoadAd();
...

Etapa 4: exibir o anúncio

Após o carregamento do anúncio intersticial, você poderá fazer uma chamada para o método Show e, assim, renderizar o anúncio na tela. Por exemplo, você pode ter uma função para ShowInterstitial e fazer uma chamada para ela quando estiver na hora de exibir o anúncio intersticial:

// Show button
public void ShowInterstitial()
{
    if (this.isLoaded) {
        this.interstitialAd.Show();
        this.isLoaded = false;

    } else {
        Debug.Log("Interstitial Ad not loaded!");
    }
}

Próximas etapas

Siga nossos guias para integrar diferentes formatos de anúncio no seu aplicativo Unity:

Quando estiver pronto para lançar seu aplicativo e monetizar, envie o aplicativo para análise após garantir que ele cumpre as Políticas do Audience Network e os Padrões da Comunidade do Facebook.