{"id":1451,"date":"2026-04-20T02:24:52","date_gmt":"2026-04-20T02:24:52","guid":{"rendered":"https:\/\/cms.funnelsheet.com\/?p=1451"},"modified":"2026-04-20T02:24:52","modified_gmt":"2026-04-20T02:24:52","slug":"rastreamento-de-campanhas-regionais-separar-cidade-por-cidade-no-ga4","status":"publish","type":"post","link":"https:\/\/cms.funnelsheet.com\/?p=1451","title":{"rendered":"Rastreamento de campanhas regionais: separar cidade por cidade no GA4"},"content":{"rendered":"<p>Rastreamento de campanhas regionais exige separar o efeito por cidade para entender onde cada investimento entrega receita. No GA4, a cidade registrada nem sempre \u00e9 confi\u00e1vel ou est\u00e1 dispon\u00edvel para toda a base, especialmente com tr\u00e1fego mobile, proxies, redes corporativas e usu\u00e1rios que optaram por n\u00e3o compartilhar dados. Sem uma estrat\u00e9gia clara, voc\u00ea pode ver n\u00fameros agregados que escondem varia\u00e7\u00f5es relevantes entre cidades, o que atrasa decis\u00f5es sobre criativos, or\u00e7amento e atribui\u00e7\u00e3o por regi\u00e3o. Este artigo mapeia o problema e aponta caminhos pr\u00e1ticos dentro do GA4 sem prometer milagres. <\/p>\n<p>Voc\u00ea vai sair daqui sabendo como diagnosticar a confiabilidade da cidade no GA4, escolher entre usar a dimens\u00e3o nativa de City ou uma dimens\u00e3o customizada baseada em utm_city, e, se necess\u00e1rio, levar a segmenta\u00e7\u00e3o para BigQuery para reconcilia\u00e7\u00f5es com CRM e dados offline. A tese \u00e9 simples: separar por cidade requer padroniza\u00e7\u00e3o de par\u00e2metros, configura\u00e7\u00e3o de coleta de dados e valida\u00e7\u00e3o cont\u00ednua para evitar desvios que pare\u00e7am pequenos, mas que destroem a atribui\u00e7\u00e3o ao longo do funil regional. Ao terminar, voc\u00ea ter\u00e1 um plano de a\u00e7\u00e3o claro para configurar ou ajustar j\u00e1 esta semana.<\/p>\n<h2>Diagn\u00f3stico: por que separar por cidade em campanhas regionais?<\/h2>\n<h3>City no GA4: o que funciona e o que falha<\/h3>\n<p>A cidade no GA4 \u00e9 derivada de sinais de geolocaliza\u00e7\u00e3o, principalmente IP, e pode n\u00e3o estar dispon\u00edvel para todas as sess\u00f5es. Em dispositivos m\u00f3veis, redes VPN e provedores com NAT, a granularidade at\u00e9 a cidade tende a ficar inst\u00e1vel ou ausente. Al\u00e9m disso, o GA4 aplica regras de privacidade que reduzem a vis\u00e3o geogr\u00e1fica quando o consentimento do usu\u00e1rio n\u00e3o est\u00e1 completo. Esse conjunto faz com que os dados por cidade pare\u00e7am consistentes, mas estejam sujeitos a varia\u00e7\u00f5es semanais, sazonalidade de tr\u00e1fego regional e falhas de atribui\u00e7\u00e3o entre dispositivos. Recognize que, para campanhas regionais, essa limita\u00e7\u00e3o n\u00e3o \u00e9 apenas t\u00e9cnica: \u00e9 estrat\u00e9gica. <\/p>\n<blockquote>\n<p>\u201cCidade forte no GA4 \u00e9 aquilo que voc\u00ea consegue manter consistente entre dispositivos, sem depender de uma \u00fanica fonte de dados.\u201d<\/p>\n<\/blockquote>\n<h3>Limites de LGPD e Consent Mode<\/h3>\n<p>Consent Mode v2 e CMPs (Consent Management Platform) moldam o que chega aos seus relat\u00f3rios. Quando o usu\u00e1rio n\u00e3o consente, grande parte do est\u00edmulo de geolocaliza\u00e7\u00e3o pode n\u00e3o ser capturada, reduzindo a cobertura por cidade. Em cen\u00e1rios com m\u00faltiplos touchpoints (WhatsApp, telefone, formul\u00e1rios) e integra\u00e7\u00f5es com CRMs, a cidade pode aparecer apenas parcialmente, alimentando d\u00favidas sobre a qualidade da atribui\u00e7\u00e3o por regi\u00e3o. N\u00e3o \u00e9 problema isolado de configura\u00e7\u00e3o; \u00e9 uma limita\u00e7\u00e3o pr\u00e1tica do ecossistema atual de rastreamento, que exige planejamento para validar e compensar esse missing data em dashboards e reconcilia\u00e7\u00f5es. <\/p>\n<blockquote>\n<p>\u201cConsentimento n\u00e3o \u00e9 apenas uma caixa. \u00c9 a lente pela qual voc\u00ea olha a geolocaliza\u00e7\u00e3o; sem ela, parte do funil fica invis\u00edvel por cidade.\u201d<\/p>\n<\/blockquote>\n<h2>Abordagens t\u00e9cnicas para segmentar por cidade no GA4<\/h2>\n<h3>Usar a dimens\u00e3o Cidade nativa do GA4<\/h3>\n<p>A dimens\u00e3o City dispon\u00edvel nas explora\u00e7\u00f5es (Explorations) do GA4 facilita ver, campanha por campanha, qual cidade responde a cada impulso de m\u00eddia. O truque \u00e9 combinar City com a dimens\u00e3o de campanha (ou Source\/Medium) para desenhar mapas de desempenho por regi\u00e3o. Contudo, essa dimens\u00e3o depende da coleta de dados geogr\u00e1ficos confi\u00e1veis e pode apresentar vazios em sess\u00f5es sem localiza\u00e7\u00e3o clara. Para tirar proveito: crie uma explora\u00e7\u00e3o com City como linha, Campaign como coluna ou eixo, e m\u00e9tricas como sess\u00f5es, usu\u00e1rios, convers\u00f5es e receita. Assim, voc\u00ea obt\u00e9m um retrato imediato da distribui\u00e7\u00e3o regional sem sair da interface nativa. <\/p>\n<h3>Dimens\u00e3o personalizada: utm_city<\/h3>\n<p>Se a cidade nativa n\u00e3o entrega o n\u00edvel de detalhe necess\u00e1rio, a estrat\u00e9gia mais control\u00e1vel \u00e9 introduzir um par\u00e2metro de URL dedicado, por exemplo utm_city, e torn\u00e1-lo uma dimens\u00e3o personalizada no GA4. O fluxo envolve tr\u00eas grandes pilares: padroniza\u00e7\u00e3o de UTMs, coleta de par\u00e2metros na Data Stream e defini\u00e7\u00e3o da dimens\u00e3o personalizada com escopo de evento. A vantagem \u00e9 clara: voc\u00ea pode mapear explicitamente a cidade para cada campanha, independentemente das limita\u00e7\u00f5es geogr\u00e1ficas do tr\u00e1fego. O ponto cr\u00edtico \u00e9 que o par\u00e2metro precisa ser enviado com cada clique e registrado pelo GA4 com consist\u00eancia, caso contr\u00e1rio, o matching cidade x campanha fica comprometido. <\/p>\n<h3>BigQuery para granularidade e reconcilia\u00e7\u00e3o<\/h3>\n<p>Para auditorias profundas, o caminho de ouro costuma passar pelo BigQuery. Exportar os eventos do GA4 para BigQuery permite joins com CRM, dados offline e sistemas de atribui\u00e7\u00e3o mais precisos, al\u00e9m de permitir histograma fino por cidade, janelas de convers\u00e3o, e recalibra\u00e7\u00e3o de modelos de atribui\u00e7\u00e3o. N\u00e3o \u00e9 receita de bolo: demanda pipeline, custo de consulta e governan\u00e7a de dados, mas d\u00e1 a vis\u00e3o de verdade quando as limita\u00e7\u00f5es de geolocaliza\u00e7\u00e3o do GA4 inviabilizam a confian\u00e7a em city-level. Lembre-se: BigQuery n\u00e3o substitui o GA4; ele complementa com granularidade, rastreamento offline e valida\u00e7\u00e3o cruzada. <\/p>\n<blockquote>\n<p>\u201cA granularidade vem com custo \u2014 BigQuery \u00e9 onde a corre\u00e7\u00e3o bate a realidade.\u201d<\/p>\n<\/blockquote>\n<h2>Passo a passo pr\u00e1tico para separar cidade por cidade no GA4<\/h2>\n<ol>\n<li>Defina um padr\u00e3o de utm_city para todas as campanhas regionais. Atribua cada cidade com um c\u00f3digo curto e est\u00e1vel (ex.: BSB, RJ, SP, POA) e documente o mapeamento.<\/li>\n<li>Atualize as URLs de an\u00fancios para incluir utm_city em cada criativo regional. Garanta que a string seja id\u00eantica entre plataformas (Meta, Google Ads, parceiros) para evitar varia\u00e7\u00f5es de captura.<\/li>\n<li>No GA4 Data Stream, registre o par\u00e2metro de URL utm_city para coleta autom\u00e1tica. Adicione utm_city \u00e0 lista de par\u00e2metros de URL aceitos na Data Stream para que o GA4 trate esse valor como uma dimens\u00e3o mensur\u00e1vel.<\/li>\n<li>Crie uma dimens\u00e3o personalizada no GA4 chamada utm_city, com escopo Evento. Use-a em conjunto com a dimens\u00e3o City para valida\u00e7\u00e3o cruzada ou para substituir dados ausentes quando a cidade nativa n\u00e3o estiver dispon\u00edvel.<\/li>\n<li>Configure um relat\u00f3rio de explora\u00e7\u00e3o que combine City, utm_city e Campaign para visualizar a performance por cidade por campanha. Salve esse conjunto como painel para revis\u00e3o regular com stakeholders.<\/li>\n<li>Se a granularidade ainda n\u00e3o for suficiente, exporte os dados para BigQuery. Fa\u00e7a joins com o seu CRM\/ERP para reconciliar convers\u00f5es offline com city-level, e construa dashboards em Looker Studio para acompanhar a distribui\u00e7\u00e3o regional com atualiza\u00e7\u00f5es programadas.<\/li>\n<li>Valide de forma cont\u00ednua: conduza testes com campanhas piloto em 2\u20133 cidades, compare com o que aparece no GA4 e no BigQuery, ajuste nomes de cidades e tags conforme necess\u00e1rio e documente mudan\u00e7as para evitar diverg\u00eancias futuras.<\/li>\n<\/ol>\n<h2>Erros comuns e corre\u00e7\u00f5es pr\u00e1ticas<\/h2>\n<ul>\n<li>Cidade ausente em grande parte do tr\u00e1fego m\u00f3vel. Corre\u00e7\u00e3o: garanta que utm_city esteja presente em todos os fluxos de URL, incluindo an\u00fancios display e criativos de WhatsApp que redirecionam para landing pages com par\u00e2metros.<\/li>\n<li>Par\u00e2metro utm_city n\u00e3o capturado pelo tag. Corre\u00e7\u00e3o: confirme que a tag GA4 coleta par\u00e2metros de URL e que o par\u00e2metro est\u00e1 listado na Data Stream; verifique tamb\u00e9m se h\u00e1 redirecionamentos que perdem o par\u00e2metro.<\/li>\n<li>Dados por cidade apresentam amostragem elevada. Corre\u00e7\u00e3o: evite amostragem aumentando o tamanho da amostra de relat\u00f3rio ou recorrendo ao BigQuery para consulta n\u00e3o amostrada.<\/li>\n<li>Consent Mode bloqueia geolocaliza\u00e7\u00e3o. Corre\u00e7\u00e3o: ajuste CMP para obter consentimento granular e documente como isso afeta a cobertura regional, ajustando expectativas de stakeholders.<\/li>\n<\/ul>\n<h2>Quando essa abordagem faz sentido e quando n\u00e3o<\/h2>\n<h3>Quando vale a pena usar city-level com utm_city<\/h3>\n<p>Quando voc\u00ea opera campanhas regionais com forte varia\u00e7\u00e3o de desempenho entre cidades, e precisa entender exatamente onde investir criativos, lances ou or\u00e7amento. Se o seu funil passa por WhatsApp, telefone ou formul\u00e1rios, e o modelo de atribui\u00e7\u00e3o precisa considerar a cidade para n\u00e3o confundir fontes de tr\u00e1fego, a combina\u00e7\u00e3o City + utm_city entrega visibilidade mais acion\u00e1vel do que depender apenas da cidade nativa do GA4.<\/p>\n<h3>Quando n\u00e3o vale a pena perseguir cidade com alta granularidade<\/h3>\n<p>Se a base de dados \u00e9 pequena, ou se o Consent Mode reduz significativamente a cobertura geogr\u00e1fica, a cidade pode ter ru\u00eddo excessivo para justificar a complexidade adicional. Nesses casos, vale come\u00e7ar com a cidade nativa do GA4 e, apenas se necess\u00e1rio, avan\u00e7ar para a dimens\u00e3o personalizada ou BigQuery. Em cen\u00e1rios com compliance estrito de LGPD, priorize alinhamento com CMP, pol\u00edticas internas de dados e salvaguardas de privacidade antes de investir em camadas adicionais de coleta.<\/p>\n<h2>Observa\u00e7\u00f5es finais e pr\u00f3ximo passo<\/h2>\n<p>Separar por cidade no GA4 n\u00e3o \u00e9 uma garantia de dados perfeitos, mas, com uma abordagem estruturada, voc\u00ea reduz as suposi\u00e7\u00f5es que alimentam decis\u00f5es estrat\u00e9gicas ruins. A chave est\u00e1 em padronizar UTMs, capturar par\u00e2metros com consist\u00eancia, validar resultados entre City nativa e utm_city e, quando necess\u00e1rio, recorrer ao BigQuery para reconcilia\u00e7\u00e3o com CRM e dados offline. Comece com um piloto de 2 a 3 cidades, documente cada ajuste e crie um quadro de governan\u00e7a que mantenha a pr\u00e1tica est\u00e1vel conforme novos mercados sejam adicionados. Se quiser, posso auditar a configura\u00e7\u00e3o atual da sua conta GA4 e propor o plano de implementa\u00e7\u00e3o espec\u00edfico para o seu stack (GA4, GTM Web, GTM Server-Side, CAPI, BigQuery). O primeiro passo concreto \u00e9 validar o fluxo de UTMs na sua \u00faltima campanha regional: pe\u00e7a para rastrear utm_city e compare o que aparece em GA4 versus o que chega no BigQuery em 7 dias de dados. Esse alinhamento evita surpresas na hora de apresentar atribui\u00e7\u00e3o por cidade para clientes ou parceiros.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rastreamento de campanhas regionais exige separar o efeito por cidade para entender onde cada investimento entrega receita. No GA4, a cidade registrada nem sempre \u00e9 confi\u00e1vel ou est\u00e1 dispon\u00edvel para toda a base, especialmente com tr\u00e1fego mobile, proxies, redes corporativas e usu\u00e1rios que optaram por n\u00e3o compartilhar dados. Sem uma estrat\u00e9gia clara, voc\u00ea pode ver&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[20,701,702,13,703],"content_language":[6],"class_list":["post-1451","post","type-post","status-publish","format-standard","hentry","category-blogbr","tag-bigquery","tag-campanhas-regionais","tag-cidade","tag-ga4","tag-utm_city","content_language-br"],"acf":[],"_links":{"self":[{"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=\/wp\/v2\/posts\/1451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1451"}],"version-history":[{"count":0,"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=\/wp\/v2\/posts\/1451\/revisions"}],"wp:attachment":[{"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1451"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1451"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1451"},{"taxonomy":"content_language","embeddable":true,"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcontent_language&post=1451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}