Rotas gerais

Marketing

Campanhas Meta Ads & Google Ads

Passo a passo real para subir campanhas de Facebook, Instagram e Google Ads apontando para o Membresia 360 — do zero, com R$10/dia. Inclui scripts Node prontos para automatizar tudo via API oficial.

1. Pré-requisitos (do zero)

Faça esta parte uma vez. Sem isso, nenhuma das plataformas deixa você anunciar.

1

Página no Facebook (você já tem ✅)

Ela é obrigatória para anunciar no Facebook e Instagram. A conta Instagram deve estar conectada à Página em Configurações → Contas vinculadas.
2

Meta Business Manager (Gerenciador de Negócios)

Acesse business.facebook.com. Clique em Criar conta → nome do negócio (Apache Desenvolvedor), seu nome, seu e-mail. Depois:
  • Configurações do negócio → Contas → Páginas: adicione sua página.
  • Contas do Instagram: adicione seu @.
  • Contas de anúncios → + Adicionar → Criar: fuso Brasília, moeda BRL.
  • Pagamentos: cadastre cartão (o Meta cobra depois que a fatura fecha).
3

Conta Google Ads

Vá em ads.google.com Comece agora. Escolha Modo especialista (fica escondido em "Alternar para o modo especialista"). Pule a criação de campanha inicial clicando em Criar uma conta sem campanha. Depois em Faturamento cadastre o cartão (Google só cobra ao atingir R$150 ou fim do mês).
4

Domínio verificado (recomendado)

No Business Manager → Segurança da marca → Domínios → adicione igreja-conectada-360.lovable.app (ou seu domínio próprio quando o DNS estiver no ar). A verificação por DNS libera CAPI e otimização por eventos.

2. UTMs, Pixel do Meta e Google Tag

Sem rastreamento você anuncia às cegas. Faça isto antes de subir a primeira campanha.

1

Padrão de UTM (use sempre)

Sempre aponte os anúncios para uma URL com UTM. Assim você separa cliques no GA4 e dentro do próprio app.
url
https://igreja-conectada-360.lovable.app/membresia360?utm_source=meta&utm_medium=cpc&utm_campaign=lancamento&utm_content=video-01
https://igreja-conectada-360.lovable.app/membresia360?utm_source=google&utm_medium=cpc&utm_campaign=lancamento&utm_content=texto-01
2

Meta Pixel (Facebook/Instagram)

Business Manager → Gerenciador de Eventos → Conectar fontes de dados → Web → Meta Pixel. Nomeie Membresia 360. Ele gera um PIXEL_ID. Cole no <head> do site (ou peça pra eu adicionar no src/routes/__root.tsx).
html
<!-- Meta Pixel -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'SEU_PIXEL_ID');
fbq('track', 'PageView');
</script>
Se quiser, me diga o Pixel ID e eu insiro no projeto.
3

Google Tag (GA4 + Ads)

Em tagmanager.google.com crie um contêiner GTM para o domínio. Dentro, adicione uma Tag GA4 (measurement ID G-XXXX) e depois uma Tag de conversão do Google Ads (ID AW-XXXXXXX/label). Publique. Em Google Ads → Ferramentas → Conversões → Nova, escolha Site → Envio de formulário / Clique em botão.

3. Meta Ads — Facebook e Instagram (passo a passo real)

Objetivo: Tráfego para a landing. Orçamento sugerido: R$6/dia por conjunto.

1

Abrir o Ads Manager

adsmanager.facebook.com → botão verde + Criar.
2

Nível Campanha

  • Objetivo: Tráfego.
  • Nome da campanha: MB360 · Tráfego · Lançamento.
  • Categoria de anúncio especial: Nenhuma.
  • Advantage+ Orçamento de campanha: desligado por enquanto (para você controlar o teste).
3

Nível Conjunto de anúncios

  • Destino da conversão: Site.
  • Orçamento diário: R$ 6,00.
  • Localização: Brasil (ou estados específicos: RO, AC, AM…).
  • Idade: 28–60.
  • Segmentação detalhada (Interesses): Igreja evangélica, Cristianismo, Pastor (religião), Bíblia, Célula (cristianismo).
  • Posicionamentos: Manuais → Feed do Facebook, Feed do Instagram, Stories IG, Reels IG. Desmarque Audience Network.
4

