Produto
Frequência de anúncios que respeita o jogador
Os aplicativos SpiderWorks são gratuitos e exibem anúncios do Google AdMob. Isso cria uma tensão permanente entre receita e experiência. Este texto compara como os anúncios funcionam nas versões enviadas ao Google Play e a regra mais restritiva adotada nas versões em preparação.
Primeiro o consentimento
Antes de qualquer anúncio, o aplicativo consulta a plataforma de mensagens de consentimento do Google (UMP). A sequência é: atualizar as informações de consentimento, mostrar o formulário se ele for exigido na região do usuário e só então, se a biblioteca indicar que anúncios podem ser solicitados, inicializar o SDK de anúncios. Quando o regulamento exige, um botão de “Opções de privacidade” permite rever a escolha depois. Recusar anúncios personalizados não bloqueia nenhuma função do jogo.
A configuração de anúncios limita a classificação máxima do conteúdo a “G” (adequado a todos os públicos). Os aplicativos não são declarados como direcionados a crianças; se essa decisão mudar para algum título, o código já tem a marcação de tratamento infantil preparada, mas ela exige revisão das declarações na loja.
Também há uma proteção contra um erro comum: compilações de produção falham se ainda estiverem usando os identificadores de teste do Google, e o script de publicação recusa identificadores ausentes ou malformados.
Formatos usados
Hoje são usados dois formatos: um banner fixo de 50 dp abaixo da área de jogo e anúncios intersticiais (tela cheia) em transições. Não há anúncios premiados nem anúncios na abertura do aplicativo. O banner fica fora da área de toque do jogo, para não receber cliques acidentais, e o espaço é reservado desde o início, para que a interface não salte quando o anúncio carrega.
O momento importa mais que a quantidade
Um intersticial no meio de uma jogada é o pior cenário: interrompe uma decisão, pode receber um toque destinado ao jogo e fica associado à frustração. As políticas do AdMob também desencorajam anúncios que aparecem de forma inesperada. Por isso a regra básica é pedir intersticiais apenas em pausas naturais: ao concluir uma fase, ao terminar uma partida ou na troca de jogador.
No Memory Master, o pedido não acontece no instante da vitória. O jogo espera alguns segundos para o jogador ver o último par, mostra a tela de resultado e só considera o anúncio quando a pessoa toca para seguir.
O contador por partidas concluídas
A regra nasceu no Memory Master. Na versão 1.0.1, enviada para revisão, ela é simples: um contador gravado no aparelho soma partidas concluídas, e a cada cinco o jogo pede um intersticial. Reiniciar ou abandonar uma fase não conta.
As versões em preparação desde 22/10/2026 levam a regra a todo o catálogo, como um módulo comum, e acrescentam quatro condições:
- Cada partida tem um identificador. Rever a tela de resultado não conta a mesma partida duas vezes.
- Nunca na primeira partida concluída da sessão. Quem abre o aplicativo e termina a primeira fase não vê um anúncio logo de saída, mesmo que o contador gravado de uma sessão anterior já esteja em cinco. Nesse caso, a oportunidade passa para a próxima partida.
- O pedido só ocorre na transição. A oportunidade é consumida quando o jogador sai do resultado, não quando a partida termina.
- Sem fila. Se nenhum anúncio estiver carregado naquele momento, a oportunidade é descartada e o contador volta a zero. Um anúncio que não carregou não é exibido mais tarde, em um momento pior.
function consumeAdOpportunity(storage = defaultStorage()) {
if (!status(storage).due) return false;
write(0, storage); // zera mesmo que o anúncio não esteja disponível
return true;
}
O que conta como “partida concluída” depende do jogo e é decidido por ele: uma fase vencida no Memory Master, uma vitória na Paciência (tocar em “Novo” no meio da partida é abandono e não conta), uma batalha terminada na Batalha Naval, uma rodada da Forca ou uma rodada de cinco palavras na Palavra Embaralhada.
Uma segunda trava, por tempo
O contador vive na página do jogo. A camada Android, em Flutter, acrescenta uma trava independente: nenhum intersticial nos primeiros 120 segundos depois que o aplicativo abre e, no mínimo, 180 segundos entre dois intersticiais. Um pedido fora dessa janela é descartado, e a página recebe a mesma resposta de “sem anúncio disponível”, seguindo o jogo. Assim, mesmo que um jogo tenha partidas muito curtas, a frequência fica limitada pelo relógio.
A abertura também ganhou um limite: se o consentimento e a inicialização dos anúncios não terminarem em 8 segundos, o aplicativo abre sem anúncios naquela sessão em vez de deixar o jogador esperando.
Casos de borda
O contador fica em localStorage, que pode estar bloqueado ou corrompido. Toda leitura e escrita é protegida: um valor inválido volta a zero, e, se o armazenamento falhar, um contador em memória mantém a regra durante a sessão. A regra também foi escrita como um módulo separado do jogo, sem dependência da interface, para poder ser testada isoladamente. Na revisão em desenvolvimento há seis testes unitários dessa regra e um teste de fluxo em navegador sem interface (Playwright) que joga dez partidas seguidas e confere que as oportunidades surgem exatamente na 5ª e na 10ª, que nenhum anúncio aparece enquanto o resultado está na tela e que reiniciar no meio da fase não conta.
Outro caso é o anúncio que falha ou é fechado. O jogo sempre continua pela mesma função de retorno, com ou sem anúncio. Nunca há uma tela de espera dependente da rede.
Antes e depois, jogo a jogo
A transparência exige mostrar o ponto de partida. Nas versões 1.0.1 enviadas ao Google Play, cada jogo pedia o intersticial em uma transição própria, e em alguns a frequência era alta:
| Jogo | Versão 1.0.1 (em análise) | Versão em preparação |
|---|---|---|
| Memory Master | A cada 5 fases concluídas | Regra comum + trava por tempo |
| Paciência SpiderWorks | Ao iniciar nova partida e após a vitória | Regra comum (só vitórias contam) |
| Sudoku Pro | Ao concluir cada fase e ao pedir dica | Regra comum; dica sem anúncio |
| Palavra Embaralhada | A cada palavra acertada | Regra comum, por rodada de 5 palavras |
| Forca em Dupla | Em toda troca de jogador | Regra comum, por rodada |
| Batalha Naval em Dupla | No instante em que a partida termina | Regra comum, só ao sair do resultado |
| Desafio Matemático | Nenhum intersticial; só banner | Regra comum |
Pedir um anúncio a cada palavra acertada ou a cada troca de jogador era, na prática, a experiência que este texto procura evitar. As versões em preparação ainda não foram enviadas à loja; até lá, quem instalar a versão 1.0.1, quando liberada, verá o comportamento da coluna do meio.
Princípios
- Consentimento e configuração de público antes de qualquer pedido.
- Anúncio só em pausa natural, nunca durante uma decisão.
- Frequência por progresso real (partidas concluídas), não por tempo de tela ou toques.
- Carência no início da sessão.
- Oportunidade perdida é descartada, não acumulada.
- O jogo funciona igual com ou sem anúncio carregado.
- Regra isolada e testada, para não depender de leitura visual de cada tela.