{"id":1569,"date":"2026-04-23T18:11:48","date_gmt":"2026-04-23T18:11:48","guid":{"rendered":"https:\/\/cms.funnelsheet.com\/?p=1569"},"modified":"2026-04-23T18:11:48","modified_gmt":"2026-04-23T18:11:48","slug":"tracking-para-negocios-que-tem-crm-customizado-sem-integracao-nativa-com-ga4","status":"publish","type":"post","link":"https:\/\/cms.funnelsheet.com\/?p=1569","title":{"rendered":"Tracking para neg\u00f3cios que t\u00eam CRM customizado sem integra\u00e7\u00e3o nativa com GA4"},"content":{"rendered":"<p>Tracking para neg\u00f3cios que t\u00eam CRM customizado sem integra\u00e7\u00e3o nativa com GA4 \u00e9 o tipo de desafio que separa dados confi\u00e1veis de ru\u00eddo que corr\u00f3i decis\u00f5es. Quando o CRM n\u00e3o oferece uma ponte direta, cada ponto de contato \u2014 do clique inicial ao WhatsApp, da liga\u00e7\u00e3o para venda at\u00e9 o preenchimento final \u2014 pode seguir um caminho de dados diferente. O resultado comum: diverg\u00eancia entre GA4, Meta e o CRM, leads que parecem aparecer em um sistema e n\u00e3o no outro, e uma sensa\u00e7\u00e3o constante de que o investimento em m\u00eddia est\u00e1 sendo mal distribu\u00eddo. Este artigo parte do problema real: como diagnosticar, configurar e decidir entre abordagens que conectem GA4 a um CRM customizado sem integra\u00e7\u00e3o nativa, mantendo o controle sobre LGPD e a realidade de mercados como Brasil, Portugal e Estados Unidos. Em vez de prometer solu\u00e7\u00f5es gen\u00e9ricas, foco em decis\u00f5es t\u00e9cnicas concretas, com passos pr\u00e1ticos e valida\u00e7\u00e3o cont\u00ednua.<\/p>\n<p>Voc\u00ea vai encontrar um caminho com crit\u00e9rios claros: quando vale investir em GTM Server-Side para centralizar eventos, como modelar dados para o CRM sem perder a origem (UTMs\/GCLID), e quais sinais indicam que seu setup est\u00e1 quebrado antes de se tornar um problema maior. No fim, voc\u00ea ter\u00e1 um roteiro acion\u00e1vel com valida\u00e7\u00e3o pr\u00e1tica e uma \u00e1rvore de decis\u00e3o para escolher entre integra\u00e7\u00e3o direta, envio de convers\u00f5es offline e estrat\u00e9gias de dados first-party. E, claro, ficar\u00e1 preparado para discutir com devs, clientes ou fornecedores de tecnologia de rastreamento sem passar por solu\u00e7\u00f5es r\u00e1pidas que acabam gerando mais ru\u00eddo do que ganho.<\/p>\n<h2>Desafios reais de conectar um CRM customizado a GA4 sem integra\u00e7\u00e3o nativa<\/h2>\n<blockquote>\n<p>Quando o CRM n\u00e3o conversa nativamente com GA4, o caminho do dado se fragmenta entre sess\u00f5es, eventos e offline, abrindo espa\u00e7o para duplicidade e perdas de atribui\u00e7\u00e3o.<\/p>\n<\/blockquote>\n<p>O problema mais comum n\u00e3o \u00e9 a aus\u00eancia de dados, mas a desconex\u00e3o entre as fontes. Voc\u00ea pode ter GA4 recebendo eventos de web e app, e o CRM gravando oportunidades, contatos e fechamentos, mas sem um alinhamento entre os identificadores (client_id, gclid, uid) e os IDs internos do CRM, a correla\u00e7\u00e3o fica quebrada. Lead que entra por WhatsApp pode ter um ciclo de venda que dura semanas, com v\u00e1rias mudan\u00e7as de canal, e a convers\u00e3o final nem sempre est\u00e1 associada ao clique que gerou o interesse. Al\u00e9m disso, a aus\u00eancia de uma refer\u00eancia robusta de origem (UTM, CLID, session_id) no momento da captura impede que o funil seja tra\u00e7ado com precis\u00e3o, o que tende a desorganizar o livro de dados para BI, Looker Studio ou BigQuery. Em muitos cen\u00e1rios, o CRM \u00e9 o \u00fanico sistema que cont\u00e9m o hist\u00f3rico de relacionamento e, sem uma ponte consistente, voc\u00ea precisa escolher entre \u201cempilhar dados\u201d ou \u201cconfiar nos dados de cada sistema separadamente\u201d.<\/p>\n<blockquote>\n<p>Em cruze de dados entre CRM customizado e GA4, o maior vil\u00e3o costuma ser a perda de identificadores persistentes que conectam cada evento ao registro correto no CRM.<\/p>\n<\/blockquote>\n<h2>Abordagens t\u00e9cnicas para conectar GA4 com CRM customizado<\/h2>\n<p>Existem caminhos com graus de complexidade e risco diferentes. A decis\u00e3o depende do seu contexto \u2014 tipo de CRM, infraestrutura dispon\u00edvel, e o n\u00edvel de conformidade exigido pela LGPD. Abaixo, descrevo as op\u00e7\u00f5es mais comuns, com vantagens, limita\u00e7\u00f5es e sinais de alerta. Sempre prefira solu\u00e7\u00f5es que mantenham uma linha \u00fanica de verdade entre dados de convers\u00e3o no CRM e no GA4, mesmo que isso signifique investir em infraestrutura adicional, como GTM Server-Side e envio de dados via API.<\/p>\n<h3>GTM Server-Side como coletor central<\/h3>\n<p>O GTM Server-Side funciona como um hub para eventos que chegam do navegador, app ou plataformas de an\u00fancios. Ao redirecionar a coleta para um servidor controlado, voc\u00ea ganha controle sobre a origem (UTM, GCLID), o mapeamento de identificadores entre GA4 e o CRM, e a capacidade de gerenciar consentimento com maior consist\u00eancia. Em CRM customizado, o objetivo \u00e9 consolidar eventos-chave (lead criado, lead qualificado, oportunidade aberta, venda fechada) com os identificadores certos e envi\u00e1-los para GA4 como convers\u00f5es ou eventos personalizados, mantendo a compatibilidade com o data layer do site e com o fluxo de dados do CRM. Contudo, essa abordagem exige uma arquitetura est\u00e1vel, fluxo de dados bem definido e monitoramento de lat\u00eancia para evitar atrasos que prejudicam a atribui\u00e7\u00e3o.<\/p>\n<h3>Eventos customizados vs. convers\u00f5es do GA4<\/h3>\n<p>Quando o CRM n\u00e3o oferece integra\u00e7\u00e3o nativa, \u00e9 comum pensar em enviar eventos personalizados para GA4 a partir do CRM ou do middleware que faz a ponte. A decis\u00e3o entre criar eventos personalizados no GA4 ou usar convers\u00f5es padr\u00e3o depende da necessidade de precis\u00e3o e de como voc\u00ea pretende analisar a performance. Eventos bem nomeados (por exemplo, lead_created, opportunity_unlocked, sale_completed) ajudam a manter consist\u00eancia, mas exigem um esquema de mapeamento claro entre os dados do CRM e os par\u00e2metros que o GA4 espera. Uma pr\u00e1tica comum \u00e9 manter um conjunto m\u00ednimo de par\u00e2metros obrigat\u00f3rios (event_name, currency, value, transaction_id, user_id) para facilitar valida\u00e7\u00e3o e correla\u00e7\u00e3o com dados offline.<\/p>\n<h3>Sincroniza\u00e7\u00e3o offline de convers\u00f5es via BigQuery ou upload de planilha<\/h3>\n<p>Para cen\u00e1rios em que o CRM armazena dados hist\u00f3ricos e n\u00e3o \u00e9 vi\u00e1vel captur\u00e1-los em tempo real, a sincroniza\u00e7\u00e3o offline pode ser a sa\u00edda. Exportar convers\u00f5es do CRM para BigQuery e cruzar com GA4 oferece vis\u00e3o consolidada, desde que haja um schema est\u00e1vel e um identificador comum (por exemplo, transaction_id). O desafio \u00e9 manter a janela de atribui\u00e7\u00e3o alinhada e evitar contagens duplas, especialmente quando h\u00e1 reabertura de funis ou reabertura de neg\u00f3cios a partir de diferentes touchpoints. Essa abordagem tende a exigir processos de ETL, valida\u00e7\u00e3o de dados e governan\u00e7a de dados para evitar inconsist\u00eancias durante a homologa\u00e7\u00e3o de dados.<\/p>\n<h2>Roteiro pr\u00e1tico para conectar GA4 a um CRM customizado<\/h2>\n<p>Abaixo est\u00e1 um roteiro acion\u00e1vel com passos que ajudam a tornar o projeto vi\u00e1vel, mesmo quando a integra\u00e7\u00e3o direta n\u00e3o existe. Use o ol para guiar a implementa\u00e7\u00e3o de forma estruturada.<\/p>\n<ol>\n<li>Qualifique os pontos de contato relevantes no CRM e no GA4. Identifique quais eventos no CRM precisam ser rastreados no GA4 (ex.: lead_criado, oportuno_qualificado, venda_concluida) e quais dados de origem (UTMs, GCLID, session_id) devem acompanhar cada registro.<\/li>\n<li>Defina o esquema de eventos no GA4. Padronize nomes de eventos e par\u00e2metros (por exemplo, event_name = lead_created, parameters = {crm_id, transaction_id, source\/medium, gclid, uid}) para facilitar a correla\u00e7\u00e3o entre plataformas.<\/li>\n<li>Escolha a via de coleta: client-side, server-side ou combina\u00e7\u00e3o. Considere GTM Server-Side como hub central para controle de identidade, consentimento e envio de dados com menos ru\u00eddo de bloqueios de bloqueio de terceiros.<\/li>\n<li>Mapeie identificadores entre GA4 e CRM. Determine como manter uid, gclid e crm_id sincronizados entre os sistemas para evitar atribui\u00e7\u00e3o duplicada e perda de correspond\u00eancia entre eventos e registros.<\/li>\n<li>Padronize o fluxo de convers\u00f5es offline. Defina como as convers\u00f5es registradas no CRM v\u00e3o para GA4 (convers\u00f5es via API, envio peri\u00f3dico para BigQuery, ou upload de planilha com valida\u00e7\u00e3o de duplicates).<\/li>\n<li>Implemente valida\u00e7\u00e3o de ponta a ponta. Fa\u00e7a testes end-to-end (E2E) para cada caminho de dados: navegador \u2192 GTM Server-Side \u2192 GA4; CRM \u2192 GA4; offline \u2192 GA4. Confirme que cada convers\u00e3o no CRM corresponde a uma convers\u00e3o registrada no GA4 e ao relat\u00f3rio de lookback.<\/li>\n<\/ol>\n<p>Essa sequ\u00eancia n\u00e3o \u00e9 apenas t\u00e9cnica; \u00e9 tamb\u00e9m operacional. A integra\u00e7\u00e3o entre CRM customizado e GA4 exige um acordo claro entre equipes de marketing, produto e desenvolvimento sobre o que \u00e9 \u201cconvers\u00e3o\u201d e como cada sistema a registra. A inconsist\u00eancia entre o que o CRM registra e o que GA4 captura tende a diminuir com um esquema de eventos bem definido, identificadores persistentes e valida\u00e7\u00f5es regulares. Em ambientes com consentimento do usu\u00e1rio vari\u00e1vel, o Consent Mode v2 tamb\u00e9m passa a ser relevante para evitar distor\u00e7\u00f5es futuras na contagem de convers\u00f5es.<\/p>\n<h2>Decis\u00f5es-chave: quando escolher cada abordagem<\/h2>\n<p>Existem cen\u00e1rios em que uma abordagem se mostra mais pr\u00e1tica do que outra. Abaixo, apresento sinais que ajudam a decidir entre as op\u00e7\u00f5es mais comuns, sem rodeios.<\/p>\n<h3>Quando vale priorizar GTM Server-Side como hub de dados<\/h3>\n<p>Se o seu CRM exige que voc\u00ea mantenha uma linha \u00fanica de verdade entre eventos on-site, mensagens de WhatsApp e convers\u00f5es offline, e se voc\u00ea tem recursos para gerenciar infraestrutura, GTM Server-Side geralmente compensa. Ela reduz a depend\u00eancia de cookies de terceiros, facilita a gest\u00e3o de consentimento e permite um controle mais r\u00edgido sobre quais dados entram no GA4. Por outro lado, exige conhecimento t\u00e9cnico e monitoramento constante para evitar atrasos e perda de dados durante picos de tr\u00e1fego.<\/p>\n<h3>Quando a sincroniza\u00e7\u00e3o offline compensa mais<\/h3>\n<p>Se seu CRM det\u00e9m dados hist\u00f3ricos cruciais (convers\u00f5es passivas, ciclos longos, faturamento), mas a integra\u00e7\u00e3o em tempo real \u00e9 complexa ou invi\u00e1vel, a sincroniza\u00e7\u00e3o offline com BigQuery ou uploads peri\u00f3dicos pode ser a sa\u00edda mais est\u00e1vel. O ponto cr\u00edtico \u00e9 evitar contagens duplicadas e manter uma rela\u00e7\u00e3o clara entre transaction_id no CRM e os eventos no GA4. A cad\u00eancia de atualiza\u00e7\u00f5es precisa ser acordada com a equipe de dados e suporte t\u00e9cnico para n\u00e3o comprometer a alimenta\u00e7\u00e3o de relat\u00f3rios em tempo real.<\/p>\n<h3>Quando a simplicidade impera<\/h3>\n<p>Para organiza\u00e7\u00f5es com recursos limitados ou com CRM muito personalizado, come\u00e7ar com uma implementa\u00e7\u00e3o menos agressiva (eventos personalizados enviados diretamente para GA4 via API, com valida\u00e7\u00e3o no lado do servidor) pode ser mais efetivo do que tentar mapear toda a cadeia de dados de imediato. O foco deve ser estabelecer uma fonte de verdade inicial, mesmo que com menor granularidade, e evoluir a partir do feedback de usu\u00e1rios e de auditorias de dados.<\/p>\n<h2>Erros comuns com corre\u00e7\u00f5es pr\u00e1ticas<\/h2>\n<p>Listo abaixo erros que aparecem com frequ\u00eancia em cen\u00e1rios de CRM customizado sem integra\u00e7\u00e3o nativa, com corre\u00e7\u00f5es diretas para evitar retrabalho.<\/p>\n<p><strong>Erro 1:<\/strong> Identificadores n\u00e3o persistem entre sistemas. Corre\u00e7\u00e3o pr\u00e1tica: defina uma session_id ou transaction_id que seja gerado no est\u00e1gio inicial do funil (CRM ou landing page) e propagate esse identificador por todos os eventos, tanto no GA4 quanto no CRM.<\/p>\n<p><strong>Erro 2:<\/strong> Planos de consentimento n\u00e3o sincronizados. Corre\u00e7\u00e3o pr\u00e1tica: implemente Consent Mode v2 e alinhe a coleta de dados entre GA4 e GTM Server-Side com as regras de LGPD aplic\u00e1veis ao seu neg\u00f3cio, ajustando as configura\u00e7\u00f5es de consentimento antes de disparar eventos.<\/p>\n<p><strong>Erro 3:<\/strong> Dados do CRM n\u00e3o chegam com o mesmo timing que o GA4. Corre\u00e7\u00e3o pr\u00e1tica: use uma fila de eventos no servidor para suavizar picos e manter um timestamp coerente entre sistemas, evitando confundir a ordem de men\u00e7\u00f5es de convers\u00e3o.<\/p>\n<p><strong>Erro 4:<\/strong> Duplicidade de convers\u00f5es ao sincronizar offline. Corre\u00e7\u00e3o pr\u00e1tica: deduplicate com base em transaction_id e data\/hora, aplicando uma regra de janela de atribui\u00e7\u00e3o que reflita seu modelo de neg\u00f3cio (por exemplo, 7-30 dias).<\/p>\n<h2>Checklist de valida\u00e7\u00e3o e auditoria (roteiro r\u00e1pido de verifica\u00e7\u00e3o)<\/h2>\n<p>Segue um checklist objetivo que pode servir como roteiro r\u00e1pido de auditoria. Usei a estrutura de valida\u00e7\u00e3o para garantir que o fluxo de dados esteja realmente conectando GA4 ao CRM sem depender de solu\u00e7\u00f5es gen\u00e9ricas.<\/p>\n<ul>\n<li>Valide o mapeamento de identidades entre GA4, GTM Server-Side e CRM (uid, gclid, crm_id).<\/li>\n<li>Verifique a consist\u00eancia dos nomes de eventos (lead_created, opportunity_qualified, sale_closed) em todas as plataformas.<\/li>\n<li>Chegue a um conjunto m\u00ednimo de par\u00e2metros por evento (por exemplo, transaction_id, value, currency, source\/medium).<\/li>\n<li>Teste end-to-end com cen\u00e1rios reais: clique de an\u00fancio, abertura de WhatsApp, fechamento, e verifique a contagem no GA4 e no CRM.<\/li>\n<li>Audite convers\u00f5es offline para evitar duplica\u00e7\u00e3o e garantir a correspond\u00eancia com GA4 (BigQuery\/planilha).<\/li>\n<li>Implemente um monitoramento simples de lat\u00eancia entre envio de eventos e recep\u00e7\u00e3o no GA4 para detectar quedas de dados.<\/li>\n<\/ul>\n<h2>Modelos de implementa\u00e7\u00e3o e refer\u00eancia pr\u00e1tica<\/h2>\n<p>O desafio de rastrear um CRM customizado sem integra\u00e7\u00e3o nativa com GA4 \u00e9, em ess\u00eancia, um problema de alinhamento de dados entre sistemas diferentes. A pr\u00e1tica recomendada \u00e9 estabelecer um modelo de eventos padronizado, manter um identificador persistente entre plataformas, e usar uma camada de coleta centralizada que voc\u00ea controla. Documente o fluxo de dados, o esquema de nomes de eventos e os par\u00e2metros esperados para cada etapa do funil. Al\u00e9m disso, considere a ado\u00e7\u00e3o de um pipeline de dados que permita visualizar a origem, o meio, a campanha e o identificador de CRM em um \u00fanico local de verdade, como BigQuery ou Looker Studio, para reduzir a ambiguidade entre plataformas.<\/p>\n<h3>\u00c1rvore de decis\u00e3o r\u00e1pida para escolher a abordagem<\/h3>\n<blockquote>\n<p>Se a sua prioridade \u00e9 reduzir ru\u00eddos de dados e manter uma linha \u00fanica de verdade entre GA4 e CRM, a via Server-Side com sincroniza\u00e7\u00e3o de identificadores \u00e9 a escolha mais est\u00e1vel \u2014 desde que haja disponibilidade de recursos para manter a infraestrutura.<\/p>\n<\/blockquote>\n<p>N\u00e3o h\u00e1 solu\u00e7\u00e3o \u00fanica que funcione para todas as empresas. O essencial \u00e9 identificar onde o fluxo de dados tende a se romper e aplicar uma corre\u00e7\u00e3o que preserve a validade das m\u00e9tricas. Em muitos cen\u00e1rios, uma combina\u00e7\u00e3o de GTM Server-Side para coleta centralizada, envio de eventos para GA4 com um schema s\u00f3lido e uma rotina de upload\/ETL para o CRM ou BigQuery oferece o equil\u00edbrio entre controle, velocidade de entrega e conformidade.<\/p>\n<p>Para quem deseja aprofundar aspectos t\u00e9cnicos espec\u00edficos, a documenta\u00e7\u00e3o oficial do GA4 e as diretrizes de GTM Server-Side s\u00e3o refer\u00eancias importantes. O GA4 oferece fundamentos para como coletar e modelar dados, enquanto o GTM Server-Side facilita a organiza\u00e7\u00e3o desses dados antes de envi\u00e1-los aos destinos finais. Al\u00e9m disso, o suporte da Meta oferece vis\u00e3o sobre como a Conversions API pode complementar o ecossistema de rastreamento, especialmente quando o tr\u00e1fego vem de fontes que n\u00e3o compartilham cookies de forma est\u00e1vel. Consulte, por exemplo, a documenta\u00e7\u00e3o de GA4 e GTM Server-Side para entender limites, formatos de payload e boas pr\u00e1ticas de implementa\u00e7\u00e3o. <a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/ga4\" target=\"_blank\">Documenta\u00e7\u00e3o GA4 \u2013 Google Developers<\/a> \u00b7 <a href=\"https:\/\/developers.google.com\/tag-manager\/serverside\" target=\"_blank\">GTM Server-Side \u2013 Google Developers<\/a> \u00b7 <a href=\"https:\/\/support.google.com\/analytics\/answer\/1008015?hl=pt-BR\" target=\"_blank\">Guia GA4 \u2013 suporte Google Analytics<\/a> \u00b7 <a href=\"https:\/\/www.facebook.com\/business\/help\/706520317630487\" target=\"_blank\">Conversions API \u2013 Meta Business Help<\/a>.<\/p>\n<p>Se for pertinente, tamb\u00e9m recomendo acompanhar pr\u00e1ticas e casos da Think with Google para entender cen\u00e1rios reais de dados first-party e integra\u00e7\u00e3o com ferramentas de BI, como BigQuery e Looker Studio, no contexto de rastreamento confi\u00e1vel.<\/p>\n<p>Para avan\u00e7ar hoje, a pr\u00f3xima etapa pr\u00e1tica \u00e9 conduzir uma auditoria inicial do seu setup atual: mapeie os pontos de contato, identifique gaps cr\u00edticos de identificadores, e valide se h\u00e1 uma linha \u00fanica de verdade entre CRM e GA4. Se preferir, a Funnelsheet pode ajudar a conduzir essa auditoria t\u00e9cnica e entregar um plano de implementa\u00e7\u00e3o com responsabilidades, prazos e crit\u00e9rios de sucesso.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tracking para neg\u00f3cios que t\u00eam CRM customizado sem integra\u00e7\u00e3o nativa com GA4 \u00e9 o tipo de desafio que separa dados confi\u00e1veis de ru\u00eddo que corr\u00f3i decis\u00f5es. Quando o CRM n\u00e3o oferece uma ponte direta, cada ponto de contato \u2014 do clique inicial ao WhatsApp, da liga\u00e7\u00e3o para venda at\u00e9 o preenchimento final \u2014 pode seguir&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":[8,801,13,802,25],"content_language":[6],"class_list":["post-1569","post","type-post","status-publish","format-standard","hentry","category-blogbr","tag-atribuicao-de-leads","tag-crm-customizado","tag-ga4","tag-integracao-ga4","tag-lgpd","content_language-br"],"acf":[],"_links":{"self":[{"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=\/wp\/v2\/posts\/1569","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=1569"}],"version-history":[{"count":0,"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=\/wp\/v2\/posts\/1569\/revisions"}],"wp:attachment":[{"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1569"},{"taxonomy":"content_language","embeddable":true,"href":"https:\/\/cms.funnelsheet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcontent_language&post=1569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}