Nível Anúncio

  • Página do Facebook + Conta do Instagram vinculada.
  • Formato: Imagem única. Use os banners /divulgacao (1080×1080 para Feed, 1080×1920 para Stories/Reels).
  • Texto principal (copiar):
    txt
    Pastor(a), gerencie sua igreja como um sistema profissional 🙏
    
    ✅ Cadastro completo de membros
    ✅ Células nas casas + relatórios de reunião
    ✅ Senso automático por faixa etária
    ✅ Painel exclusivo para líderes
    
    Teste grátis agora 👇
  • Título: Membresia 360 — gestão completa da sua igreja
  • Descrição: Membros, células e relatórios em um só lugar.
  • URL do site: https://igreja-conectada-360.lovable.app/membresia360?utm_source=meta&utm_medium=cpc&utm_campaign=lancamento&utm_content={{ad.name}}
  • Botão: Saiba mais.
5

Publicar

Botão verde Publicar. O Meta analisa em 15min a 24h. Enquanto está Em análise o anúncio não roda.

Com R$10/dia total, rode 1 campanha Meta com R$6/dia e sobra R$4/dia pro Google. Depois de 5–7 dias, pause o pior anúncio e realoque o orçamento.

4. Google Ads — Rede de Pesquisa (passo a passo real)

Objetivo: capturar quem já procura por 'sistema para igreja'. Orçamento sugerido: R$4/dia.

1

Nova campanha

Em ads.google.com Campanhas → + → Nova campanha.
2

Objetivo e tipo

  • Objetivo: Tráfego do site.
  • Tipo: Pesquisa.
  • URL do site: https://igreja-conectada-360.lovable.app/membresia360.
  • Nome: MB360 · Search · Lançamento.
3

Lances e orçamento

  • Lance: Maximizar cliques com CPC máx R$1,20.
  • Orçamento diário: R$4,00.
  • Redes: desmarque Rede de Display e Parceiros de pesquisa.
  • Local: Brasil. Idioma: Português.
4

Palavras-chave (copiar e colar)

Cole exatamente assim (com aspas e colchetes — controla correspondência):
keywords
"sistema para igreja"
"software para igreja evangélica"
"aplicativo de gestão de igreja"
"controle de membros igreja"
"sistema de células nas casas"
[gestão de igreja online]
[cadastro de membros igreja]
+igreja +gestão +sistema
+células +igreja +relatório
Palavras-chave negativas (não desperdiça verba):
negativas
grátis
gratis
gratuito
apostila
curso
sermão
sermao
letra
música
musica
youtube
5

Anúncios responsivos de pesquisa (RSA)

Crie 1 anúncio com o máximo de títulos e descrições possíveis:
titulos-15
Sistema para Igreja Evangélica
Membresia 360 — Gestão Completa
Controle de Membros e Células
App para Igreja com Relatórios
Cadastre sua Igreja Grátis
Senso Automático por Idade
Painel para Pastores e Líderes
Relatórios de Célula em PDF
Gestão Profissional da Sua Igreja
Igreja Organizada Começa Aqui
Software Cristão de Gestão
Tudo o que sua Igreja Precisa
Membresia, Células e Senso
Fácil de Usar — Sem Instalar
Comece Hoje — Teste Grátis
descricoes-4
Cadastro completo de membros, células nas casas e relatórios de reunião num só painel.
Senso por faixa etária, ficha impressa, PDF profissional. Feito por e para igrejas.
Painel exclusivo para líderes de célula. Convites por QR Code e WhatsApp.
Teste grátis agora e organize sua igreja em minutos. Suporte em português.
URL final: https://igreja-conectada-360.lovable.app/membresia360?utm_source=google&utm_medium=cpc&utm_campaign=lancamento&utm_content={creative}
6

Extensões (assets)

  • Sitelinks: Manual, Preços, Demonstração, Fale no WhatsApp.
  • Frases de destaque: "Suporte em português", "Sem instalação", "PDF pronto", "Convite por QR Code".
  • Chamada: +55 69 99246 7599.
7

Publicar

Revisar → Publicar. Google aprova em minutos a 2h.

5. Automação via API (scripts prontos)

Suba, pause e clone campanhas pelo terminal — sem entrar nos painéis.

Meta Marketing API

Você precisa de 3 coisas: AD_ACCOUNT_ID (Business Manager → Contas de Anúncios), PAGE_ID (sua Página FB) e um ACCESS_TOKEN de longa duração (developers.facebook.com → seu App → Marketing API → gerar token com escopos ads_management, business_management).

