Rastreamento de conversões. Attribute every dollar to the click that earned it.
Os receptores de webhook do Stripe e Shopify verificam assinaturas e vinculam a receita ao link curto de origem. A atribuição de campanha é derivada automaticamente.
- Server-side Stripe & Shopify attribution
- click_id passthrough — no client JS needed
- Revenue by link, campaign, day, platform
- Automatic HMAC signature verification
How it works
The click_id travels the entire funnel
A UUID is stamped at click time and passed through every step — URL parameter, session cookie, Stripe session, Shopify order — until the webhook fires and closes the attribution loop server-side. No client JavaScript is required for the attribution itself.
- Step 01
Click short link
elido.me/saleEdge stamps UUID v4
cid: a3f9c1… - Step 02
click_id attached
?elido_cid=a3f9c1…URL param + first-party cookie
cid: a3f9c1… - Step 03
User converts
client_reference_id=a3f9c1…Stripe session carries click_id
cid: a3f9c1… - Step 04
Webhook fires
checkout.session.completedRevenue attributed to originating link
cid: a3f9c1…
Integrations
Drop-in webhook receivers for Stripe and Shopify
Register the endpoint in your dashboard, paste the signing secret, and attribution starts flowing. HMAC signature verification happens before any payload is processed — spoofed webhooks are rejected before they touch your data.
Revenue dashboard
Revenue per link, per campaign, per day
Every short link gets a live revenue total — sum of all attributable conversion values through that link. Filter by campaign tag, date range, or platform. Export as CSV or stream to BigQuery via scheduled exports.
- Revenue per linkSummed conversion values, any currency, in the original denomination
- CVR over timeConversion rate time-series alongside click volume
- Forwarding to GA4 / Meta CAPIFanned out asynchronously after conversion is recorded
- DeduplicationIdempotent on click_id + event_name — double webhooks don't double-count
| Link | Clicks | Conv. | Revenue | CVR |
|---|---|---|---|---|
| elido.me/bfcm | 18,420 | 847 | €76,280 | 4.6% |
| elido.me/sale | 11,034 | 512 | €41,430 | 4.6% |
| elido.me/nl/shop | 8,901 | 398 | €29,104 | 4.5% |
| elido.me/email-q2 | 6,201 | 201 | €14,872 | 3.2% |
| elido.me/ig-bio | 5,032 | 88 | €6,104 | 1.7% |
What you can do
- Stripe checkout.session.completed
- Stripe payment_intent.succeeded
- Shopify orders/paid
- Atribuição de campanha derivada do link
- Resumo de receita no painel
Como o rastreamento de conversões server-side funciona de ponta a ponta
Pixels client-side perdem de 20 a 40% das conversões devido a bloqueadores de anúncios, restrições de privacidade do iOS e cadeias de redirecionamento de checkout. A atribuição server-side elimina essa lacuna.
Cada clique recebe um UUID passado para o destino — a âncora de atribuição para correspondência de conversão
Quando um usuário clica em um link curto do Elido, a edge gera um click_id (UUID v4) e o anexa como um parâmetro de consulta (elido_cid) à URL de destino. Seu fluxo de checkout deve preservar esse parâmetro em cada página do funil — a maioria dos roteadores SPA e stacks de checkout renderizadas no servidor encaminham parâmetros de consulta desconhecidos por padrão, mas cadeias de checkout de várias etapas com redirecionamentos podem removê-los. O click_id também é armazenado em um cookie de sessão no domínio de destino se você incorporar o snippet de atribuição de 2 KB do Elido (opcional). Teste o fluxo de checkout completo antes de ir ao ar: clique em um link curto, conclua uma compra de teste e verifique se o elido_cid aparece no POST de conversão. Se não aparecer, adicione o encaminhamento de parâmetros de consulta no seu middleware de checkout. Essa é a falha de configuração de atribuição mais comum — não o webhook, mas a perda de parâmetros de consulta no checkout.
O receptor de webhook do Stripe verifica assinaturas e atribui os eventos checkout.session.completed e payment_intent.succeeded
Registre o endpoint de webhook do Stripe do Elido no seu painel do Stripe (Configurações → Webhooks → Adicionar endpoint). O Elido escuta os eventos checkout.session.completed e payment_intent.succeeded. Em cada evento, o Elido verifica o cabeçalho Stripe-Signature usando seu segredo de assinatura de webhook, extrai o valor do pagamento e a moeda, procura o click_id armazenado no client_reference_id da Sessão de Checkout (que seu checkout deve preencher — consulte o guia) e registra a conversão para aquele clique. A receita e o click_id ficam disponíveis na visualização de análise do link e no resumo de receita da campanha. O campo client_reference_id da Sessão de Checkout é a passagem recomendada; alternativamente, use o campo de metadados do Stripe com a chave elido_cid se estiver usando PaymentIntents diretamente. A configuração completa leva cerca de 30 minutos se a sua integração com o Stripe já lidar com webhooks.
O webhook orders/paid do Shopify vincula a receita do pedido ao clique no link curto de origem
Registre o endpoint de webhook do Shopify do Elido no seu administrador do Shopify (Configurações → Notificações → Webhooks → Criar webhook → Tópico: orders/paid). O Elido verifica o cabeçalho X-Shopify-Hmac-Sha256, extrai o total do pedido e a moeda, e procura o elido_cid nos note_attributes do pedido (você preenche isso a partir do carrinho usando a API note_attributes do carrinho do Shopify, passando o click_id do cookie de sessão ou parâmetro de URL). Para lojas Shopify que usam temas Online Store 2.0 temas, o snippet de atribuição do Elido injeta o click_id no carrinho automaticamente ao clicar. Os pedidos atribuídos são deduplicados pelo ID do pedido, para que pedidos reembolsados e substituídos não sejam contados duas vezes. Lojas Shopify Plus com extensões de checkout personalizadas podem passar o click_id por um canal mais confiável — o guia de configuração aborda o fluxo específico do Plus.
Envie um POST para o endpoint de conversão do Elido a partir de qualquer backend — não apenas Stripe e Shopify
Envie um POST /v1/conversions com um corpo JSON: { click_id: "...", event_name: "purchase", value: 99.00, currency: "EUR", metadata: {} }. O click_id é o elido_cid do clique. O Elido autentica a solicitação com a chave de API do seu workspace (HMAC-SHA256 sobre o corpo do payload é recomendado para maior segurança). Este endpoint cobre qualquer conversão não tratada pelas integrações nativas de Stripe ou Shopify: WooCommerce, ativações de teste de SaaS personalizadas, envios de formulários de leads, conversões de chamadas telefônicas rastreadas por sua plataforma de telefonia. O campo event_name é texto livre; use qualquer convenção de nomenclatura que sua equipe preferir — ele é exibido como está na visualização de análise. Idempotência: envie o mesmo POST com a combinação click_id + event_name duas vezes e apenas a primeira será registrada. O valor do evento e os metadados são mutáveis apenas na primeira gravação.
Distribua conversões para o GA4 Measurement Protocol, Meta CAPI e o server-track do Mixpanel simultaneamente
Depois que o Elido registra uma conversão para um clique, ele distribui o evento para quaisquer destinos de encaminhamento server-side que você tenha ativado: GA4 Measurement Protocol (o evento aparece no GA4 como um evento de compra server-side com os parâmetros UTM originais do clique), Meta Conversions API (o evento faz a deduplicação em relação ao pixel client-side se ambos estiverem disparando, usando o event_id do click_id) e Mixpanel server-track (o evento é enviado com o distinct_id da chamada $identify do Mixpanel se você configurou a identidade cruzada). O encaminhamento acontece de forma assíncrona após o registro da conversão — ele não bloqueia a resposta do webhook para o Stripe ou Shopify. Eventos de encaminhamento com falha são repetidos com backoff exponencial por 24 horas e, em seguida, descartados com uma entrada de log. Você pode ver o status do encaminhamento por conversão no painel.
Equipes de receita que usam o rastreamento de conversões do Elido
Os nomes são apenas ilustrativos — estudos de caso de clientes reais serão publicados aqui à medida que forem lançados.
“O iOS 14.5 acabou com a nossa atribuição do Meta Pixel em 30% das compras móveis. O webhook do Stripe server-side via Elido recuperou a maior parte — a passagem do click_id para o client_reference_id do Stripe foi a chave. A configuração levou uma tarde.”
“Enviamos ativações de teste via POST para o endpoint de conversão personalizado do Elido. A cadeia de conversão clique → teste → pago agora é rastreável de ponta a ponta sem um CDP completo. O encaminhamento para o GA4 Measurement Protocol significa que nossos painéis de canais pagos voltaram a ser precisos.”
“O webhook orders/paid do Shopify somado ao snippet de atribuição no tema foi uma integração de um dia. A receita por campanha agora é um número em tempo real no nosso standup matinal, não uma fórmula de planilha que alguém precisa atualizar.”
Rastreamento de conversões do Elido vs Bitly vs Short.io
O Bitly não possui rastreamento de conversões server-side. O Short.io tem pixels de conversão básicos. O rastreamento de conversões do Elido é server-side e encaminha para várias plataformas de anúncios.
| Feature | Elido | Bitly | Short.io |
|---|---|---|---|
| Atribuição de conversão server-side | Sim — baseada em webhook, com assinatura verificada | Não disponível | Não disponível |
| Integração de webhook do Stripe | checkout.session.completed + payment_intent.succeeded | Não disponível | Não disponível |
| Integração de webhook do Shopify | orders/paid — assinatura verificada, deduplicação de pedidos | Não disponível | Não disponível |
| Endpoint de conversão personalizado | POST /v1/conversions — qualquer backend, qualquer evento | Não disponível | Não disponível |
| Encaminhamento para GA4 / Meta CAPI | Sim — distribuído após o registro da conversão | Não disponível | Parcial — apenas pixel client-side |
| Receita nas análises | Resumo de receita por link e por campanha com moeda | Não disponível | Apenas contagem de conversão, sem receita |
| Deduplicação de conversão | Sim — idempotência em click_id + event_name | Não aplicável | Não disponível |
Dúvidas sobre rastreamento de conversões
E se o click_id for removido antes da conversão?
Se o parâmetro de consulta elido_cid for perdido antes do disparo do evento de conversão — devido a uma cadeia de redirecionamento, roteador SPA não encaminhando parâmetros de consulta ou checkout de terceiros removendo parâmetros desconhecidos — a conversão não poderá ser atribuída. Teste o funil completo: clique em um link curto, rastreie o elido_cid em cada página até a confirmação do checkout e verifique se ele aparece no POST de conversão. O snippet de atribuição do Elido (um pequeno bloco JavaScript) também define o click_id em um cookie primário (first-party) como backup — se o parâmetro da URL for perdido, mas o usuário ainda estiver na mesma sessão do navegador, a atribuição pode ser recuperada pelo cookie.
Como os reembolsos são tratados na atribuição de conversão?
O Elido não processa automaticamente eventos de reembolso. Se um evento charge.refunded do Stripe ou refunds/create do Shopify for disparado, o Elido não debita a receita atribuída. Você pode enviar um evento de conversão com valor negativo para o endpoint personalizado para reverter a atribuição manualmente. Um ouvinte de webhook de reembolso está no roteiro (roadmap). Até lá, se precisar de uma receita líquida precisa no Elido, subtraia os totais de reembolso usando os dados de exportação e seu sistema de gerenciamento de pedidos.
O rastreamento de conversão funciona se o usuário concluir o checkout em um dispositivo diferente?
Não — se o usuário clicar no link curto no celular, mas concluir o checkout no desktop, o click_id não é transferido entre dispositivos. A conversão não será atribuída, a menos que a sessão do usuário tenha preservado o elido_cid durante a troca de dispositivo (por exemplo, por meio de uma conta logada que o armazenou). Atribuição entre dispositivos exige um grafo de identidade server-side, que o Elido não fornece. Para precisão na atribuição entre dispositivos, use seu MMP ou CDP junto com as conversões server-side do Elido.
Quais moedas são suportadas para atribuição de receita?
Todos os códigos de moeda ISO 4217 são aceitos no campo value de um evento de conversão. A receita é armazenada na moeda original; o painel de análise mostra a receita na moeda de cada evento de conversão. Se você precisar de uma visualização consolidada em uma única moeda, exporte os eventos de conversão e faça a conversão no seu warehouse — o Elido não aplica taxas de câmbio (FX).
Como configuro a passagem do client_reference_id do Stripe?
Ao criar uma Sessão de Checkout do Stripe, defina o client_reference_id com o valor do parâmetro de URL elido_cid do clique de referência. Em JavaScript: const session = await stripe.checkout.sessions.create({ ..., client_reference_id: searchParams.get('elido_cid') }). O manipulador de webhook do Elido lê esse campo de checkout.session.completed. Se estiver usando PaymentIntents diretamente, use the campo metadata com a chave elido_cid. O guia de configuração em /docs/guides/conversion-tracking possui código para copiar e colar para Node, Python e Go.
Os dados de conversão estão incluídos nas exportações do ClickHouse?
Sim. Os eventos de conversão são armazenados em uma tabela separada do ClickHouse (conversions) ao lado da tabela de eventos de clique (clicks). As exportações agendadas para S3, BigQuery ou Snowflake incluem ambas as tabelas. A chave de JOIN é click_id. Uma consulta SQL de referência que une cliques a conversões e calcula a receita por origem UTM da campanha está no guia de exportação.
Posso rastrear conversões que não geram receita, como preenchimento de formulários ou ativações de teste?
Sim — o endpoint de conversão personalizado aceita qualquer event_name e um valor opcional (defina como 0 para eventos sem receita). Use nomes de eventos como 'trial_started', 'demo_booked', 'form_submitted'. Eles aparecem na visualização de análise do link em 'Conversões' com o nome do evento como rótulo. Se você também encaminhar para o GA4, eles serão mapeados para eventos personalizados do GA4. As contagens de conversão (não apenas a receita) são visíveis por link e por campanha, independentemente do valor do evento.
Qual é a latência entre o recebimento do evento de conversão e a visibilidade na análise?
Do recebimento do webhook para o ClickHouse: normalmente menos de 5 segundos via o mesmo pipeline do Redpanda que os eventos de clique. A atribuição (corresponder a conversão ao clique de origem) acontece de forma síncrona no recebimento do webhook — se o click_id for resolvido, a atribuição é imediata. O encaminhamento downstream para GA4 / Meta CAPI / Mixpanel é assíncrono e adiciona de 2 a 10 segundos. O número de receita na visualização de análise do painel é atualizado em até 30 segundos após o recebimento do evento de conversão.
Keep reading
Análise de cliques no ClickHouse — onde a receita de conversão aparece ao lado da contagem de cliques.
Dispare pixels do Meta CAPI e Google Ads no redirecionamento — o lado da aquisição do ciclo de conversão.
Atribuição de receita em nível de campanha — veja qual variante da campanha gerou mais receita.
Webhooks de saída assinados com HMAC do Elido — receba eventos de clique com atribuição de conversão em seus próprios sistemas.
Pronto para experimentar?
Comece no plano gratuito, faça o upgrade quando precisar de um domínio personalizado.