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
Unity 2017.4 ou mais recente
Fazer o download e importar o build inicial do plug-in GMA para Unity.
Defina o ID do app AdMob na seção Editor do Unity.
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.
- O Banner adaptativo fixo oferece mais algumas opções:
- 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:
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); }
Anexe o script que contém a função acima a qualquer GameObject na cena
Clique no botão +, depois arraste e e solte o GameObject que você anexou para o script.
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:
Banner
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.
Banner
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.