.env
META_ACCESS_TOKEN=EAAG...
META_AD_ACCOUNT_ID=act_1234567890
META_PAGE_ID=1122334455
META_INSTAGRAM_ID=1789...
scripts/meta-create-campaign.mjs
// node scripts/meta-create-campaign.mjs
import 'dotenv/config';

const API = 'https://graph.facebook.com/v20.0';
const { META_ACCESS_TOKEN: TOKEN, META_AD_ACCOUNT_ID: ACC, META_PAGE_ID: PAGE, META_INSTAGRAM_ID: IG } = process.env;

const post = async (path, body) => {
  const res = await fetch(`${API}/${path}`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ ...body, access_token: TOKEN }),
  });
  const json = await res.json();
  if (!res.ok) throw new Error(JSON.stringify(json));
  return json;
};

// 1. Campanha
const camp = await post(`${ACC}/campaigns`, {
  name: 'MB360 · Tráfego · Lançamento (API)',
  objective: 'OUTCOME_TRAFFIC',
  status: 'PAUSED',
  special_ad_categories: [],
});
console.log('Campaign', camp.id);

// 2. Conjunto de anúncios (R$6/dia = 600 centavos)
const adset = await post(`${ACC}/adsets`, {
  name: 'BR · 28-60 · Interesses cristãos',
  campaign_id: camp.id,
  daily_budget: 600,
  billing_event: 'IMPRESSIONS',
  optimization_goal: 'LINK_CLICKS',
  bid_strategy: 'LOWEST_COST_WITHOUT_CAP',
  targeting: {
    geo_locations: { countries: ['BR'] },
    age_min: 28,
    age_max: 60,
    flexible_spec: [{
      interests: [
        { id: '6003195797498', name: 'Cristianismo' },
        { id: '6003277229371', name: 'Igreja' },
        { id: '6003250373404', name: 'Bíblia' },
      ],
    }],
    publisher_platforms: ['facebook', 'instagram'],
    facebook_positions: ['feed'],
    instagram_positions: ['stream', 'story', 'reels'],
  },
  status: 'PAUSED',
  start_time: new Date(Date.now() + 60_000).toISOString(),
});
console.log('AdSet', adset.id);

// 3. Criativo
const creative = await post(`${ACC}/adcreatives`, {
  name: 'MB360 · Criativo v1',
  object_story_spec: {
    page_id: PAGE,
    instagram_actor_id: IG,
    link_data: {
      message: 'Pastor(a), gerencie sua igreja como um sistema profissional 🙏\n\n✅ Membros ✅ Células ✅ Relatórios\n\nTeste grátis agora 👇',
      link: 'https://igreja-conectada-360.lovable.app/membresia360?utm_source=meta&utm_medium=cpc&utm_campaign=lancamento&utm_content=api-v1',
      name: 'Membresia 360 — gestão completa da sua igreja',
      description: 'Membros, células e relatórios em um só lugar.',
      call_to_action: { type: 'LEARN_MORE' },
      picture: 'https://igreja-conectada-360.lovable.app/banner.jpg',
    },
  },
});
console.log('Creative', creative.id);

// 4. Anúncio
const ad = await post(`${ACC}/ads`, {
  name: 'MB360 · Ad v1',
  adset_id: adset.id,
  creative: { creative_id: creative.id },
  status: 'PAUSED',
});
console.log('Ad', ad.id);
console.log('\n✅ Tudo criado em PAUSED. Ative no Ads Manager depois de revisar.');
scripts/meta-pause-all.mjs
import 'dotenv/config';
const { META_ACCESS_TOKEN: T, META_AD_ACCOUNT_ID: A } = process.env;
const r = await fetch(`https://graph.facebook.com/v20.0/${A}/campaigns?fields=id,name,status&access_token=${T}`);
const { data } = await r.json();
for (const c of data.filter(x => x.status === 'ACTIVE')) {
  await fetch(`https://graph.facebook.com/v20.0/${c.id}`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ status: 'PAUSED', access_token: T }),
  });
  console.log('Pausada:', c.name);
}

Google Ads API

Precisa de: conta MCC aprovada, developer_token, OAuth client (client_id, client_secret, refresh_token) e customer_id da conta que vai anunciar. Solicitação de developer token: ads.google.com/aw/apicenter.

