Pular para o conteúdo

UTMs e atribuição

Atribuição é o coração do plugin: toda conversão chega ao CRM sabendo de onde o lead veio — UTMs, identificadores de clique de 17 plataformas, a página de entrada e o site que o trouxe.

utm_source — origem (google, facebook, newsletter, ...)
utm_medium — meio (cpc, organic, email, ...)
utm_campaign — nome da campanha
utm_term — palavra-chave (Google Ads)
utm_content — variação criativa
PlataformaClick ID
Google Adsgclid
Google Ads (DV360, novo)gbraid
Google Ads (DV360, novo)wbraid
Google Displaydclid
Meta Ads (Facebook/Instagram)fbclid
Meta cookiesfbc, fbp
Click-to-WhatsApp Adsctwa_clid
Meta Lead Adsleadgen_id
TikTok Adsttclid
Microsoft Ads (Bing)msclkid
LinkedIn Adsli_fat_id
Twitter/X Adstwclid
Pinterest Adsepik
Snapchat AdsScCid
Reddit Adsrdt_cid
ShareASale (afiliado)sck

Esses parâmetros são lidos da URL automaticamente quando o visitante chega no site pela primeira vez.

  • landing_page — primeira URL acessada pelo visitante (preservada mesmo se ele navegar pra outras páginas antes de submeter)
  • referrer — site de origem (document.referrer no momento da chegada)
  • page_url — URL onde o lead efetivamente submeteu o form
  • user_agent — navegador/dispositivo
  • locale — idioma do site (pt_BR etc)

O plugin não guarda uma origem só. Guarda duas, em cookies separados, porque são duas perguntas diferentes — e é o mesmo modelo que o Google Analytics usa.

CookieO que guardaDura
smart2_firstA primeira visita. Semeado uma vez e nunca sobrescrito~13 meses
smart2_utmA última visita com origem. Qualquer visita com origem sobrescreve, paga ou orgânica90 dias

A regra que faz o segundo cookie funcionar: visita direta não sobrescreve nada. Quem digita o endereço ou volta pelo favorito não apaga a campanha que trouxe a pessoa.

Na prática:

Dia 1 anúncio da Meta → smart2_first = facebook/cpc
smart2_utm = facebook/cpc
Dia 5 busca no Google → smart2_first NÃO muda
smart2_utm = google/organic
Dia 10 digita o endereço → nenhum dos dois muda (visita direta)
Dia 10 preenche o formulário → o CRM recebe os DOIS

Quem leva o crédito — o anúncio que apresentou a marca ou a busca que fechou a venda — é decisão do CRM, não do plugin. Ele manda os dois e deixa a régua para lá. Veja origem e touchpoints.

HttpOnly, SameSite=Lax, e Secure em HTTPS. Conteúdo em JSON.

HttpOnly quer dizer que o JavaScript da página não lê esses cookies — quem grava e quem lê é o servidor. É o que impede um script de terceiros no seu site de levar a atribuição embora.

Visitante sem cookie nenhum? Então valem só as UTMs e os identificadores que estiverem na URL da própria página onde ele converteu.

Site com cache de página inteira (WP Rocket, LiteSpeed, Cloudflare APO) entrega o HTML pronto e o PHP não roda — então o servidor não vê a primeira visita nem grava o cookie. Pra isso, desde a 2.12 o JavaScript grava dois cookies de apoio, smart2_js_utm e smart2_js_visit, com o mesmo conteúdo. Na hora da conversão o servidor lê primeiro os seus cookies HttpOnly; se não existirem, usa os do JavaScript. A atribuição não se perde por causa do cache.

Em alguns casos você quer que as UTMs apareçam como campos visíveis no formulário — por exemplo, pra um plugin de form que persiste tudo no Google Sheets/Mailchimp.

Configurar:

  1. Configurações → app.smart CRM → seção Captura e proteção.
  2. Marque Injetar UTMs no form.

Ativado, o plugin injeta automaticamente em todo <form> da página:

<input type="hidden" name="utm_source" value="google">
<input type="hidden" name="utm_medium" value="cpc">
<input type="hidden" name="utm_campaign" value="blackfriday">
<input type="hidden" name="gclid" value="Cj0KCQ...">
<input type="hidden" name="fbclid" value="...">
<!-- todos os UTMs + click IDs presentes -->

Esses campos chegam junto com a submissão pro CRM (via integração dedicada do form) e também ficam disponíveis pra qualquer outro destino que o form mandar.

O identificador do evento, para não contar duas vezes

Seção intitulada “O identificador do evento, para não contar duas vezes”

Quando o formulário é enviado, o plugin cunha um identificador único daquela conversão e o publica em três lugares:

window.smart2_event_id // a variável global
window.dataLayer.push({ event: 'smart2_conversion', smart2_event_id: ... })
<input type="hidden" name="smart2_event_id"> // viaja no próprio POST

O último é o que importa para a deduplicação: o mesmo identificador chega ao servidor, e o envio por servidor reusa ele. Assim a Meta entende que o evento do navegador e o do servidor são o mesmo, e não conta dois.

Se o seu site já tem pixel próprio — por gerenciador de tags ou outro plugin —, aponte a tag de Lead para window.smart2_event_id, ou escute o evento smart2_conversion no dataLayer.

Exemplo de metadata enviado:

{
"utm_source": "facebook",
"utm_medium": "cpc",
"utm_campaign": "blackfriday_2026",
"utm_term": null,
"utm_content": "creative_v2",
"click_ids": {
"fbclid": "IwAR1abc...",
"fbc": "fb.1.1719876543.IwAR1abc...",
"fbp": "fb.1.1719876543.987654321"
},
"landing_page": "https://seusite.com.br/promocao?fbclid=IwAR1abc",
"referrer_url": "https://www.facebook.com/",
"page_url": "https://seusite.com.br/contato",
"user_agent": "Mozilla/5.0 ...",
"locale": "pt_BR",
"first_touch": {
"utm_source": "facebook",
"utm_medium": "cpc",
"utm_campaign": "blackfriday_2026",
"landing_page": "https://seusite.com.br/promocao?fbclid=IwAR1abc"
}
}

O bloco de cima é o último toque com origem; o first_touch, no fim, é o primeiro. O CRM usa o primeiro apenas para semear a origem do contato quando ela ainda está vazia — depois disso, ele não é sobrescrito. É o que garante que a campanha que trouxe a pessoa não se perca meses depois.

Esses dados aparecem no contato (custom attributes) e também são usados pra:

  • Meta CAPI: fbc/fbp/fbclid viram parâmetros user_data do evento Lead
  • GA4: gclid vai como gclid no evento generate_lead
  • Relatórios de funil: você consegue agrupar leads por utm_source, utm_campaign, etc.

Caso especial: anúncios Meta que mandam direto pra WhatsApp Business (sem passar pelo site).

Quando o visitante clica no anúncio CTWA, o Meta adiciona o parâmetro ctwa_clid na URL de redirecionamento. Esse parâmetro também é capturado pelo plugin se o lead eventualmente cair no seu site WordPress depois.

Combinado com webhooks do app.smart, isso permite atribuir conversões via WhatsApp ao anúncio Meta original.