Q
Q e-Book
Enciclopédia Completa

Bem-vindo à
Universidade Q

Em 7 dias, do zero ao profissional. Business Manager, WhatsApp Cloud API, Pixel, CAPI e escala — com código pronto e Mentor IA Q guiando cada passo.

Enciclopédia Completa + Tutor IA
R$ 247 à vista
ou 12x de R$ 24,70 no cartão - Kiwify
💳 GARANTIR MINHA VAGA POR R$ 247

🔒 Pagamento 100% seguro via Kiwify • Acesso imediato após confirmação

` }, { title: "Configurando eventos avançados", content: "Adicione eventos específicos: ViewContent (quando vê produto), Lead (quando preenche formulário), Purchase (quando compra).", code: `fbq('track', 'ViewContent', { content_name: 'Produto X', value: 97, currency: 'BRL' }); fbq('track', 'Purchase', { content_name: 'Produto X', value: 97, currency: 'BRL', transaction_id: 'PEDIDO_123' });` }, { title: "Criando Catálogo de produtos", content: "Catálogo → Criar Catálogo → E-commerce. Upload de feed CSV com seus produtos.", code: null }, { title: "Configurando CAPI (API de Conversões)", content: "CAPI envia dados direto do servidor (não do navegador). Use Google Tag Manager Server-Side ou webhook da plataforma de pagamento.", code: `// CAPI - Envio via servidor const payload = { data: [{ event_name: 'Purchase', event_time: Math.floor(Date.now() / 1000), user_data: { em: [hashSHA256(email)], ph: [hashSHA256(phone)] }, custom_data: { value: 97, currency: 'BRL' } }] };` } ], checklist: ["Pixel instalado no site", "Evento PageView disparando", "Evento ViewContent configurado", "Evento Purchase configurado", "Catálogo criado", "CAPI com match rate > 85%"], mentorTips: ["💡 CAPI + Pixel juntos = match rate de 95%+. Só Pixel = 60-70%.", "⚠️ Hash SHA256 dos dados do cliente é OBRIGATÓRIO no CAPI.", "✅ Quando o Event Manager mostrar 'Ativo' nos 3 eventos, está perfeito."] }, { id: 4, title: "Anúncios que Vendem", subtitle: "Advantage+ e Click to WhatsApp sem queimar dinheiro", time: "1h 24min", color: "from-fuchsia-500 to-purple-600", icon: "🎯", videoLink: "https://www.youtube.com/watch?v=qErW3jyQ3DY", videoCredit: "Adriano Gianini", lessons: [ { title: "Estrutura 1-3-3 validada", content: "1 campanha, 3 conjuntos de anúncio, 3 criativos cada. Orçamento inicial: R$30/dia. Esta é a estrutura mais testada e aprovada.", code: null }, { title: "Configurando Advantage+", content: "Advantage+ é a IA da Meta que otimiza tudo: público, criativo, posicionamento. Ative em: Campanha → Advantage+ Shopping Campaign.", code: null }, { title: "Criando anúncio Click to WhatsApp", content: "Objetivo: Mensagens → WhatsApp. Criativo: Vídeo 9:16 de 15-30s com legenda queimada. CTA: Enviar mensagem.", code: null }, { title: "Regras automáticas de proteção", content: "Crie regras para pausar anúncios caros automaticamente. Ex: Se CPA > R$45 em 2 dias, pausar conjunto.", code: null } ], checklist: ["Campanha criada com objetivo correto", "3 conjuntos configurados", "3 criativos por conjunto", "Advantage+ ativado", "CTA WhatsApp configurado", "Regra automática de CPA criada"], mentorTips: ["💡 Vídeos UGC (User Generated Content) convertem 3x mais que vídeos produzidos.", "⚠️ Nunca edite um anúncio ativo. Duplique e pause o original.", "✅ Quando tiver 3 vendas com ROAS > 2, está na hora de escalar."] }, { id: 5, title: "Rastrear Quem Comprou", subtitle: "UTM + Google Sheets que fala a verdade", time: "52 min", color: "from-amber-500 to-orange-600", icon: "📈", videoLink: "https://www.youtube.com/watch?v=raAGNniqjPI", videoCredit: "Pedro Sobral", lessons: [ { title: "Criando links UTM rastreáveis", content: "Use UTM Builder para saber de qual anúncio veio cada venda. Parâmetros: utm_source, utm_medium, utm_campaign, utm_content.", code: `const link = 'https://seudominio.com/checkout?utm_source=meta&utm_medium=cpc&utm_campaign=q_definitiva&utm_content=video_01';` }, { title: "Automação Kiwify/Hotmart → Sheets", content: "Use Zapier ou Make para: quando houver nova venda → adicionar linha no Google Sheets → enviar WhatsApp com acesso.", code: null }, { title: "Dashboard de ROAS no Looker Studio", content: "Conecte seu Google Sheets ao Looker Studio (grátis). Crie gráficos: Vendas por campanha, ROAS por criativo, CPA por público.", code: null } ], checklist: ["UTM em todos os links de anúncio", "Automação de venda → Sheets funcionando", "WhatsApp de boas-vindas enviado", "Dashboard Looker Studio criado", "ROAS calculado corretamente"], mentorTips: ["💡 Teste a automação com uma compra de R$1 antes de escalar.", "️ Sem UTM, você voa às cegas. Sempre use UTM.", "✅ Quando o dashboard mostrar lucro real (não faturamento), está no controle."] }, { id: 6, title: "Como Pagar a Meta", subtitle: "PIX, cartão e como nunca ficar sem conta", time: "38 min", color: "from-slate-500 to-gray-700", icon: "💳", videoLink: "https://www.youtube.com/watch?v=S-XLA1PRd5E", videoCredit: "Rodrigo Alves Conecta", lessons: [ { title: "Configurando PIX na Meta", content: "Cobrança → Adicionar forma de pagamento → PIX. Gere QR Code e pague em até 10 minutos. Limite inicial: R$150/dia.", code: null }, { title: "Cartões que a Meta aceita", content: "Cartões virtuais (Nubank, Inter, Wise) funcionam melhor. Tenha 2 cartões: principal + backup. Limite diário: R$200 no início.", code: null }, { title: "O que fazer quando a conta cai", content: "Central de Contas → Qualidade da Conta → Solicitar Análise. Use o modelo de texto abaixo. 90% das contas são reativadas em 24-48h.", code: `"Olá equipe Meta, Minha empresa vende e-books educacionais sobre marketing digital. Todos os meus anúncios seguem as políticas, sem promessas irreais. Meu domínio está verificado e meu CNPJ é SEU_CNPJ. Solicito revisão humanizada. Obrigado!"` } ], checklist: ["PIX testado com sucesso", "2 cartões cadastrados", "Limite diário configurado", "Documento de recurso salvo"], mentorTips: ["💡 Pague o PIX em até 10 min. Depois disso, expira e precisa gerar novo.", "⚠️ Nunca deixe a conta zerar. Meta bloqueia contas inadimplentes.", "✅ Quando tiver 2 formas de pagamento ativas, está blindado."] }, { id: 7, title: "Escalar e Lucrar", subtitle: "De R$30/dia para R$300/dia com lucro", time: "1h 05min", color: "from-violet-600 to-indigo-800", icon: "🚀", videoLink: "https://www.youtube.com/watch?v=_6fwtXqia4c", videoCredit: "Odam Sousa", lessons: [ { title: "Quando escalar: o sinal verde", content: "3 vendas com ROAS > 2 por 2 dias seguidos = sinal verde. Antes disso, otimize. Depois disso, escale com confiança.", code: `function deveEscalar(gasto, faturamento, dias) { const roas = faturamento / gasto; if (roas >= 2 && dias >= 2) return "✅ ESCALAR +20% a cada 48h"; if (roas < 1.5) return "⛔ OTIMIZAR criativo e público"; return "⏳ AGUARDAR mais 24h"; }` }, { title: "Criando públicos Lookalike", content: "Públicos → Criar público → Lookalike → Origem: Compradores últimos 60 dias → 1%. Este é o público mais poderoso da Meta.", code: null }, { title: "Remarketing inteligente", content: "Crie 3 públicos de remarketing: 7 dias (quente), 14 dias (morno), 30 dias (frio). Anúncios diferentes para cada um.", code: null }, { title: "Regra de ouro da escala", content: "Aumente 20-30% a cada 48h. NUNCA dobre o orçamento. Duplique o conjunto vencedor, não edite o original.", code: null } ], checklist: ["Lookalike 1% criado", "Remarketing 7d ativo", "Remarketing 14d ativo", "Remarketing 30d ativo", "Regra de escala configurada", "ROAS > 2 por 2 dias"], mentorTips: ["💡 Semana 1: R$30/dia. Semana 2: R$90/dia. Semana 3: R$180/dia. Semana 4: R$300/dia.", "⚠️ Escalar rápido demais = queimar dinheiro. Respeite o ritmo de 20% a cada 48h.", "✅ Com ROAS 2.5 e R$300/dia, você lucra R$450/dia = R$13.500/mês."] } ]; // ESTADO let currentModule = null; let completedLessons = new Set(); // INICIALIZAÇÃO function init() { renderModuleList(); renderModules(); loadProgress(); updateProgressBar(); } // RENDERIZAR LISTA function renderModuleList() { const list = document.getElementById('moduleList'); list.innerHTML = modulesData.map(m => { const isCompleted = completedLessons.has(m.id); const isActive = currentModule === m.id; return ` `; }).join(''); } // RENDERIZAR MÓDULOS function renderModules() { const container = document.getElementById('modules'); container.innerHTML = modulesData.map(m => `
Módulo ${m.id} • ${m.time}