bash
bun add google-ads-api dotenv
.env
GOOGLE_ADS_DEVELOPER_TOKEN=xxxxxxxxxxxx
GOOGLE_ADS_CLIENT_ID=xxxxxxx.apps.googleusercontent.com
GOOGLE_ADS_CLIENT_SECRET=xxxxxx
GOOGLE_ADS_REFRESH_TOKEN=1//0xxxxxx
GOOGLE_ADS_CUSTOMER_ID=1234567890
GOOGLE_ADS_LOGIN_CUSTOMER_ID=1112223333
scripts/google-create-campaign.mjs
// node scripts/google-create-campaign.mjs
import 'dotenv/config';
import { GoogleAdsApi, enums } from 'google-ads-api';

const client = new GoogleAdsApi({
  client_id: process.env.GOOGLE_ADS_CLIENT_ID,
  client_secret: process.env.GOOGLE_ADS_CLIENT_SECRET,
  developer_token: process.env.GOOGLE_ADS_DEVELOPER_TOKEN,
});

const customer = client.Customer({
  customer_id: process.env.GOOGLE_ADS_CUSTOMER_ID,
  login_customer_id: process.env.GOOGLE_ADS_LOGIN_CUSTOMER_ID,
  refresh_token: process.env.GOOGLE_ADS_REFRESH_TOKEN,
});

// 1. Budget: R$4/dia -> 4_000_000 micros
const [budget] = await customer.campaignBudgets.create([{
  name: 'MB360 Search R$4/dia ' + Date.now(),
  amount_micros: 4_000_000,
  delivery_method: enums.BudgetDeliveryMethod.STANDARD,
}]);

// 2. Campanha Search (pausada)
const [campaign] = await customer.campaigns.create([{
  name: 'MB360 · Search · Lançamento (API)',
  advertising_channel_type: enums.AdvertisingChannelType.SEARCH,
  status: enums.CampaignStatus.PAUSED,
  campaign_budget: budget.resource_name,
  manual_cpc: { enhanced_cpc_enabled: false },
  network_settings: {
    target_google_search: true,
    target_search_network: false,
    target_content_network: false,
    target_partner_search_network: false,
  },
}]);
console.log('Campaign', campaign.resource_name);

// 3. Ad group
const [adGroup] = await customer.adGroups.create([{
  name: 'MB360 · Palavras principais',
  campaign: campaign.resource_name,
  cpc_bid_micros: 1_200_000, // R$1,20
  status: enums.AdGroupStatus.ENABLED,
  type: enums.AdGroupType.SEARCH_STANDARD,
}]);

// 4. Palavras-chave
const KWS = [
  { text: 'sistema para igreja', match: 'PHRASE' },
  { text: 'software para igreja evangélica', match: 'PHRASE' },
  { text: 'controle de membros igreja', match: 'PHRASE' },
  { text: 'gestão de igreja online', match: 'EXACT' },
  { text: 'cadastro de membros igreja', match: 'EXACT' },
];
await customer.adGroupCriteria.create(KWS.map(k => ({
  ad_group: adGroup.resource_name,
  status: enums.AdGroupCriterionStatus.ENABLED,
  keyword: { text: k.text, match_type: enums.KeywordMatchType[k.match] },
})));

// 5. Anúncio Responsivo (RSA)
await customer.adGroupAds.create([{
  ad_group: adGroup.resource_name,
  status: enums.AdGroupAdStatus.ENABLED,
  ad: {
    final_urls: ['https://igreja-conectada-360.lovable.app/membresia360?utm_source=google&utm_medium=cpc&utm_campaign=lancamento'],
    responsive_search_ad: {
      headlines: [
        { text: 'Sistema para Igreja Evangélica' },
        { text: 'Membresia 360 — Gestão Completa' },
        { text: 'Controle de Membros e Células' },
        { text: 'Cadastre sua Igreja Grátis' },
        { text: 'Painel para Pastores e Líderes' },
      ],
      descriptions: [
        { text: 'Cadastro completo de membros, células e relatórios num só painel.' },
        { text: 'Senso por faixa etária, ficha impressa e PDF pronto. Feito para igrejas.' },
      ],
    },
  },
}]);

console.log('✅ Campanha Google Ads criada em PAUSED.');

6. Plano ativo: Cadastros (Lead) com R$10/dia, sem Pixel

Configuração decidida: objetivo Cadastros, R$6/dia no Meta + R$4/dia no Google, tudo criado via API.

Por que sem Pixel dá certo agora

Sem Pixel/GTM instalados o navegador não consegue registrar conversões no site. A saída é captar o lead dentro das próprias plataformas: Formulário Instantâneo (Lead Ads) no Meta e Formulário de Lead no Google. Os dados chegam ao painel de anúncios e por e-mail, sem depender de tag alguma. Quando você tiver o Pixel ID e o GTM-ID, migramos para conversões no site e a otimização melhora.

