Files
Google-Ads/regras_prompt-V12.4.md

322 lines
8.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# REGRAS CONSOLIDADAS PARA GOOGLE ADS (V12.4 — HARD MATCH + DKI SAFE MODE)
OBJETIVO:
Engine determinístico com canonização automática de keywords, espelhamento obrigatório de keywords em headlines
(HARD MATCH 7/7) + 01 título com DKI em modo seguro (SEM substituir espelhos),
e regeneração obrigatória de descrições (SEM substring).
Eliminar:
- falhas de Keyword Match por ausência de headline espelho exato
- truncamento por substring (descrições e callouts)
- inconsistência entre ENGINE e AUDITORIA
- riscos editoriais/limite de caracteres introduzidos por DKI
Nenhuma regra anterior foi removida — apenas reforçada.
Capitalização inicial permitida.
Compatível com GAS v6 — ENGINE AUDITOR HARD MATCH.
---
# 0. FLUXO GLOBAL (DETERMINISTIC EXECUTION)
INÍCIO
PARA cada GRUPO_DE_ANUNCIO (total = 3):
PASSO 1 → Gerar Keywords
PASSO 1.1 → SANITIZAR E CANONIZAR KEYWORDS
PASSO 2 → Normalizar Keywords
PASSO 3 → Classificar Keywords por PRIORIDADE
PASSO 4 → Selecionar Literais (ALGORITMO FIXO)
PASSO 4.1 → Gerar HEADLINES ESPELHO (1 por keyword)
PASSO 4.2 → Gerar 01 HEADLINE DKI (SAFE MODE)
PASSO 5 → Montar LISTA FINAL DE TÍTULOS (15) com MIRROR ENFORCEMENT + DKI SAFE
PASSO 6 → Gerar Descrições (REGENERAÇÃO OBRIGATÓRIA / SEM CORTE)
PASSO 7 → Validar Limites
PASSO 8 → Inserir Localização (fora dos espelhos)
FIM
Depois:
PASSO 9 → Negativas
PASSO 10 → Extensões
PASSO 11 → 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
- keywords devem ser juridicamente tituláveis.
---
## SANITIZAÇÃO E CANONIZAÇÃO (OBRIGATÓRIA)
ANTES de aceitar qualquer keyword:
FUNÇÃO canonizar(keyword):
remover duplicações de delimitadores:
[[texto]] → texto
converter para forma jurídica clara e titulável.
Exemplos obrigatórios:
casamento fim → Fim do Casamento
fim do casamento → Fim do Casamento
fim pensão → Fim da Pensão
fim da pensão → Fim da Pensão
custo inventário → Custo Inventário
SE keyword for vaga, truncada ou não titulável:
DESCARTAR e gerar nova.
---
## ENGINE NORMALIZE
FUNÇÃO normalizar(texto):
remover "[" "]" e '"'
remover espaços duplicados
aplicar Capitalização Inicial
manter acentuação
manter ordem
NÃO alterar semântica
RETORNAR texto_normalizado
---
# 2. CLASSIFICAÇÃO DETERMINÍSTICA DE KEYWORDS
PRIORIDADE 1 — COMERCIAL DIRETA
- valor
- custo
- preço
- regularização
- revisão
- cálculo
- quanto custa
- honorários
PRIORIDADE 2 — CONTRATAÇÃO
- advogado
- ação
- processo
- consulta
PRIORIDADE 3 — INFORMATIVA
demais termos.
---
# 3. SELEÇÃO LITERAL DETERMINÍSTICA
FUNÇÃO selecionar_keywords_literais(lista_keywords):
ordenar por:
prioridade ASC
tamanho ASC
ordem original
selecionar até 5.
❗ Seleção automática — IA não escolhe manualmente.
---
# 4. KEYWORD MIRROR HEADLINES — HARD MATCH (ENFORCEMENT)
OBJETIVO:
Garantir que TODAS as 7 keywords do grupo tenham ao menos 1 headline correspondente EXATO após normalização.
Se a keyword existir, o headline espelho correspondente DEVE existir no output final.
REGRAS:
1) Para cada keyword do grupo (7):
headline_espelho = normalizar(canonizar(keyword))
2) O headline_espelho deve ser EXATO (após normalização).
PROIBIDO:
- adicionar palavras (ex: "SP", "Rápido", "Seguro")
- remover palavras
- trocar ordem
- criar sinônimos
- plural/singular diferente
3) PROIBIÇÃO ABSOLUTA — "SP" NO ESPELHO
Se a keyword NÃO contém "SP" ou "São Paulo",
o headline_espelho NÃO pode conter "SP" ou "São Paulo".
4) MIRROR ENFORCEMENT (REGRA DE MONTAGEM):
A lista final de 15 títulos DO GRUPO deve conter, como itens separados,
TODOS os 7 headlines_espelho. Nenhum espelho pode ser omitido, substituído ou reescrito.
---
# 4.2 HEADLINE DKI — SAFE MODE (NOVO)
OBJETIVO:
Adicionar 01 headline com Dynamic Keyword Insertion para aumentar relevância/CTR em cauda longa,
SEM derrubar o HARD MATCH (espelhos continuam obrigatórios).
FORMATO DKI (OBRIGATÓRIO):
{Keyword:PADRAO_DO_GRUPO}
REGRAS SAFE:
1) O headline DKI NUNCA substitui nenhum headline_espelho.
Os 7 espelhos continuam obrigatórios dentro dos 15 títulos.
2) O headline DKI NÃO PODE entrar no Bucket de LITERAIS.
Ele entra apenas como título "livre" dentro do Bucket CTA/Local.
3) PADRAO_DO_GRUPO deve ser curto, titulável e ≤ 30 caracteres.
Exemplos recomendados (escolher 1):
- Advogado de Família
- Divórcio em SP
- Guarda e Pensão
- Inventário em SP
4) PROIBIDO no DKI:
- termos proibidos ("Grátis", "Gratuito" e variações)
- palavras cortadas
- caixa alta total
- pontuação excessiva
5) Se houver risco de estourar 30 caracteres (por inserção dinâmica),
o PADRAO_DO_GRUPO deve ser ainda mais curto (≤ 20 caracteres).
---
# 5. TÍTULOS — MONTAGEM DETERMINÍSTICA (15 POR GRUPO)
Distribuição original mantida: 05 / 05 / 05 (LITERAL / CTA-LOCAL / PROVA).
REGRA DETERMINÍSTICA DE POSIÇÃO:
- Bucket 1 (05 LITERAIS): usar os 5 primeiros headlines_espelho (pela ordem de prioridade).
- Bucket 2 (05 CTA/LOCAL): 3 CTAs/Local reais + 1 headline_espelho (o 6º) + 1 headline DKI (SAFE MODE).
- Bucket 3 (05 PROVA): 4 provas/diferenciais reais + 1 headline_espelho (o 7º).
HARD LOCK:
- os 7 headlines_espelho entram exatamente como gerados (sem SP extra).
- CTAs/Provas podem conter SP/São Paulo quando possível.
- o DKI entra como adicional controlado, sem substituir espelhos.
LIMITES:
- cada título ≤ 30 caracteres
---
# 6. DESCRIÇÕES — DETERMINISTIC TEXT ENGINE (NO-TRUNC OUTPUT)
RANGE:
80 ≤ caracteres ≤ 92
IDEAL: 8590
ORDEM DE EXECUÇÃO OBRIGATÓRIA:
1) GERAR descrição completa
2) VALIDAR tamanho e integridade
3) SE inválida → REGERAR DO ZERO
4) PROIBIDO ajustar por corte
REGRA ABSOLUTA — ANTI SUBSTRING:
NUNCA usar:
- texto[:limite]
- slice
- substring
- corte parcial
VALIDAÇÃO DE INTEGRIDADE (OBRIGATÓRIA):
Uma descrição SÓ É VÁLIDA se:
- 80 ≤ caracteres ≤ 92
- termina com "." ou "!"
- NÃO termina com espaço
- NÃO termina com palavra incompleta
SE QUALQUER ITEM FALHAR:
REGERAR do zero (reescrita completa).
AJUSTE DETERMINÍSTICO:
- Se > 92: reescrever reduzindo conectivos e adjetivos (sem cortar string).
- Se < 80: reescrever adicionando UVP ou CTA (sem inflar demais).
CONTEÚDO:
- incluir UVP + CTA
- incluir SP/São Paulo quando possível (sem quebrar o range)
---
# 7. EXTENSÕES (ATIVOS) — HARD LOCK
SITELINKS:
- 4 obrigatórios
- título ≤25 caracteres
- 2 descrições ≤35 caracteres
CALLOUTS:
- 7 obrigatórios
- ≤25 caracteres
- incluir 01 diferencial competitivo
ANTI-TRUNCAMENTO — CALLOUTS (OBRIGATÓRIO):
- Proibido cortar string para caber em 25 caracteres.
- Se exceder 25, REESCREVER o callout completo (sem substring).
- Proibido terminar com palavra incompleta ou espaço final.
---
# 8. POLÍTICAS EDITORIAIS
PROIBIDO:
- "Grátis"
- "Gratuito"
- caixa alta total (exceto SP, OAB)
- pontuação excessiva
PERMITIDO:
- Capitalização inicial nos espelhos e literais.
---
# 9. HARD LOCK VALIDATION (FINAL)
VALIDAR:
- existem 3 grupos?
- existem 7 keywords por grupo?
- keywords foram canonizadas?
- existem 7 headlines_espelho (1 por keyword)?
- CADA keyword possui 1 headline_espelho EXATO após normalização?
- existem 15 títulos por grupo?
- Bucket 1 contém 5 espelhos?
- Bucket 2 contém 1 espelho (6º) + 3 CTAs reais + 1 DKI?
- Bucket 3 contém 1 espelho (7º) + 4 provas reais?
- o DKI está no formato {Keyword:...} e ≤ 30?
- o DKI NÃO contém termos proibidos?
- nenhum título > 30?
- descrições 8092?
- descrições terminam com "." ou "!"?
- nenhuma descrição termina com palavra incompleta ou espaço?
- nenhuma substring detectada em descrições?
- callouts completos (sem palavra incompleta) e ≤25?
- existem 7 callouts?
SE falhar:
REEXECUTAR apenas bloco inválido
---
RETORNO FINAL:
APENAS JSON estruturado.
SEM explicações.
SEM texto adicional.