Canais de anúncio

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Este guia mostra como usar o recurso de posições de anúncio do plugin dos anúncios para dispositivos móveis do Google para criar e exibir anúncios no seu app.

Pré-requisitos

Inicializar o SDK de anúncios do Google para dispositivos móveis

Antes de carregar anúncios, inicialize o SDK de anúncios para dispositivos móveis chamando MobileAds.Initialize() com um callback Action<InitializationStatus>. Isso precisa ser feito apenas uma vez, de preferência na inicialização do app.

using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    ...
    public void Start()
    {
        // Initialize the Mobile Ads SDK.
        MobileAds.Initialize((initStatus) =>
        {
            // SDK initialization is complete
        });
        ...
    }
}

Criar posições de anúncios

A primeira etapa para exibir um banner com os anúncios para dispositivos móveis do Google é criar e configurar um posicionamento de anúncio. Você pode selecionar um posicionamento de anúncio de banner, intersticial ou premiado em Recursos > Anúncios para dispositivos móveis do Google > Posições de anúncios no Editor do Unity. Três posições de anúncios de demonstração foram configuradas e estão prontas para uso.

Para adicionar uma nova posição do anúncio, clique no botão Adicionar nova posição no fim da lista. Você pode configurar a posição do anúncio na visualização do inspetor.

Configuração de posicionamento do anúncio

Cada posição tem as seguintes propriedades:

Nome do canal
Nome do canal. Usado para identificar posições ao configurar anúncios em uma cena.
Formato do anúncio
Banner, premiado e intersticial. Tipo do anúncio.
ID do bloco de anúncios
Insira o ID do bloco de anúncios de banner para Android e iOS. É necessário fornecer pelo menos um ID de bloco de anúncios.
Permanente em todos os cenários
Quando selecionado, o banner persiste na tela, independentemente das mudanças de cena (mesmo comportamento de DontDestroyOnLoad).
Carregamento automático ativado
Quando marcado, um anúncio é carregado automaticamente quando uma cena associada ao posicionamento do anúncio é carregada.

A captura de tela abaixo mostra um exemplo de posicionamento do anúncio chamado Meu banner incrível.

Como adicionar um AdGameObject ao cenário

É possível adicionar um AdGameObject para formatos de banner, intersticiais ou premiados à sua cena usando GameObject > Google Mobile Ads no Editor do Unity. Selecione o formato para adicionar uma posição à cena ativa.

Depois de adicionar um AdGameObject ao cenário, você verá um GameObject que representa o anúncio na visualização de hierarquia do editor do Unity.

É possível mudar o nome da posição mudando o nome do próprio GameObject. A captura de tela abaixo mostra um exemplo de um AdGameObject chamado Anúncio de banner.

Configurações do AdGameObject

Você pode configurar o AdGameObject na sua cena na visualização do inspetor nas configurações do componente Ad Game Object (Script).

Posicionamento do anúncio

Selecione o canal do anúncio na lista suspensa de canais configurados. A lista terá somente blocos de anúncios para o formato correto. Por exemplo, para objetos de jogo de anúncio de banner, o menu suspenso mostrará apenas as posições configuradas para anúncios de banner.

Configuração da BannerAdGameObject (somente banner)

  • Tamanho: selecione o tamanho do banner que você quer usar.
    • O banner adaptativo fixo oferece mais algumas opções:
      • Orientação: selecione a orientação do dispositivo usada para calcular a altura do anúncio.
      • Usar a largura em tela cheia: quando essa opção é marcada, o banner ocupa a largura em tela cheia. É possível ajustar a porcentagem de largura da tela (50 a 99%) se você desmarcar a opção Usar largura total da tela.
    • Personalizado permite informar a largura e a altura do banner.
  • Posição do anúncio: selecione a posição em que o banner será colocado.

Callbacks

Você pode implementar funções que correspondam aos callbacks do anúncio. Por exemplo, se você quiser processar quando um anúncio de banner não é carregado:

  1. Crie uma função compatível com o callback do anúncio.

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. Anexe o script que contém a função acima a qualquer GameObject na cena.

  3. Clique no botão + e arraste & solte o GameObject a que você conectou o script.

  4. Selecione a função que você quer vincular ao callback do anúncio. Para os retornos de chamada de anúncios parametrizados, selecione a função para aceitar a variável dinâmica e receber o valor do parâmetro do SDK.

Usar AdGameObject do script

Acessar a instância AdGameObject do script

Todos os objetos AdGameObject têm o método de conveniência LoadAd(). Isso carregará um anúncio com uma AdRequest simples e sem segmentação. Para aplicar a segmentação, use LoadAd(AdRequest adRequest) usando sua própria solicitação de anúncio configurada.

Para acessar a instância de um AdGameObject, use o seguinte método para cada formato:

MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

O objeto BannerAdGameObject retornado também tem os métodos de conveniência Hide() e Show().

Intersticial

MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

O objeto InterstitialAdGameObject retornado tem um método de conveniência ShowIfLoaded().

Premiado

MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

O objeto RewardedAdGameObject retornado tem um método de conveniência ShowIfLoaded().

Por exemplo, é possível receber uma instância de um BannerAdGameObject e carregá-la da seguinte maneira:

using UnityEngine;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class BannerTestScript : MonoBehaviour
{
    BannerAdGameObject bannerAd;

    void Start()
    {
        bannerAd = MobileAds.Instance
            .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

        bannerAd.LoadAd();
        ...
    }
    ...
}

Se houver um BannerAdGameObject chamado BannerAd, você poderá conseguir uma instância dele desta forma:

MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");

Acessar o objeto de anúncio subjacente no AdGameObject