Meta · Lead Ads — R$6/dia

Crie primeiro o Formulário Instantâneo na Página (Ferramentas de publicação → Formulários instantâneos) com os campos Nome, WhatsApp, E-mail e a pergunta “Nome da igreja / cidade”. Copie o LEAD_FORM_ID e coloque no .env.

.env
META_ACCESS_TOKEN=EAAG...
META_AD_ACCOUNT_ID=act_1234567890
META_PAGE_ID=1122334455
META_INSTAGRAM_ID=1789...
META_LEAD_FORM_ID=987654321
scripts/meta-leads-10-reais.mjs
// node scripts/meta-leads-10-reais.mjs
import 'dotenv/config';

const API = 'https://graph.facebook.com/v20.0';
const {
  META_ACCESS_TOKEN: TOKEN,
  META_AD_ACCOUNT_ID: ACC,
  META_PAGE_ID: PAGE,
  META_INSTAGRAM_ID: IG,
  META_LEAD_FORM_ID: FORM,
} = process.env;

const post = async (path, body) => {
  const res = await fetch(`${API}/${path}`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ ...body, access_token: TOKEN }),
  });
  const json = await res.json();
  if (!res.ok) throw new Error(JSON.stringify(json, null, 2));
  return json;
};

// 1. Campanha com objetivo de CADASTROS
const camp = await post(`${ACC}/campaigns`, {
  name: 'MB360 · Cadastros · Lead Ads (API)',
  objective: 'OUTCOME_LEADS',
  status: 'PAUSED',
  special_ad_categories: [],
});
console.log('Campaign', camp.id);

// 2. Conjunto — R$6/dia = 600 centavos, leads no formulário instantâneo
const adset = await post(`${ACC}/adsets`, {
  name: 'BR · 28-60 · Pastores e líderes',
  campaign_id: camp.id,
  daily_budget: 600,
  billing_event: 'IMPRESSIONS',
  optimization_goal: 'LEAD_GENERATION',
  destination_type: 'ON_AD',
  promoted_object: { page_id: PAGE },
  bid_strategy: 'LOWEST_COST_WITHOUT_CAP',
  targeting: {
    geo_locations: { countries: ['BR'] },
    age_min: 28,
    age_max: 60,
    flexible_spec: [{
      interests: [
        { id: '6003195797498', name: 'Cristianismo' },
        { id: '6003277229371', name: 'Igreja' },
        { id: '6003250373404', name: 'Bíblia' },
      ],
    }],
    publisher_platforms: ['facebook', 'instagram'],
    facebook_positions: ['feed'],
    instagram_positions: ['stream', 'story', 'reels'],
  },
  status: 'PAUSED',
  start_time: new Date(Date.now() + 60_000).toISOString(),
});
console.log('AdSet', adset.id);

// 3. Criativo apontando para o formulário instantâneo
const creative = await post(`${ACC}/adcreatives`, {
  name: 'MB360 · Lead v1',
  object_story_spec: {
    page_id: PAGE,
    instagram_actor_id: IG,
    link_data: {
      message: 'Pastor(a), organize membros, células e relatórios da sua igreja em um só sistema 🙏\n\nPreencha em 30 segundos e receba a demonstração no WhatsApp.',
      link: 'https://igreja-conectada-360.lovable.app/membresia360?utm_source=meta&utm_medium=paid&utm_campaign=membresia360-2025&utm_content=leadform',
      name: 'Membresia 360 — gestão completa da sua igreja',
      description: 'Receba a demonstração gratuita.',
      call_to_action: {
        type: 'SIGN_UP',
        value: { lead_gen_form_id: FORM },
      },
      picture: 'https://igreja-conectada-360.lovable.app/banner.jpg',
    },
  },
});
console.log('Creative', creative.id);

// 4. Anúncio
const ad = await post(`${ACC}/ads`, {
  name: 'MB360 · Lead Ad v1',
  adset_id: adset.id,
  creative: { creative_id: creative.id },
  status: 'PAUSED',
});
console.log('Ad', ad.id);
console.log('\n✅ Criado em PAUSED. Revise no Ads Manager e ative.');
scripts/meta-baixar-leads.mjs
// Puxa os cadastros recebidos e imprime nome, WhatsApp e e-mail
import 'dotenv/config';
const { META_ACCESS_TOKEN: T, META_LEAD_FORM_ID: F } = process.env;
const r = await fetch(`https://graph.facebook.com/v20.0/${F}/leads?access_token=${T}`);
const { data = [] } = await r.json();
for (const lead of data) {
  const campos = Object.fromEntries(lead.field_data.map(f => [f.name, f.values[0]]));
  console.log(lead.created_time, '|', campos.full_name, '|', campos.phone_number, '|', campos.email);
}
console.log('Total:', data.length);