${m.title}

${m.subtitle}

${m.lessons.map((lesson, idx) => `
${idx + 1}

${lesson.title}

${lesson.content}

${lesson.code ? `
Código pronto:
${escapeHtml(lesson.code)}
` : ''}
`).join('')}

✓ Checklist do Módulo

${m.checklist.map((item, idx) => `
`).join('')}

Q
Dicas do Mentor IA Q

${m.mentorTips.map(tip => `
${tip}
`).join('')}
${m.id > 1 ? `` : '
'} ${m.id < 7 ? `` : ``}
`).join(''); } // FUNÇÕES function startModule(id) { currentModule = id; document.querySelectorAll('.module-content').forEach(el => el.classList.remove('active')); document.getElementById(`module-${id}`).classList.add('active'); renderModuleList(); window.scrollTo({ top: 0, behavior: 'smooth' }); addMentorMessage(`Olá! Sou o Mentor IA Q. Estou aqui para te guiar no **Módulo ${id}: ${modulesData[id-1].title}**. Qualquer dúvida, é só perguntar! 🚀`); } function markModuleComplete(id) { completedLessons.add(id); saveProgress(); updateProgressBar(); renderModuleList(); addMentorMessage(`Parabéns! Você concluiu o **Módulo ${id}**! ${id < 7 ? 'Pronto para o próximo?' : 'Você completou todo o curso! Está pronto para vender!'}`); } function updateProgressBar() { const progress = (completedLessons.size / 7) * 100; document.getElementById('progressBar').style.width = `${progress}%`; document.getElementById('progressText').textContent = `${Math.round(progress)}%`; } function saveProgress() { localStorage.setItem('qebook_progress', JSON.stringify({ completedLessons: Array.from(completedLessons), currentModule })); } function loadProgress() { const saved = localStorage.getItem('qebook_progress'); if (saved) { const data = JSON.parse(saved); completedLessons = new Set(data.completedLessons || []); if (data.currentModule) startModule(data.currentModule); } } // CHAT function toggleChat() { document.getElementById('chatWindow').classList.toggle('hidden'); } function addMentorMessage(text) { const messagesDiv = document.getElementById('chatMessages'); const bubble = document.createElement('div'); bubble.className = 'chat-bubble flex gap-2'; bubble.innerHTML = `
Q
${text}
`; messagesDiv.appendChild(bubble); messagesDiv.scrollTop = messagesDiv.scrollHeight; } function askQuestion(question) { document.getElementById('chatInput').value = question; sendMessage(); } function sendMessage() { const input = document.getElementById('chatInput'); const message = input.value.trim(); if (!message) return; const messagesDiv = document.getElementById('chatMessages'); messagesDiv.innerHTML += `
${message}
Você
`; input.value = ''; messagesDiv.scrollTop = messagesDiv.scrollHeight; setTimeout(() => { const response = getMentorResponse(message); addMentorMessage(response); falarComVoz(response); }, 800); } function getMentorResponse(message) { const msg = message.toLowerCase(); if (msg.includes('token') || msg.includes('verify')) { return "O VERIFY_TOKEN é uma senha que você cria para verificar o webhook. Use algo como: `qebook2025_seguro`. Salve nas variáveis de ambiente da Cloudflare! Quer ver um vídeo que explica isso? Aqui está: https://www.youtube.com/watch?v=SqYPMDxp91Q (AutomindMAX)"; } if (msg.includes('pixel') || msg.includes('capi')) { return "Pixel + CAPI juntos = match rate de 95%+. Instale o Pixel no frontend e o CAPI no servidor. Vídeo recomendado do Gabriel Chabalas: https://www.youtube.com/watch?v=ViqVotRhBVA"; } if (msg.includes('escalar') || msg.includes('escala')) { return "Regra de ouro: aumente 20-30% a cada 48h. NUNCA dobre o orçamento. Duplique o conjunto vencedor. Vídeo do Odam Sousa: https://www.youtube.com/watch?v=_6fwtXqia4c"; } if (msg.includes('bloqueio') || msg.includes('ban')) { return "Para evitar bloqueio: 2 fatores ativos, no máximo 2 admins, domínio verificado, e nunca prometa resultados irreais nos anúncios."; } if (msg.includes('roas')) { return "ROAS = Faturamento / Gasto. ROAS 2 = para cada R$1 gasto, volta R$2. Mínimo para escalar: ROAS 2 por 2 dias seguidos."; } if (msg.includes('pf') || msg.includes('pessoa física')) { return "Como PF você pode vender com limite de 250 conversas/dia no WhatsApp. É suficiente pra começar. Depois vira MEI para escalar."; } if (msg.includes('rastrear') || msg.includes('venda')) { return "Use UTM em todos os links! Ex: ?utm_source=meta&utm_medium=cpc&utm_campaign=curso. Vídeo do Pedro Sobral explica tudo: https://www.youtube.com/watch?v=raAGNniqjPI"; } if (msg.includes('olá') || msg.includes('oi') || msg.includes('hey')) { return `Olá! Estou aqui para te ajudar com o **Módulo ${currentModule || 1}**. O que você gostaria de saber?`; } if (msg.includes('erro') || msg.includes('travou') || msg.includes('não funcionou')) { return "Entendi que travou. Não se preocupe, isso é parte do processo! ️ Quer que eu te indique um vídeo curto do YouTube que mostra como resolver esse erro específico?"; } return "Boa pergunta! No contexto deste módulo, recomendo revisar o conteúdo acima. Se tiver dúvida específica sobre código, me envie o trecho que te ajuda!"; } // VOZ function falarComVoz(texto) { window.speechSynthesis.cancel(); const voz = new SpeechSynthesisUtterance(texto); voz.lang = 'pt-BR'; voz.rate = 0.95; voz.pitch = 1.0; const vozesDisponiveis = window.speechSynthesis.getVoices(); const vozFeminina = vozesDisponiveis.find(v => v.lang.includes('pt-BR') && (v.name.includes('Female') || v.name.includes('Luciana') || v.name.includes('Maria') || v.name.includes('Raquel') || v.name.includes('Google')) ); if (vozFeminina) voz.voice = vozFeminina; window.speechSynthesis.speak(voz); } if (speechSynthesis.onvoiceschanged !== undefined) { speechSynthesis.onvoiceschanged = () => {}; } // UTILITÁRIOS function copyCode(btn) { const code = btn.closest('.rounded-xl').querySelector('pre').textContent; navigator.clipboard.writeText(code).then(() => { const originalText = btn.innerHTML; btn.innerHTML = '✓ Copiado!'; setTimeout(() => { btn.innerHTML = originalText; }, 2000); }); } function showWelcome() { currentModule = null; document.querySelectorAll('.module-content').forEach(el => el.classList.remove('active')); document.getElementById('welcome').classList.add('active'); renderModuleList(); window.scrollTo({ top: 0, behavior: 'smooth' }); } function escapeHtml(text) { const div = document.createElement('div'); div.textContent = text; return div.innerHTML; } // INICIAR init();