Todo desenvolvedor do Unity que lança um jogo móvel eventualmente chega a uma parede: o jogo funciona, é divertido, as pessoas estão jogando — e está gerando quase nenhum dinheiro. Em nove casos de dez, o problema não é o jogo. É a integração com anúncios.
O AdMob ainda é a camada padrão de monetização para jogos móveis em 2026, e é fácil de fazer errado de maneiras que só ficam evidentes quando você olha os gráficos de retenção uma semana após o lançamento. Este post apresenta uma forma limpa e pronta para produção de integrar o AdMob em um projeto do Unity — banners, intersticiais, anúncios com recompensas e anúncios de abertura de aplicativo — junto com as decisões sobre a colocação que realmente protegem sua taxa de retenção no primeiro dia ao invés de destruí-la silenciosamente.
Por que "Compila" Não É o Padrão
Muitos tutoriais do AdMob param em "aqui está como exibir uma intersticial." Isso é a parte fácil, 20%. A parte que realmente determina se seu jogo vai ganhar dinheiro ou ser desinstalado é:
- Quando um anúncio é disparado (nunca durante o gameplay, sempre em uma pausa natural)
- Com que frequência ele é disparado (limitação de frequência não é opcional)
- Se está pré-carregado antes de ser necessário (nada mata a sensação do jogo como um atraso de 2 segundos esperando o anúncio carregar)
- Se a recompensa é concedida apenas após o anúncio realmente terminar (conceder cedo e você acabará pagando por anúncios que ninguém viu)
Mantenha essas quatro coisas em mente enquanto lê o código abaixo — a arquitetura existe especificamente para torná-las fáceis de fazer corretamente.
Passo 1: Configuração da Conta — Não Pule a Parte Chata
Antes de tocar no Unity, você precisa do seguinte em sua conta AdMob:
- Um ID de Aplicativo, formatado como
ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX - Um ID de Unidade de Anúncio por formato que você está usando (banner, intersticial, recompensado, abertura do aplicativo)
Crie unidades de anúncios separadas para Android e iOS mesmo se estiver lançando em apenas uma plataforma agora. Retrofitar isso mais tarde, uma vez que seu AdsManager esteja integrado por toda a base de código, é muito mais irritante do que fazer isso desde o início.
Um ponto importante para chamar explicitamente: nunca envie IDs de unidade de anúncio de teste para produção. É a razão mais comum pela qual os desenvolvedores veem impressões reais em seus painéis de análise, mas zero receita no painel AdMob.
Passo 2: Instale o Plugin Google Mobile Ads Unity
O plugin oficial do Google é a única integração suportada:
- Obtenha a versão mais recente
GoogleMobileAds.unitypackageda página de lançamentos do GitHub Google Mobile Ads - No Unity:
Assets → Import Package → Custom Package - Importe tudo quando solicitado
- Vá para
Assets → Google Mobile Ads → Settingse insira seus IDs de aplicativo Android e iOS - Habilite Atrasar Medição do Aplicativo se o Firebase Analytics também estiver no projeto
Depois da importação, verifique AndroidManifest.xml pelo bloco de meta-dados injetado automaticamente:
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX"></meta-data>
Se isso está ausente ou ainda mantém um valor de placeholder, o aplicativo irá falhar ao iniciar no Android — um erro surpreendentemente comum na primeira submissão.
Passo 3: Inicializar Antes de Solicitar um Anúncio
Este é o passo mais pulado, e a razão pela qual muitos relatórios de bugs "AdMob não está funcionando" existem. Os anúncios devem ser solicitados apenas após a SDK confirmar que foi inicializada:
using GoogleMobileAds.Api;
using System.Collections.Generic;
using UnityEngine;
public class AdsManager :
Passo 4: Implementar Cada Formato de Anúncio Corretamente
Anúncios em Faixa (Banner Ads)
Menor eCPM, maior taxa de preenchimento. Use-os nas telas de menu e resultados — nunca durante o jogo ativo.
private BannerView bannerView;
public void LoadBannerAd()
{
string adUnitId = "ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX";
if (bannerView != null) bannerView.Destroy();
AdSize adSize = AdSize.
private InterstitialAd interstitialAd;
public void LoadInterstitialAd()
{
private RewardedAd rewardedAd;
public void LoadRewardedAd()
{
string adUnitId = "ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX";
RewardedAd.Load(adUnitId
private AppOpenAd appOpenAd;
private System.DateTime
void OnLevelComplete()
{
levelCount++;
if (levelCount % 3 == 0)
{
AdsManager.Instance.ShowInterstitialAd();
}
LoadNextLevel();
}
void OnGameOver()
{
AdsManager.Instance.ShowInterstitialAd();
ShowGameOverUI
[ ] Todas as IDs de unidade publicitária são IDs reais de produção, não IDs de teste
[ ] A ID do aplicativo está corretamente configurada em AndroidManifest.xml
[ ] O AdMob é inicializado antes que a primeira solicitação de anúncio seja enviada
[ ] Anúncios intersticiais são pré-carregados imediatamente após o desligamento
[ ] Anúncios recompensados concedem a recompensa apenas dentro da chamada de retorno de recompensa
[ ] O aplicativo não cai se um anúncio falhar ao carregar
[ ] O Ad Inspector confirma que cada formato é exibido em um dispositivo físico
[ ] Banners usam tamanhos adaptativos ancorados
[ ] Nenhum anúncio aparece durante o jogo ativo — apenas nas transições e menus
[ ] A limitação de frequência está realmente configurada, não é definida como "em cada nível" por padrão
Conclusão
Nenhum desses pontos é complicado uma vez que você já o fez antes, mas quase todos os itens acima são algo que os desenvolvedores erram na primeira tentativa — geralmente porque um tutorial parou em "anúncio aparece na tela" em vez de abordar pré-carregamento, limitação de frequência e integridade da recompensa. Considere esses quatro fundamentos corretamente, e o resto do seu sistema de monetização (medição, IAP, live-ops) tem algo sólido para construir em cima em vez de lutar contra uma fundação vazia.
Se você integrou o AdMob em um projeto Unity recentemente, ficaria curioso sobre quais limitações de frequência e posições funcionaram para seu gênero — deixe-os nos comentários.

