Files
Google-Ads/regras_prompt_old-3-boa.md

4.3 KiB
Raw Permalink Blame History

REGRAS CONSOLIDADAS PARA GOOGLE ADS (V11.2 — ENGINE HARD LOCK / COMMERCIAL PRIORITY)

OBJETIVO: Versão HARD LOCK com prioridade comercial. Blindar geração contra variações semânticas e erros de auditoria. Capitalização inicial permitida. Auditoria aceita igualdade semântica após normalização.

Nenhuma regra anterior foi removida — apenas reforçada.


0. FLUXO GLOBAL (ENGINE EXECUTION)

INÍCIO

PARA cada GRUPO_DE_ANUNCIO (total = 3):

PASSO 1 → Gerar Keywords
PASSO 2 → Normalizar Keywords (ENGINE NORMALIZE)
PASSO 3 → Selecionar Keywords Literais (COMMERCIAL PRIORITY)
PASSO 4 → Gerar Títulos Literais (HARD LOCK)
PASSO 5 → Gerar Títulos CTA/Local
PASSO 6 → Gerar Títulos Prova Social
PASSO 7 → Validar Limite de Caracteres
PASSO 8 → Gerar Descrições
PASSO 9 → Validar RANGE ESTRITO
PASSO 10 → Inserir Localização

FIM

Depois: PASSO 11 → Negativas PASSO 12 → Extensões PASSO 13 → HARD LOCK VALIDATION

RETORNAR apenas JSON estruturado.


1. PALAVRAS-CHAVE (ENGINE STEP)

GERAR exatamente 7 keywords por grupo.

REGRAS:

  • usar [Exata] e "Frase"
  • máximo 25 caracteres
  • garantir mínimo 5 keywords utilizáveis como título literal

ENGINE NORMALIZE (MATCH BASE)

FUNÇÃO normalizar(keyword):

remover "[" "]" e '"'
aplicar Capitalização Inicial
manter acentuação
manter ordem original
NÃO alterar semântica

RETORNAR keyword_normalizada

HARD LOCK TOKEN:

literal_token = hash(keyword_normalizada)

3. TÍTULOS — ENGINE HARD LOCK

🆕 PRIORIDADE COMERCIAL (NOVO)

ANTES de selecionar títulos literais:

Identificar keywords com intenção direta:

  • valor
  • custo
  • preço
  • regularização
  • revisão
  • cálculo
  • quanto custa

SE existirem:

essas keywords DEVEM entrar primeiro nas 5 literais obrigatórias.

Somente após preencher prioridades comerciais, completar restante das literais.


PASSO A — TÍTULOS LITERAIS (MATCH BLOQUEADO)

VAR lista_literais = selecionar_keywords_prioritarias()

PARA cada keyword:

titulo = normalizar(keyword)
token_titulo = hash(titulo)

SE token_titulo != literal_token:
    BLOQUEAR alteração
    REGERAR

SE tamanho(titulo) > 30:
    substituir keyword

adicionar titulo

PERMITIDO:

  • Capitalização inicial

PROIBIDO:

  • adicionar SP
  • alterar palavras
  • alterar ordem
  • reescrever semântica

PASSO B — TÍTULOS CTA/LOCAL

  • incluir SP ou São Paulo quando possível
  • máximo 30 caracteres

PASSO C — TÍTULOS PROVA SOCIAL

  • usar autoridade da LP
  • máximo 30 caracteres

TOTAL: 15 títulos por grupo.


4. DESCRIÇÕES — ENGINE HARD LOCK

RANGE DEFINITIVO

  • mínimo absoluto: 80
  • alvo ideal: 8590
  • máximo: 90

FUNÇÃO validar_descricao(texto):

🆕 ENGINE HARD LOCK — BLOQUEIO DE SUBSTRING

É PROIBIDO usar:

texto[:limite] substring slice corte parcial

SE tamanho(texto) > 90:

REESCREVER FRASE COMPLETA
NUNCA cortar caracteres finais

SE detectar palavra incompleta:

REGERAR descrição automaticamente

SE tamanho < 80:
    expandir automaticamente

SE tamanho entre 80 e 84:
    expandir até ≥85

🆕 ANTI-TRUNCAMENTO FINAL

  • descrição deve terminar com "." ou "!"
  • nunca finalizar com palavra incompleta
  • nunca terminar com espaço vazio

CONTEÚDO:

  • incluir UVP
  • incluir CTA
  • incluir SP ou São Paulo quando possível

5. EXTENSÕES (ATIVOS — NÍVEL CAMPANHA)

SITELINKS:

  • 4 obrigatórios
  • título ≤25 caracteres
  • 2 descrições ≤35 caracteres

CALLOUTS:

  • 7 obrigatórios
  • ≤25 caracteres
  • incluir 01 diferencial competitivo único

6. POLÍTICAS EDITORIAIS

PROIBIDO:

  • "Grátis"
  • "Gratuito"
  • caixa alta total (exceto SP, OAB)
  • pontuação excessiva

PERMITIDO:

  • Capitalização Inicial em títulos literais.

7. HARD LOCK VALIDATION

ANTES DE ENTREGAR:

VALIDAR:

  • existem 3 grupos?
  • existem 15 títulos por grupo?
  • existem 05 títulos literais?
  • keywords comerciais estão dentro das literais?
  • hash(titulo_literal) == literal_token ?
  • nenhum título > 30 caracteres?
  • descrições entre 80 e 90 caracteres?
  • nenhuma substring detectada?
  • existe SP/São Paulo fora das literais?
  • existem 7 callouts?

SE falhar:

REEXECUTAR bloco inválido

RETORNO FINAL: APENAS JSON estruturado. SEM explicações. SEM texto adicional.