Google · Pesquisa com Lead Form — R$4/dia

Sem GTM, use a extensão de formulário de lead direto no anúncio de Pesquisa. Palavras de partida: gestão de igreja, software para igreja, controle de membros da igreja, sistema de células.

scripts/google-leads-4-reais.mjs
// node scripts/google-leads-4-reais.mjs
import 'dotenv/config';
import { GoogleAdsApi } from 'google-ads-api';

const client = new GoogleAdsApi({
  client_id: process.env.GOOGLE_CLIENT_ID,
  client_secret: process.env.GOOGLE_CLIENT_SECRET,
  developer_token: process.env.GOOGLE_DEVELOPER_TOKEN,
});

const customer = client.Customer({
  customer_id: process.env.GOOGLE_CUSTOMER_ID,
  login_customer_id: process.env.GOOGLE_LOGIN_CUSTOMER_ID,
  refresh_token: process.env.GOOGLE_REFRESH_TOKEN,
});

// R$4/dia -> micros (1 real = 1.000.000 micros)
const [budget] = await customer.campaignBudgets.create([{
  name: 'MB360 · Budget · R$4/dia',
  amount_micros: 4_000_000,
  delivery_method: 'STANDARD',
  explicitly_shared: false,
}]);

const [campaign] = await customer.campaigns.create([{
  name: 'MB360 · Pesquisa · Cadastros',
  status: 'PAUSED',
  advertising_channel_type: 'SEARCH',
  campaign_budget: budget.resource_name,
  manual_cpc: { enhanced_cpc_enabled: false },
  network_settings: {
    target_google_search: true,
    target_search_network: false,
    target_content_network: false,
  },
}]);

const [adGroup] = await customer.adGroups.create([{
  name: 'Gestão de igreja · Exata',
  campaign: campaign.resource_name,
  status: 'ENABLED',
  cpc_bid_micros: 1_200_000, // R$1,20 por clique
}]);

const termos = [
  'gestão de igreja',
  'software para igreja',
  'controle de membros da igreja',
  'sistema de células nas casas',
  'aplicativo para igreja evangélica',
];

await customer.adGroupCriteria.create(
  termos.map((t) => ({
    ad_group: adGroup.resource_name,
    status: 'ENABLED',
    keyword: { text: t, match_type: 'PHRASE' },
  })),
);

await customer.adGroupAds.create([{
  ad_group: adGroup.resource_name,
  status: 'ENABLED',
  ad: {
    final_urls: ['https://igreja-conectada-360.lovable.app/membresia360?utm_source=google&utm_medium=paid&utm_campaign=membresia360-2025'],
    responsive_search_ad: {
      headlines: [
        { text: 'Sistema de Gestão de Igreja' },
        { text: 'Membros, Células e Relatórios' },
        { text: 'Membresia 360 — Teste Grátis' },
      ],
      descriptions: [
        { text: 'Cadastro de membros, células nas casas e relatórios em PDF.' },
        { text: 'Feito para pastores, secretários e líderes. Peça a demonstração.' },
      ],
    },
  },
}]);

console.log('✅ Campanha de cadastros criada em PAUSED.');

No painel do Google Ads, abra a campanha → Recursos → Formulário de lead e vincule os campos Nome, Telefone, E-mail e Igreja. Ative o envio dos leads por e-mail.

Resumo do plano

  • • Objetivo: Cadastros (Lead) captados dentro das plataformas
  • • Meta (Facebook + Instagram): R$6/dia · Lead Ads
  • • Google Pesquisa: R$4/dia · Formulário de lead
  • • Total: R$10/dia ≈ R$300/mês
  • • UTM: utm_source=meta|google&utm_medium=paid&utm_campaign=membresia360-2025
  • • Rodar 7 dias, pausar o pior criativo, reforçar o melhor
  • • Assim que tiver Pixel ID e GTM-ID, migrar para conversões no site

6.1 Ativação do plano de Cadastros (contas do zero)

Você ainda não tem as contas de anúncio. Siga esta ordem — leva de 1 a 3 dias por causa das aprovações.

1

Dia 1 — Abrir o Meta Business e a conta de anúncios

