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

8.1 KiB
Raw Permalink Blame History

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.