Esses snippets demonstram como acessar o objeto de anúncio subjacente associado ao AdGameObject.

BannerAdGameObject bannerAd = MobileAds.Instance
    .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

// Access BannerView object
BannerView bannerView = bannerAd.BannerView;

Intersticial

InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
    .GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;

Premiado

RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
    .Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;

Exemplos

Exibir um anúncio intersticial

Veja um exemplo de como configurar um jogo para carregar e exibir um anúncio intersticial usando um AdGameObject.

Adicione um InterstitialAdGameObject à cena e ative o recurso Carregamento automático ativado para que o anúncio seja carregado automaticamente quando a cena for carregada.

Em seguida, verifique se você inicializou o SDK usando o método a seguir. O recurso Auto Load no AdGameObject não vai funcionar se você se esquecer de inicializar o SDK.

Em seguida, exiba um anúncio intersticial entre uma transição de tela chamando a função InterstitialAdGameObject.ShowIfLoaded(). O código a seguir mostra um exemplo de exibição de um anúncio intersticial entre uma transição de cena.

using UnityEngine;
using UnityEngine.SceneManagement;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAd<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }

    public void OnClickShowGameSceneButton()
    {
        // Display an interstitial ad
        interstitialAd.ShowIfLoaded();

        // Load a scene named "GameScene"
        SceneManager.LoadScene("GameScene");
    }
}

Como você ativou o recurso de carregamento automático na posição do anúncio, não é necessário solicitar um anúncio explicitamente. Quando a cena mudar, um anúncio intersticial será exibido caso esteja pronto.

Caso queira solicitar um anúncio manualmente, desative o recurso Carregamento automático no inspetor de posições de anúncios e chame a função InterstitialAdGameObject.LoadAd(). O snippet de código a seguir mostra como solicitar um anúncio manualmente.

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAdGameObject<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("MobileAds initialized");

            // Load an interstitial ad after the SDK initialization is complete
            interstitialAd.LoadAd();
        });
    }
    ...
}

Processar o estado do botão "Assistir a um anúncio premiado"

Veja um exemplo de como ativar um botão ""assistir a um anúncio premiado" usando canais de anúncios.

Adicione um botão GameObject (chamado Button neste exemplo) à cena, que será usado para exibir um anúncio premiado. Tornaremos esse botão disponível somente quando um anúncio premiado estiver disponível.

No método Start(), mude o estado ativo do botão para false. Isso faz com que o botão desapareça da cena.

public class MainScene : MonoBehaviour
{
    ...
    void Start()
    {
        GameObject.Find("Button").SetActive(false);
        ...
    }
}

Adicione um RewardedAdGameObject à cena e selecione o canal do anúncio para Anúncio premiado de demonstração da AdMob no menu suspenso.

Na seção "Callbacks" no inspetor RewardedAdGameObject, clique no botão + em On Ad Loaded() para permitir que a função seja chamada quando um anúncio premiado for carregado.

Arraste e solte o botão do GameObject que você adicionou na etapa anterior no campo Nenhum (objeto). Selecione uma função a ser chamada no menu suspenso. Clique em No Function > GameObject > SetActive(bool) e, em seguida, clique na caixa de seleção para enviar true como parâmetro (chama SetActive(true)).

Nesta seção"Callbacks", também é possível vincular um evento que será chamado quando o evento RewardedAd.OnUserEarnedReward for disparado. Para mais detalhes, consulte esta seção.

Em seguida, defina o botão para exibir um anúncio premiado quando clicado. Na seção de retornos de chamada No Click() no inspetor de botão, clique no botão + e arraste e solte o GameObject do canal de anúncio premiado (chamado Anúncio premiado neste exemplo) para o campo Nenhum (objeto).

Em seguida, anexe a função RewardedAdGameObject.ShowIfLoaded() ao callback On Click() do botão.

Por fim, não se esqueça de inicializar o SDK. O snippet de código a seguir é o código completo da cena usada neste exemplo:

using UnityEngine;

using GoogleMobileAds.Api;

public class MainScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("Button").SetActive(false);

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }
}

Depois de executar o projeto, você verá o botão exibido na cena quando um anúncio premiado for carregado e estiver pronto para ser exibido.

Configurar um callback de recompensa para um PremAdGameObject

Veja um exemplo de como configurar um callback premiado para uma posição de anúncio premiado. Assim, você pode dar um prêmio a um usuário quando uma função de callback for chamada.

Crie um novo script e defina uma função que aceite Reward como parâmetro, conforme mostrado a seguir.

using UnityEngine;
using GoogleMobileAds.Api;

class RewardedTestScript : MonoBehaviour {
    ...
    public void OnUserEarnedReward(Reward reward) {
        Debug.Log("OnUserEarnedReward: reward=" +
            reward.Type + ", amount=" + reward.Amount);
    }
    ...
}

Anexe o script RewardedTestScript a qualquer GameObject (exceto o GameObject de posição do anúncio) no cenário. Neste exemplo, ele está anexado ao GameObject da câmera principal.

Adicione um RewardedAdGameObject à cena. Em seguida, na seção "Callbacks" no inspetor RewardedAdGameObject, clique no botão + em No usuário Recompensa ganha (recompensa) para permitir que a função seja chamada quando uma recompensa for concedida a um usuário.

Arraste e solte o GameObject da câmera principal que você adicionou na etapa anterior ao campo Nenhum (objeto). Selecione uma função no menu suspenso. Clique em No Function > RewardedTestScript > OnUserGanhosedReward.

Depois de executar o projeto e assistir a um anúncio premiado, RewardedTestScript.OnUserEarnedReward() será invocado quando você receber a recompensa pela interação com o anúncio.