Canais de anúncio

Este guia mostra como usar o plug-in dos anúncios para dispositivos móveis do Google para Unity Recurso de posições para criar e exibir anúncios para seu app.

Pré-requisitos

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

Antes de carregar os anúncios, inicialize o SDK dos 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
        });
        ...
    }
}

Criação de canais de anúncio

A primeira etapa para exibir um banner com os anúncios para celular do Google é criar e configurar um posicionamento do anúncio. É possível selecionar uma posição de banner, Intersticial ou premiado em Recursos > Anúncios para dispositivos móveis do Google > Anúncio Posições no editor do Unity. Três posicionamentos de anúncios de demonstração são configurado e pronto para uso.

Para adicionar um novo posicionamento do anúncio, clique no botão Adicionar novo posicionamento no final do da lista. É possível configurar o posicionamento do anúncio na visualização do inspetor.

Configuração do posicionamento do anúncio

Cada veiculação tem as seguintes propriedades:

Nome do canal
Nome do canal. Usado para identificar canais ao configurar anúncios em um cena.
Formato do anúncio
Banner, premiado, intersticial. Tipo de anúncio.
ID do bloco de anúncios
Informe o ID do bloco de anúncios de banner para Android e iOS. Você precisa fornecer pelo menos um ID do bloco de anúncios.
Persistente em todas as cenas
Quando esta opção é marcada, o banner persiste na tela independentemente da cena mudanças (mesmo comportamento que DontDestroyOnLoad).
Carregamento automático ativado
Ao marcar esta opção, um anúncio será carregado automaticamente quando uma cena associada a a posição do anúncio é carregada.

A captura de tela a seguir mostra um exemplo de uma posição de anúncio chamada My Awesome Banner.

Como adicionar um AdGameObject à cena

Você pode adicionar um AdGameObject para os formatos banner, intersticial ou premiado ao seu cena usando GameObject > Anúncios para dispositivos móveis do Google no Unity Editor. Selecione o para adicionar um posicionamento à cena ativa.

Depois de adicionar um AdGameObject à cena, 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 GameObject por conta própria. A captura de tela a seguir mostra um exemplo de um AdGameObject chamado Anúncio em banner.

Configurações do AdGameObject

É possível configurar o AdGameObject na sua cena a partir do Inspector nas configurações do componente Objeto de anúncio do jogo (Script).

Posicionamento do anúncio

Selecione o posicionamento do anúncio na lista suspensa de posicionamentos configurados. A de anúncios terá apenas blocos de anúncios do formato correto. Por exemplo, para anúncios de banner objetos de jogos, a lista suspensa mostrará apenas os posicionamentos de anúncios de banner configurados.

Configuração do 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 o anúncio. a altura.
      • Usar largura de tela cheia: quando marcada, o banner ocupa espaço largura de tela cheia. Você pode ajustar a porcentagem de largura da tela (50 a 99%) se desmarque a opção Usar largura em tela cheia.
    • Personalizado permite fornecer a largura e a altura do banner.
  • Posição do anúncio: selecione a posição do banner.

Callbacks

É possível implementar funções que correspondam a callbacks do anúncio. Por exemplo, se que você quer resolver quando ocorre uma falha no carregamento de um anúncio de banner:

  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 +, depois arraste e e solte o GameObject que você anexou para o script.

  4. Selecione a função que você quer vincular ao callback do anúncio. Para o retornos de chamada de anúncio parametrizados, selecione a função para aceitar o para que você possa receber o valor do parâmetro do SDK.

Usar AdGameObject do script

Obter a instância AdGameObject do script

Todos os objetos AdGameObject têm o método de conveniência LoadAd(). Isso será carregado um anúncio com um AdRequest simples e não segmentado. Para aplicar a segmentação, você deve usar LoadAd(AdRequest adRequest) usando sua própria solicitação de anúncio configurada.

Para obter 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 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 acessar uma instância de um BannerAdGameObject e carregá-la como da seguinte forma:

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á acessar uma instância do da seguinte 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 com o 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

Mostrar um anúncio intersticial

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

Adicione um InterstitialAdGameObject à cena e ative o Carregamento automático. Ativado para que o anúncio seja carregado automaticamente quando a cena carregar.

Em seguida, inicialize o SDK da seguinte maneira: Observe que o Auto Load do AdGameObject não funcionará se você se esquecer de inicializar o SDK do Vertex AI Pipelines.

Em seguida, exiba um anúncio intersticial entre uma transição de telas chamando o método função InterstitialAdGameObject.ShowIfLoaded(). O código a seguir mostra 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 Carregamento automático na posição do anúncio, não é preciso solicitar um anúncio explicitamente. Quando a cena mudar, um anúncio intersticial aparecer se um estiver pronto.

Se quiser solicitar um anúncio manualmente, desative o recurso Carregamento automático de o inspetor de posições de anúncios e chamar o método InterstitialAdGameObject.LoadAd() . O snippet de código a seguir mostra como solicitar manualmente anúncio.

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 "assiste um anúncio premiado" estado do botão

Veja um exemplo de como ativar a opção "Assista a um anúncio premiado" usando o botão canais.

Adicione um GameObject de botão (chamado Button neste exemplo) à cena para que ele será usado para exibir um anúncio premiado. Tornaremos este botão disponível apenas quando um anúncio premiado está disponível.

No método Start(), mude o estado ativo do botão para false. Isso fará o botão desaparecer da cena.

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

Adicione um RewardedAdGameObject à cena e selecione a demonstração da AdMob premiada Posição do anúncio no menu suspenso.

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

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

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

Em seguida, crie o botão para exibir um anúncio premiado quando clicado. Na guia Ativado Click() na seção de callbacks no inspetor de botões, clique no botão + e arraste e solte o GameObject do canal de anúncios premiados (chamado de Anúncio premiado neste exemplo) no campo None (Object).

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

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 o anúncio premiado é carregado e está pronto para ser exibido.

Configurar um callback de prêmio para um PremiadoAdGameObject

Veja um exemplo de como configurar um callback premiado para um anúncio premiado para que você possa oferecer um prêmio a um usuário quando uma função de callback for chamou.

Crie um novo script e defina uma função que aceite Reward como um parâmetro. da seguinte forma.

using UnityEngine;
using GoogleMobileAds.Api;

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

Anexar o script RewardedTestScript a qualquer GameObject (exceto o anúncio GameObject do canal) na cena. Neste exemplo, ela está anexada à interface GameObject da câmera

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 um prêmio for concedidas a um usuário.

Arraste e solte o GameObject da câmera principal que você adicionou na fase anterior etapa para o campo Nenhum (objeto). Selecione uma função a ser chamada no no menu suspenso. Clique em No Function > PremiadoTestScript > OnUserGained Rewards.

Depois de executar o projeto e assistir a um anúncio premiado, RewardedTestScript.OnUserEarnedReward() será invocado quando você for ser recompensados por interagir com o anúncio.