KasyKasy

Anúncios (AdMob)

Banner, interstitial e rewarded nos 4 formatos. Zero config para testar em debug.

Anúncios Google AdMob nos 4 formatos, nos 3 backends. Só nativo (iOS/Android). Na web, toda chamada de anúncio vira um no-op silencioso: o mesmo código roda em qualquer plataforma sem quebrar.

FormatoComo usarPremium vê?
BannerKasyAdBanner() (widget)Não, some para assinantes
InterstitialshowInterstitial()Não, some para assinantes
RewardedshowRewarded()Sim, o usuário opta
Rewarded interstitialshowRewardedInterstitial()Sim, o usuário opta

Assinante ativo não vê banner nem interstitial. Os recompensados ficam porque o usuário escolhe assistir para ganhar algo.

Implementação

Pelo MCP: peça ao assistente "adiciona ads no meu projeto". Ele roda add_feature por você. Veja MCP do Kasy.

O módulo de anúncios já vem ligado no modo Rápido do kasy new, e funciona em debug com anúncios de teste sem nenhuma configuração (veja Informações). Estes passos são para colocar em produção com IDs reais.

  1. Em projeto existente, confirme que o módulo está ligado:

    kasy add ads        # adiciona (pede os IDs opcionalmente)
    kasy remove ads     # remove
    kasy add --list     # mostra o que está ligado
  2. Crie a conta e o app no AdMob:

    1. Acesse admob.google.com
    2. Crie sua conta → Add App → selecione iOS ou Android
    3. Copie o App ID (ex.: ca-app-pub-XXXXXX~YYYYYYY)
    4. Crie unidades de anúncio para cada formato → copie os Ad Unit IDs
    App criado no AdMob com o App ID visível
    AdMob Console: App settings → App ID, o valor que você cola no kasy configure
  3. Configure no projeto:

    kasy configure

    O comando abre o console AdMob no navegador e pede:

    • App IDs (por plataforma) → gravados em Info.plist e strings.xml
    • Ad Unit IDs (8 valores: 4 formatos × 2 plataformas) → gravados no .env

    Pelo MCP: com os IDs em mãos, cole-os no chat e peça "configura os IDs do AdMob". O assistente roda configure_project_keys por você. Veja MCP do Kasy.

  4. Para os formatos recompensados (rewarded e rewarded interstitial), configure a verificação no servidor (SSV). Banner e interstitial não precisam.

    O kit já tem os endpoints prontos nos 3 backends:

    BackendEndpoint
    Firebaseads-verifyAdReward (Cloud Function)
    Supabaseverify-ad-reward (Edge Function)
    API (seu servidor)GET /ads/verify-reward
    1. Faça o deploy do endpoint (kasy deploy no Firebase, pelo MCP: deploy_backend; supabase functions deploy no Supabase)
    2. Copie a URL do endpoint
    3. AdMob Console → seu app → cada unidade de rewarded → SSV → cole a URL
    Campo de URL de callback do SSV preenchido no AdMob
    AdMob Console: unidade rewarded → Advanced settings → Server-side verification → callback URL
  5. Gere o build de release:

    kasy ios release       # iOS
    flutter build appbundle --release --dart-define=ENV=prod   # Android

    Pelo MCP: "publica o iOS" (release_ios).

Informações

Testar agora (debug, zero config)

Em kasy run, qualquer formato mostra anúncios de teste do Google automaticamente. Pode tocar à vontade, sem risco, sem precisar de conta no AdMob.

SituaçãoO que aparece
Debug (kasy run)Anúncio de teste (automático, seguro de tocar)
Release sem IDs reaisNada (some, sem risco de política)
Release com IDs reaisAnúncio real

Usar no código

Uma linha, onde você quiser:

const KasyAdBanner()

Para o retângulo médio:

const KasyAdBanner(size: KasyAdBannerSize.mediumRectangle)

Interstitial

final ads = ref.read(googleAdsProvider.notifier);

// Mostra com cooldown (padrão 50s entre exibições):
await ads.showInterstitialIfElapsed();

// Força sem cooldown:
await ads.showInterstitial();

Rewarded e Rewarded interstitial

O usuário assiste ao anúncio e ganha uma recompensa. A recompensa é verificada no servidor (SSV): nunca credite com base só no callback do cliente.

await ads.showRewarded(
  onReward: (reward) {
    // Só UI otimista. O crédito real vem do servidor (SSV).
  },
);

await ads.showRewardedInterstitial(onReward: (reward) { /* … */ });

As 8 variáveis do .env

Deixe em branco para usar anúncios de teste em debug (nada em release):

ADMOB_ANDROID_BANNER=
ADMOB_IOS_BANNER=
ADMOB_ANDROID_INTERSTITIAL=
ADMOB_IOS_INTERSTITIAL=
ADMOB_ANDROID_REWARDED=
ADMOB_IOS_REWARDED=
ADMOB_ANDROID_REWARDED_INTERSTITIAL=
ADMOB_IOS_REWARDED_INTERSTITIAL=

Os App IDs (ADMOB_ANDROID_APP_ID / ADMOB_IOS_APP_ID) não ficam no .env: o kasy configure os grava direto no nativo.

Demo no Admin

Para ver os 4 formatos funcionando em qualquer build (até release):

  1. Abra o console Admin (toque duas vezes no número de versão em Configurações)
  2. Vá em Depuração → Demo de anúncios

A demo sempre usa anúncios de teste, mesmo em produção com IDs reais configurados. Isso é intencional: clicar no seu próprio anúncio real conta como "atividade inválida" no AdMob e pode banir sua conta.

Atualizado em 03/11/2026