8.1 KiB
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:
-
Para cada keyword do grupo (7): headline_espelho = normalizar(canonizar(keyword))
-
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
-
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".
-
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:
-
O headline DKI NUNCA substitui nenhum headline_espelho. Os 7 espelhos continuam obrigatórios dentro dos 15 títulos.
-
O headline DKI NÃO PODE entrar no Bucket de LITERAIS. Ele entra apenas como título "livre" dentro do Bucket CTA/Local.
-
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
-
PROIBIDO no DKI:
- termos proibidos ("Grátis", "Gratuito" e variações)
- palavras cortadas
- caixa alta total
- pontuação excessiva
-
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: 85–90
ORDEM DE EXECUÇÃO OBRIGATÓRIA:
- GERAR descrição completa
- VALIDAR tamanho e integridade
- SE inválida → REGERAR DO ZERO
- 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 80–92?
- 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.