Em business.facebook.com: criar conta de negócio → vincular a Página e o Instagram → Configurações do negócio → Contas de anúncio → Adicionar → Criar nova(moeda BRL, fuso America/Porto_Velho) → cadastrar cartão em Pagamentos. Anote o ID da conta (act_XXXXXXXXX), o ID da Página e o ID do Instagram.
2

Dia 1 — Abrir a conta do Google Ads

Em ads.google.com: criar conta → escolher Alternar para o modo especialista (não use o modo inteligente) → pular a criação de campanha → cadastrar faturamento em BRL. Anote o ID do cliente (123-456-7890).
3

Dia 1 — Verificar o domínio

Meta: Configurações do negócio → Segurança da marca → Domínios → adicionarigreja-conectada-360.lovable.app (ou seu domínio próprio) e confirmar via meta-tag/DNS. Google: Configurações → Verificação de anunciante. Sem isso a conta costuma ser limitada nos primeiros dias.
4

Dia 2 — Criar os formulários de lead

Meta: Ferramentas de publicação da Página → Formulários instantâneos → Criar — campos Nome, WhatsApp, E-mail e “Nome da igreja”. Google: Recursos → Formulário de lead na campanha de Pesquisa. Guarde o ID do formulário do Meta.
5

Dia 2 — Gerar as credenciais de API

Meta: developers.facebook.com → criar App tipo Negócios → adicionar Marketing API → gerar token de longa duração com as permissõesads_management, pages_show_list, leads_retrieval, business_management. Google: solicitar o developer token na conta MCC (API Center) e criar OAuth client no Google Cloud para obter client_id, client_secret e refresh_token.
6

Dia 3 — Rodar os scripts e ativar

Preencha o .env local com as credenciais e rode, nesta ordem:
terminal
node scripts/meta-leads-10-reais.mjs     # cria campanha Meta R$6/dia (PAUSED)
node scripts/google-leads-4-reais.mjs   # cria campanha Google R$4/dia (PAUSED)
Revise no Ads Manager / Google Ads e mude o status para ATIVO. Depois, todo dia:
terminal
node scripts/meta-baixar-leads.mjs      # baixa os leads captados

Credenciais que você vai me enviar depois

  • • Meta: META_ACCESS_TOKEN, META_AD_ACCOUNT_ID, META_PAGE_ID, META_INSTAGRAM_ID, META_LEAD_FORM_ID
  • • Google: GOOGLE_DEVELOPER_TOKEN, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN, GOOGLE_CUSTOMER_ID

Nunca compartilhe senha de conta — só tokens. Eles são guardados como segredos do projeto, nunca no código.

7. Modelo de plano ativo

Defina orçamento, país, público e duração — e salve como plano ativo.

Meta R$ 6,00/dia · Google R$ 4,00/dia

Resumo
R$ 10,00/dia · 30 dias · total R$ 300,00
PLANO ATIVO — Cadastros MB360 · R$10/dia
Objetivo: Cadastros (Lead)
Orçamento diário: R$ 10,00 (Meta R$ 6,00 · Google R$ 4,00)
Duração: 30 dias a partir de 2026-07-30 · investimento total R$ 300,00
País: Brasil · Região: Rondônia
Público: 25-60 anos · Todos
Interesses: Igreja evangélica, pastor, líder de célula, gestão de igreja
Observações: Iniciar em PAUSED, revisar criativos e ativar manualmente.

8. Suporte e troubleshooting (formulários de lead)

O que fazer quando a criação do formulário ou da campanha falhar.

Falhou a criação do formulário de lead? Siga esta ordem.

Resolve a grande maioria dos casos sem precisar abrir chamado.

  1. 1Confirme o objetivo: Cadastros (Leads) — não Tráfego.
  2. 2Republique o formulário instantâneo (rascunho não é elegível).
  3. 3Verifique se Página, Instagram e conta de anúncios estão no mesmo Business.
  4. 4Regenere o token do Usuário do Sistema com ads_management + leads_retrieval.
  5. 5Cole o token em /tokens-anuncios e confirme que todos os campos ficam válidos.
  6. 6Rode o script novamente com o status PAUSED e leia a mensagem de erro completa.
  7. 7Se o erro persistir, copie a mensagem de contato abaixo e abra chamado no suporte da plataforma.

Perguntas frequentes

9. Mensagens prontas para copiar

Contato com suporte, verificação de domínio/API e follow-up de leads.

