Commit inicial - upload de todos os arquivos da pasta

This commit is contained in:
2026-02-14 11:31:10 -03:00
parent e388183601
commit 0d3cd64142
29 changed files with 4386 additions and 364 deletions

322
regras_prompt-V12.4.md Normal file
View File

@@ -0,0 +1,322 @@
# 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.