Análise & Tracking
/
7 min de leitura
/
Atualizado mai 2026
UTMs: como estruturar pra não quebrar atribuição
Convenção, taxonomia e UTM builder. Como organizar parâmetros pra GA4 não tratar “Facebook”, “FB” e “fb” como três fontes diferentes.
O que você vai entender lendo isso
- UTM é taxonomia, não capricho. source, medium, campaign, content, term. Cada um com função fixa.
- Inconsistência destrói atribuição. GA4 trata
facebook,FBeFacebookcomo três sources diferentes. - Use UTM builder + convenções escritas. Planilha compartilhada, auto-tagging onde der, revisão semanal. Sem isso, relatório vira lixo.
Toda conta que eu pego pra auditar começa pelo mesmo lugar: GA4, relatório de aquisição, filtro por source/medium. E em 8 de cada 10, a primeira coisa que aparece é uma listagem que parece um catálogo de erros de digitação. facebook em cima de FB em cima de Facebook em cima de fb. Quatro linhas. Mesma plataforma. GA4 conta como quatro fontes separadas. Relatório vira pó.
UTM não é um detalhe técnico que você delega pro estagiário. É a fundação do seu tracking. Se está bagunçado, qualquer análise depois disso é chute. Esse post é sobre como estruturar isso direito, com convenção, taxonomia e ferramenta. Sem mística, sem hype.
O que UTMs fazem e como GA4 lê eles
UTM (Urchin Tracking Module, herança da Urchin Software que virou Google Analytics em 2005) são parâmetros que você anexa numa URL pra identificar a origem do tráfego. Quando o usuário clica num link com UTMs, esses parâmetros chegam no GA4 e populam dimensões de aquisição: session_source, session_medium, session_campaign, e por aí vai.
O GA4 olha esses parâmetros, joga eles dentro do relatório de aquisição, e usa pra decidir qual canal levou o crédito da conversão. Sem UTM (ou com UTM errado), o GA4 cai em fallback: tráfego direto, ou pior, atribui à fonte errada (clássico: lead vindo de campanha Meta cai em “social organic” porque ninguém marcou a URL).
Os 5 parâmetros são padronizados. Não dá pra inventar. utm_source, utm_medium, utm_campaign, utm_content, utm_term. GA4 lê esses cinco exatos. Inventar utm_origin ou utm_canal não funciona, vira parâmetro fantasma que ninguém lê.
Os 5 parâmetros UTM: source, medium, campaign, content, term
Cada parâmetro tem uma função fixa. Tratar como intercambiável é como guardar talher na gaveta de roupa.
- utm_source: a plataforma que originou o clique.
google,facebook,instagram,linkedin,tiktok,newsletter. Sempre lowercase. Sempre singular. Sempre o nome curto. - utm_medium: o tipo de mídia.
cpc(pago por clique, search),paid_social(Meta, TikTok, LinkedIn pago),display,email,affiliate,referral. Esse aqui o GA4 usa pra agrupar canais. Errar medium quebra o “Default Channel Grouping”. - utm_campaign: identificador legível da campanha.
brand_search_q2,black_friday_2026,retargeting_v3. Use a mesma nomenclatura que tem dentro do Ads Manager – espelha relatório externo com interno. - utm_content: creative ou variação A/B.
ad_v2_promo,headline_b,video_30s. Útil pra saber qual ad/copy converteu, especialmente em Display e Social. - utm_term: keyword (Search).
marca+x,tenis+corrida. Em Google Ads com auto-tagging ligado, ogclidjá passa isso. Em outras plataformas Search (Bing/Microsoft), você marca manual.
Regra mental rápida: source = onde, medium = como, campaign = qual, content = variação, term = palavra. Memorize isso e 80% das dúvidas somem.
Lê bonito, fica claro pra quem audita 6 meses depois e não precisa de decoder ring pra entender de onde veio o clique. Não é arte, é higiene básica.
Como source/medium devem se parear (taxonomy comum)
Source e medium se parem. Não vai existir google/social nem facebook/cpc. Tem combinações canônicas que valem pra qualquer conta. Padronize antes de marcar a primeira URL.
| Canal | utm_source | utm_medium |
|---|---|---|
| Google Search pago | google |
cpc |
| Google Display/Demand Gen | google |
display |
| YouTube Ads | youtube |
video |
| Meta (FB + IG) | facebook ou instagram |
paid_social |
| TikTok Ads | tiktok |
paid_social |
| LinkedIn Ads | linkedin |
paid_social |
| Bing/Microsoft Search | bing |
cpc |
| Email marketing | newsletter ou nome da ferramenta |
email |
| Influenciador pago | nome do influencer | influencer ou paid_social |
| Afiliado | nome do afiliado | affiliate |
Atenção em medium: GA4 usa pra mapear o “Default Channel Grouping”. Se você marca medium=cpc, vai pra “Paid Search”. Se marca medium=paid_social, vai pra “Paid Social”. Se marca medium=social (sem o “paid”), GA4 joga em “Organic Social” – e seu paid vira orgânico no relatório. Esse erro é absurdamente comum.
Vale a pena revisar isso junto com a configuração de GA4 pra mídia paga: se o GA4 estiver mal configurado, nem o UTM mais perfeito do mundo salva.
Auto-tagging Google Ads (gclid) vs UTM manual: qual usar
No Google Ads, tem dois caminhos pra marcar tráfego pago: auto-tagging (gclid) ou UTM manual. Posicionamento direto: use auto-tagging.
O gclid é um parâmetro que o Google Ads anexa automaticamente na URL final de qualquer ad. Quando o GA4 e o Google Ads estão linkados, o gclid alimenta o relatório de aquisição com dados muito mais ricos que UTM manual aguenta: keyword exato que disparou o ad, match type, dispositivo, posição do ad, tudo. UTM manual passa só os 5 parâmetros.
Tem um problema clássico: misturar os dois. Você ativa auto-tagging E marca UTM manual no mesmo ad. O que acontece? Depende da config “Override auto-tagging” no GA4. Se está ligada, UTM vence. Se está desligada (default), gclid vence. Ninguém sabe qual está ligada na conta. Resultado: relatório fica em estado quântico até alguém abrir o painel.
Google Ads: auto-tagging ligado, sem UTM manual. Pra resto (Meta, TikTok, LinkedIn, email), UTM manual padronizado. Pra eventos de conversão downstream, veja conversion tracking via GTM.
Meta Ads, TikTok, LinkedIn: como UTM funciona em cada
Cada plataforma tem o próprio jeito de injetar UTM. As diferenças importam.
Meta Ads. Tem o campo “URL parameters” no nível do ad. Aceita variáveis dinâmicas tipo {{campaign.name}}, {{adset.name}}, {{ad.name}}. Isso é ouro: você marca uma vez na conta inteira, e o nome do ad/campaign vai automaticamente no UTM. Convenção típica:
TikTok Ads. Também tem URL Parameters no nível da campaign, ad group ou ad. Variáveis dinâmicas: __CAMPAIGN_NAME__, __AID_NAME__, __CID__. Mesma lógica do Meta, sintaxe diferente. Para detalhes de creative e tracking no TikTok, vale revisar como funciona o pixel da plataforma.
LinkedIn Ads. Não tem variáveis dinâmicas (em 2026 ainda). Você precisa marcar UTM manual ad por ad, ou usar um Tracking URL Template global. É chato, mas é o que tem. Se a conta tem volume alto de criativos, considere dashboards no Google Data Studio que cruzam dados via API direto (sem depender só de UTM).
Pra qualquer plataforma social, a regra: marca uma vez no nível mais alto possível (account ou campaign), usa variáveis dinâmicas, não confia em humano marcando ad por ad.
UTM builder + convenções: como organizar em equipe
UTM manual feito by hand não escala. Cinco campanhas: ok. Cinquenta: vira festa de erros de digitação. Quinhentas: ninguém entende mais nada.
O que funciona é uma planilha simples de UTM Builder, compartilhada entre equipe, com lista fechada (dropdown) pros valores aceitos. Estrutura básica:
- Coluna Source (dropdown, valores fixos: google, facebook, instagram, tiktok, linkedin, newsletter, etc).
- Coluna Medium (dropdown: cpc, paid_social, display, video, email, affiliate, referral).
- Coluna Campaign (texto livre, mas com formato definido – ex:
{ano}_{trimestre}_{produto}_{tipo}). - Coluna Content (texto livre – creative ID, variação A/B).
- Coluna Term (opcional, só pra Search).
- Coluna URL base (a landing page).
- Coluna URL final (fórmula que concatena tudo, lowercase, com underscore no lugar de espaço).
Em conta maior, vale subir isso pra ferramenta dedicada (Terminus, UTM.io, ou um app interno). Mas pra 90% das contas, Google Sheets resolve. O importante não é a ferramenta. É a convenção escrita que toda a equipe lê antes de criar uma campanha nova.
utm_source=Facebook&utm_medium=social
utm_source=FB&utm_medium=cpc
utm_source=fb&utm_medium=Paid Social
utm_campaign=Black Friday 2026 - Promo Tênis
utm_source=Google Ads (com espaço!)
utm_source=facebook&utm_medium=paid_social
utm_source=facebook&utm_medium=paid_social
utm_source=facebook&utm_medium=paid_social
utm_campaign=2026_q4_black_friday_tenis
utm_source=google (auto-tagging cobre o resto)
Toda diferença ali do lado direito: lowercase, sem espaço, underscore, source curto e canônico. Não precisa ser bonito. Precisa ser previsível.
Como debugar UTM (Realtime GA4, Acquisition reports)
Marcou a URL, lançou a campanha, agora valida. Não confia que está funcionando até ver chegando.
- GA4 Realtime. Abre o relatório Realtime, filtra por “First user source” ou “Session source/medium”. Clica no próprio link com UTM. Deve aparecer em segundos. Se aparece
(direct)/(none), alguma coisa quebrou (provável: redirect na URL final que comeu o UTM). - GA4 Acquisition → Traffic acquisition. Espera 24h, abre relatório, filtra por
session_campaign. Veja se aparece com source/medium corretos. Se aparecenot setem algum campo, tem UTM faltando no link. - DebugView (GA4). Pra debug profundo, ative debug_mode (via GTM ou Chrome extension “GA Debugger”) e veja eventos chegando em tempo real com os parâmetros UTM associados.
- Comparação cruzada. Receita reportada no Ads Manager vs receita atribuída no GA4 ao mesmo canal. Diferença grande? Olha se tem mistura de auto-tagging + UTM manual, ou UTM em URL com redirect.
Esse debug é parte do trabalho de manter atribuição confiável no GA4. Sem UTM limpo, qualquer modelo de atribuição (last click, data-driven) opera em cima de dados sujos.
Erros: case inconsistente, espaço, acento, conflito com gclid
Catálogo de erros que vejo toda semana, em ordem de frequência:
- Case inconsistente.
FacebookvsfacebookvsFACEBOOK. GA4 é case-sensitive. Tudo lowercase, sempre. Sem exceção. - Espaço na URL.
utm_campaign=Black Fridayvirautm_campaign=Black%20Fridayou pior, quebra ali. Useblack_fridayoublack-friday. - Acento e caractere especial.
utm_campaign=promoção_natal. Funciona às vezes, quebra outras. Não vale o risco.promocao_natal. - UTM em URL com redirect (link shortener, tracker terceiro). O shortener pode comer os parâmetros. Sempre testa o destino final: o UTM chegou? Se não, troca de shortener ou marca depois do redirect.
- UTM em URL interna (link de menu, footer). Erro de iniciante. Marcar links internos com UTM faz GA4 abrir nova sessão e atribuir conversão ao link interno. Não marca link interno. Nunca.
- Conflito gclid + UTM manual em Google Ads. Já cobri ali em cima. Escolhe um. Recomendo gclid.
- UTM em URL final que tem hashtag (
#). A hashtag pode cortar o que vem depois. Coloque UTMs antes do#ou estruture sem hashtag. - Reaproveitar utm_campaign mês a mês. Se você usa
brand_searchsempre igual, GA4 agrega tudo numa linha só. Adiciona ano/trimestre/mês pra segmentar:brand_search_2026_q2.
Esses oito cobrem 90% dos erros que vejo. Os outros 10% são exóticos (encoding UTF-8 quebrado, parâmetro extra do servidor, etc.) e dependem de auditoria caso a caso.
Vale também alinhar com como você captura eventos downstream – eventos customizados no GA4 herdam UTM da sessão de origem, então UTM sujo polui todo evento subsequente. E se você compara com benchmarks de mídia paga, dados sujos vão te puxar pra conclusão errada sobre canal e CPA.
Recursos externos vale a pena ler
Pra quem quer ir mais fundo:
- Documentação oficial GA4 sobre UTM parameters (Google) – fonte canônica de como GA4 lê os 5 parâmetros.
- Blog do Simo Ahava – referência mundial em GA4 e GTM, com guias de UTM avançado e edge cases.
- Search Engine Land – cobertura constante de mudanças em tracking, atribuição e UTM em diferentes plataformas.
Perguntas frequentes
UTM é case-sensitive no GA4?
Sim. Facebook, facebook e FACEBOOK são três sources diferentes pro GA4. Sempre lowercase. Sem exceção. Padroniza isso na sua planilha de UTM Builder e não deixa ninguém criar valor novo sem revisão.
Posso usar UTM em link interno do meu site?
Não. UTM em link interno faz o GA4 abrir uma nova sessão no clique, atribuindo conversão ao link interno em vez da fonte original. Erro clássico de quem coloca UTM no botão de “Saiba mais” do próprio menu. Use UTM só em links que vêm de FORA pro seu site.
Auto-tagging do Google Ads substitui UTM completamente?
Pra dentro do GA4 com Google Ads linkado, sim – o gclid passa mais dados que UTM aguentaria. Mas se você usa outra ferramenta de analytics (Adobe, Mixpanel, ou export de dados pra BI próprio) que não lê gclid, vai precisar de UTM manual em paralelo. Verifique o stack antes de decidir.
Qual o limite de tamanho de uma URL com UTM?
Tecnicamente, navegadores aguentam URLs de até 2.000+ caracteres. Na prática, mantenha abaixo de 500. URLs gigantes quebram em compartilhamento (WhatsApp corta), em links de email (clientes truncam), e ficam feias visualmente. Se está estourando, simplifica os valores dos UTMs.
Devo usar UTM em link orgânico de redes sociais (post não-pago)?
Depende. Se quer separar “tráfego do post de Instagram do dia 15” de “tráfego orgânico geral do Instagram”, sim, marca com utm_source=instagram&utm_medium=social&utm_campaign=post_15mai. Atenção pro medium=social (orgânico), não paid_social. Misturar isso quebra Default Channel Grouping.
Como migrar uma conta que já tem UTM bagunçado sem perder histórico?
Você não migra o histórico – GA4 mantém os dados antigos como estão. O que dá pra fazer: criar Channel Groupings customizados no GA4 que agrupam variações de source/medium (“facebook”, “FB”, “Facebook” todos viram “Facebook” no relatório customizado). Daí, do dia da migração em diante, todas as URLs novas vão com a taxonomia limpa. Em 30-60 dias, o relatório novo já reflete a realidade.