Substitua os campos entre colchetes antes de enviar. Nada é salvo — o texto vai direto para a área de transferência.

Meta — abrir chamado (formulário de lead falhando)

Cole no chat de suporte do Meta Business Help.

Olá, equipe Meta.

Estou tentando criar uma campanha com objetivo Cadastros (Leads) usando Formulário Instantâneo e a criação está falhando.

Dados:
- Business Manager: [nome do negócio]
- ID da conta de anúncios: act_[ID]
- ID da Página: [ID]
- Objetivo: OUTCOME_LEADS / destino: Formulário instantâneo
- Erro exibido: [colar mensagem exata + código do erro]
- Data/hora da tentativa: [data e hora]

Já verifiquei: formulário publicado (não rascunho), Página e conta de anúncios no mesmo Business, token do Usuário do Sistema com ads_management, leads_retrieval e pages_show_list, forma de pagamento ativa em BRL.

Podem verificar o que está impedindo a criação? Obrigado.

Meta — verificação de domínio / identidade do negócio

Para acelerar a verificação do domínio no Business Manager.

Olá, equipe Meta.

Solicito a verificação do domínio e da identidade do meu negócio.

- Negócio: [nome]
- CNPJ/CPF: [documento]
- Domínio: igreja-conectada-360.lovable.app
- Método de verificação usado: [meta-tag / DNS TXT / arquivo HTML]
- Status atual: [pendente / falhou]

O registro já foi publicado e está acessível. Podem reprocessar a verificação? Obrigado.

Google Ads — suporte (Lead Form não elegível)

Cole no chat/e-mail do suporte do Google Ads.

Olá, equipe Google Ads.

Minha conta não consegue usar o recurso de Formulário de Lead (lead form asset).

- Customer ID: [10 dígitos sem hífen]
- Tipo de campanha: Rede de Pesquisa
- Mensagem exibida: [colar mensagem exata]
- Política de privacidade: https://igreja-conectada-360.lovable.app/privacidade
- Orçamento diário: R$ [valor]

Podem informar quais requisitos ainda faltam para habilitar o recurso nesta conta? Obrigado.

Google Ads — solicitar acesso básico à API

Para sair do acesso de teste do developer token.

Olá, equipe Google Ads API.

Solicito a elevação do meu developer token de acesso de teste para acesso básico.

- MCC ID: [ID da conta administradora]
- Ferramenta: aplicação interna própria (Membresia 360) para criar e gerenciar campanhas da própria organização
- Uso previsto: criação de campanhas de Pesquisa e leitura de métricas
- Site: https://igreja-conectada-360.lovable.app
- Volume estimado: baixo (menos de 1.000 operações/dia)

Fico à disposição para esclarecimentos. Obrigado.

WhatsApp — primeiro contato com o lead (igreja)

Envie logo após receber o cadastro.

Olá, [nome]! Aqui é da equipe do Membresia 360 👋

Vi que você se cadastrou para conhecer o sistema de gestão de membros e células.

Em 10 minutos consigo te mostrar como funciona:
• Cadastro completo de membros com ficha e foto
• Células nas casas com relatórios de reunião
• Relatórios em PDF (senso por faixa etária, geral, por célula)

Quer que eu te envie o vídeo de demonstração ou prefere agendar uma apresentação ao vivo?

WhatsApp — follow-up (lead sem resposta)

Use 48h depois do primeiro contato.

Oi, [nome]! Passando para saber se ainda tem interesse em conhecer o Membresia 360 🙏

Deixo aqui a apresentação completa: https://igreja-conectada-360.lovable.app/membresia360

Se preferir, respondo qualquer dúvida por aqui mesmo. Deus abençoe!

10. Checklist antes de ativar

Passe por cada item — 90% dos problemas de conta bloqueada vêm daqui.

  • Meta Pixel disparando PageView (verifique no Meta Pixel Helper — extensão Chrome).
  • Google Tag disparando (verifique no Google Tag Assistant).
  • URL final com UTMs corretas em cada anúncio.
  • Página de destino carregando em <3s (Lighthouse ≥ 80).
  • Termos e Política de Privacidade linkados no rodapé da landing.
  • Cartão cadastrado nas duas plataformas.
  • Domínio verificado no Business Manager (recomendado).
  • Nome dos anúncios com padrão MB360 · [canal] · [criativo] · v[n].
  • Orçamento total combina com sua realidade financeira (R$10/dia = R$300/mês).
  • Cronograma: rodar 7 dias, pausar pior anúncio, dobrar orçamento do melhor.