metaads-pro/src/config/skins/index.ts
Marcio Bevervanso 8bd7377706 feat: melhorar qualidade da copy (modelo full + regras anti-genérico)
- copy passa de gpt-5.4-mini para gpt-5.4 (full), sobrescrevível por
  OPENAI_COPY_MODEL; temperatura 0.9 para texto menos engessado
- prompt ganha bloco "proibido ser genérico": exige detalhe concreto por
  frase, pattern interrupt na 1a linha, variações realmente distintas
- skin festa_infantil: copy_rules descrevem o fluxo self-service real
  (foto -> avatar 3D grátis -> escolher e gerar entre 33 artes; R$9,99 =
  10 créditos) e proíbem "receba/kit pronto", forçando verbos de criação

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 10:32:21 -03:00

243 lines
12 KiB
TypeScript

export type FieldType = 'text' | 'textarea' | 'number';
export interface SkinField {
id: string;
label: string;
placeholder: string;
type: FieldType;
required?: boolean;
}
export interface SkinConfig {
id: string;
name: string;
icon: string; // Emoji for simplicity
themeColor: string; // Tailwind class like 'bg-blue-600'
accentColor: string; // Hex color for AI Prompt context if needed
// Custom form fields that replace the generic ones
fields: SkinField[];
// AI Injection Context
ai_guidelines: {
copy_rules: string;
image_style: string;
};
// Meta Ads Defaults
meta_defaults: {
objective: string;
targeting_template: string;
bid_strategy: string;
};
}
export const SYSTEM_SKINS: SkinConfig[] = [
{
id: 'generic',
name: 'Padrão / Genérico',
icon: '🚀',
themeColor: 'bg-white/10 border-white/20',
accentColor: '#ffffff',
fields: [
{ id: 'product', label: 'O que você está vendendo?', placeholder: 'Ex: Mentoria de Vendas, Tênis Esportivo...', type: 'text', required: true },
{ id: 'audience', label: 'Quem é o seu público?', placeholder: 'Ex: Homens de 25 a 40 anos que gostam de esportes...', type: 'textarea' },
],
ai_guidelines: {
copy_rules: 'Use uma linguagem persuasiva e direta.',
image_style: 'Minimalista, alta conversão, foco no produto',
},
meta_defaults: {
objective: 'OUTCOME_TRAFFIC',
targeting_template: 'broad_brazil',
bid_strategy: 'VOLUME',
}
},
{
id: 'real_estate',
name: 'Corretor / Imobiliária',
icon: '🏢',
themeColor: 'bg-blue-900/40 border-blue-500/50',
accentColor: '#3b82f6',
fields: [
{ id: 'property_type', label: 'Tipo de Imóvel', placeholder: 'Ex: Apartamento 3 suítes, Casa em Condomínio...', type: 'text', required: true },
{ id: 'location', label: 'Localização (Bairro/Cidade)', placeholder: 'Ex: Vila Nova Conceição, SP', type: 'text', required: true },
{ id: 'price', label: 'Valor (Aproximado)', placeholder: 'Ex: A partir de R$ 850.000', type: 'text' },
{ id: 'differentials', label: 'Diferenciais do Imóvel', placeholder: 'Ex: Varanda gourmet, 2 vagas, lazer completo...', type: 'textarea' }
],
ai_guidelines: {
copy_rules: 'Você é um corretor de imóveis de alto padrão. Crie anúncios sofisticados, focados no sonho da casa própria, localização privilegiada e valorização do metro quadrado. Use jargões do mercado imobiliário com elegância.',
image_style: 'Fotografia de arquitetura realista, iluminação natural, interior luxuoso de imóvel, aconchegante',
},
meta_defaults: {
objective: 'OUTCOME_LEADS', // Imóveis costumam captar leads
targeting_template: 'broad_brazil', // We could create a specific one later
bid_strategy: 'VOLUME',
}
},
{
id: 'dentist',
name: 'Odontologia / Estética',
icon: '🦷',
themeColor: 'bg-teal-900/40 border-teal-500/50',
accentColor: '#14b8a6',
fields: [
{ id: 'treatment', label: 'Qual tratamento deseja anunciar?', placeholder: 'Ex: Lentes de Contato Dental, Implantes, Botox...', type: 'text', required: true },
{ id: 'clinic_name', label: 'Nome da sua Clínica', placeholder: 'Ex: OdontoPremium', type: 'text' },
{ id: 'pain_point', label: 'Qual a principal dor do paciente?', placeholder: 'Ex: Vergonha de sorrir, falta de dentes...', type: 'textarea' },
],
ai_guidelines: {
copy_rules: 'Você é um especialista em marketing médico e odontológico. Foque em auto-estima, confiança, segurança do procedimento e sorriso perfeito. Evite prometer resultados milagrosos (política do Facebook), foque no bem-estar.',
image_style: 'Pessoa sorrindo com dentes perfeitos, ambiente clínico moderno e limpo, tons de azul e branco, iluminação suave',
},
meta_defaults: {
objective: 'OUTCOME_TRAFFIC',
targeting_template: 'broad_brazil',
bid_strategy: 'VOLUME',
}
},
{
id: 'ecommerce',
name: 'E-commerce / Dropshipping',
icon: '🛍️',
themeColor: 'bg-orange-900/40 border-orange-500/50',
accentColor: '#f97316',
fields: [
{ id: 'product_name', label: 'Nome do Produto', placeholder: 'Ex: Smartwatch Ultra Pro...', type: 'text', required: true },
{ id: 'offer', label: 'Oferta / Preço', placeholder: 'Ex: 50% de Desconto + Frete Grátis', type: 'text', required: true },
{ id: 'benefits', label: 'Principais Benefícios', placeholder: 'Ex: Bateria dura 7 dias, à prova d\'água...', type: 'textarea' },
],
ai_guidelines: {
copy_rules: 'Use escassez, urgência e gatilhos mentais fortes. Foque no problema que o produto resolve e na oferta irresistível.',
image_style: 'Produto em destaque, fundo limpo, cores vibrantes, design focado em conversão e oferta',
},
meta_defaults: {
objective: 'OUTCOME_SALES',
targeting_template: 'broad_brazil',
bid_strategy: 'VOLUME',
}
},
{
id: 'infoproduct',
name: 'Infoprodutos / Lançamentos',
icon: '📚',
themeColor: 'bg-purple-900/40 border-purple-500/50',
accentColor: '#a855f7',
fields: [
{ id: 'course_name', label: 'Nome do Curso/Mentoria', placeholder: 'Ex: Método Venda Todo Dia...', type: 'text', required: true },
{ id: 'expert_name', label: 'Nome do Especialista', placeholder: 'Ex: João Silva', type: 'text' },
{ id: 'promise', label: 'Promessa Principal', placeholder: 'Ex: Aprenda a faturar 10k em 30 dias...', type: 'textarea', required: true },
],
ai_guidelines: {
copy_rules: 'Foque na transformação e na autoridade do especialista. Use storytelling curto e convite claro para a ação (ex: Cadastre-se, Assista a aula).',
image_style: 'Especialista apontando ou sorrindo, fundo de alta qualidade, elementos que remetem a sucesso e conhecimento',
},
meta_defaults: {
objective: 'OUTCOME_LEADS',
targeting_template: 'broad_brazil',
bid_strategy: 'VOLUME',
}
},
{
id: 'delivery',
name: 'Delivery / Restaurante',
icon: '🍔',
themeColor: 'bg-red-900/40 border-red-500/50',
accentColor: '#ef4444',
fields: [
{ id: 'food_type', label: 'Tipo de Comida', placeholder: 'Ex: Hambúrguer Artesanal, Pizza, Sushi...', type: 'text', required: true },
{ id: 'promo', label: 'Promoção do Dia', placeholder: 'Ex: Compre 1 Leve 2, Frete Grátis na primeira compra...', type: 'text' },
{ id: 'location', label: 'Bairros de Entrega', placeholder: 'Ex: Centro, Zona Sul...', type: 'textarea' },
],
ai_guidelines: {
copy_rules: 'Desperte desejo imediato. Use linguagem apetitosa, foque na rapidez da entrega e promoções imperdíveis. Textos curtos e diretos.',
image_style: 'Comida suculenta e em close, cores quentes (vermelho, laranja, amarelo), vapor saindo, muito apetitoso',
},
meta_defaults: {
objective: 'OUTCOME_ENGAGEMENT',
targeting_template: 'broad_brazil',
bid_strategy: 'VOLUME',
}
},
{
id: 'local_service',
name: 'Serviços Locais',
icon: '🔧',
themeColor: 'bg-yellow-900/40 border-yellow-500/50',
accentColor: '#eab308',
fields: [
{ id: 'service', label: 'Serviço Prestado', placeholder: 'Ex: Encanador, Eletricista, Limpeza de Sofá...', type: 'text', required: true },
{ id: 'urgency', label: 'Resolve qual urgência?', placeholder: 'Ex: Vazamentos, Curto-circuito, Sujeira pesada...', type: 'text' },
{ id: 'city', label: 'Cidade/Região de Atendimento', placeholder: 'Ex: Grande São Paulo', type: 'text', required: true },
],
ai_guidelines: {
copy_rules: 'Foque na solução rápida de problemas. Passe confiança, segurança e experiência. Use chamadas claras para solicitar um orçamento no WhatsApp.',
image_style: 'Profissional sorrindo com uniforme, ferramentas de trabalho, ambiente limpo e seguro, transmitindo confiança',
},
meta_defaults: {
objective: 'OUTCOME_ENGAGEMENT', // Usually WhatsApp messages
targeting_template: 'broad_brazil',
bid_strategy: 'VOLUME',
}
},
{
id: 'lawyer',
name: 'Advogados / Escritórios',
icon: '⚖️',
themeColor: 'bg-slate-900/40 border-slate-500/50',
accentColor: '#64748b',
fields: [
{ id: 'specialty', label: 'Especialidade', placeholder: 'Ex: Direito Trabalhista, Previdenciário, Família...', type: 'text', required: true },
{ id: 'target_client', label: 'Cliente Ideal', placeholder: 'Ex: Trabalhador sem registro, Aposentados...', type: 'text' },
{ id: 'action', label: 'Qual direito proteger/buscar?', placeholder: 'Ex: Revisão de aposentadoria, acerto rescisório...', type: 'textarea' },
],
ai_guidelines: {
copy_rules: 'Siga rigorosamente o código de ética da OAB: seja informativo, não mercantilista. Evite prometer ganhos de causa. Foco em orientação jurídica e defesa de direitos.',
image_style: 'Ambiente de escritório sério, livros de direito, balança da justiça discreta, cores sóbrias (azul marinho, cinza, preto), profissionalismo',
},
meta_defaults: {
objective: 'OUTCOME_LEADS',
targeting_template: 'broad_brazil',
bid_strategy: 'VOLUME',
}
},
{
id: 'festa_infantil',
name: 'Festa Infantil / Produto de Entrada',
icon: '🎉',
themeColor: 'bg-pink-900/40 border-pink-500/50',
accentColor: '#ec4899',
fields: [
{ id: 'product_name', label: 'O que você vende? (produto de entrada)', placeholder: 'Ex: Kit Festa Mágica IA — convites, painéis e lembrancinhas personalizados', type: 'text', required: true },
{ id: 'offer', label: 'Oferta + Preço (o gancho do anúncio)', placeholder: 'Ex: Kit completo por apenas R$9,99 no Pix — acesso imediato', type: 'text', required: true },
{ id: 'payment', label: 'Formas de pagamento / vantagem', placeholder: 'Ex: Pix (libera na hora) ou cartão em até 12x', type: 'text' },
{ id: 'whats_included', label: 'O que está incluso / transformação', placeholder: 'Ex: convite animado, painel, topo de bolo, lembrancinhas — tudo editável e pronto em minutos', type: 'textarea', required: true },
{ id: 'pain_point', label: 'Dor / desejo do cliente', placeholder: 'Ex: quer uma festa linda sem gastar fortuna nem perder dias procurando decoração', type: 'textarea' },
{ id: 'bonus', label: 'Bônus / garantia / urgência (opcional)', placeholder: 'Ex: + 3 temas de bônus hoje · garantia de 7 dias · oferta de lançamento', type: 'text' },
],
ai_guidelines: {
// Copy de resposta direta para tripwire/low-ticket: o objetivo é a COMPRA
// de entrada barata, com o lucro vindo do funil (order bump/upsell).
copy_rules:
'PRODUTO: um ESTÚDIO self-service de IA para festas infantis (NÃO é kit pronto entregue por e-mail). Funciona em 3 passos: 1) a pessoa envia uma foto do filho; 2) a IA cria o avatar da criança em personagem 3D (grátis); 3) ela escolhe entre 33 tipos de artes (convites, topo de bolo, lembrancinhas, tags e mais) e GERA as que quiser, baixa na hora e imprime. Modelo: R$9,99 = 10 créditos, 1 crédito por arte, pagamento único, recarrega se quiser mais. ' +
'TOM/REGRAS: É um produto de ENTRADA (tripwire) para pais/mães — objetivo é a COMPRA imediata. ' +
'SEMPRE use verbos de criação ("você cria", "você gera", "monte", "personalize") — NUNCA "receba", "compre o kit", "entregamos", "kit pronto". A pessoa faz ela mesma. ' +
'Use a mecânica única como gancho: foto → avatar 3D do filho (grátis) → escolher e gerar as artes. Isso é o diferencial, não "praticidade" genérica. ' +
'Lidere pelo preço-âncora (R$9,99 = 10 artes) e pelo instantâneo ("gera e baixa na hora"). Mencione Pix/cartão quando houver. ' +
'Urgência honesta (oferta de lançamento/avatar grátis), nunca falsa escassez. ' +
'CTA de compra (SHOP_NOW ou GET_OFFER). Texto específico e escaneável — sem clichê, sem encher linguiça.',
image_style:
'Festa infantil mágica e encantadora, cores vibrantes e alegres, elementos lúdicos (balões, estrelas, brilho), tema de aniversário, visual limpo com destaque para o produto/oferta, alto contraste para parar o feed',
},
meta_defaults: {
// Low-ticket vive ou morre por otimização de COMPRA via Pixel/CAPI.
objective: 'OUTCOME_SALES',
targeting_template: 'parents_kids',
bid_strategy: 'VOLUME',
}
}
];
export function getSkin(id: string): SkinConfig {
return SYSTEM_SKINS.find(s => s.id === id) || SYSTEM_SKINS[0];
}