Elido
Tudo o que o Elido faz
Pro & Business

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
elido.app — conversion attribution
elido.me/saleClickclick_id set?elido_cid=a3f9…cookie: cid=a3f9…Stripe Checkoutclient_ref = a3f9…€ 99.00 paidcheckout.session.completed webhook+€99 attributed
Server-side, no pixel gapsHMAC verified
Server-side
Método de atribuição (sem falhas de pixel)
<5s
Atraso na ingestão de eventos de conversão
100%
Precisão de atribuição (sem amostragem)
3
Destinos de encaminhamento (GA4, Meta, Mixpanel)

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.

  1. Step 01

    Click short link

    elido.me/sale

    Edge stamps UUID v4

    cid: a3f9c1…
  2. Step 02

    click_id attached

    ?elido_cid=a3f9c1…

    URL param + first-party cookie

    cid: a3f9c1…
  3. Step 03

    User converts

    client_reference_id=a3f9c1…

    Stripe session carries click_id

    cid: a3f9c1…
  4. Step 04

    Webhook fires

    checkout.session.completed

    Revenue 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.

Stripe
checkout.session.completed · payment_intent.succeeded
HMAC verified
Webhook endpoint
POSThttps://api.elido.app/webhooks/stripe
1. Verify Stripe-Signature header
2. Extract client_reference_id → match click_id
3. Record revenue against originating link
Server-side, no client JavaScript required
Shopify
orders/paid — order deduplication included
HMAC verified
Webhook endpoint
POSThttps://api.elido.app/webhooks/shopify
1. Verify X-Shopify-Hmac-Sha256 header
2. Read click_id from order note_attributes
3. Deduplicate by order ID, attribute revenue
Server-side, no client JavaScript required

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 link
    Summed conversion values, any currency, in the original denomination
  • CVR over time
    Conversion rate time-series alongside click volume
  • Forwarding to GA4 / Meta CAPI
    Fanned out asynchronously after conversion is recorded
  • Deduplication
    Idempotent on click_id + event_name — double webhooks don't double-count
Revenue attribution — last 30 days
Live
Revenue trend168k total
LinkClicksConv.RevenueCVR
elido.me/bfcm18,420847
76,280
4.6%
elido.me/sale11,034512
41,430
4.6%
elido.me/nl/shop8,901398
29,104
4.5%
elido.me/email-q26,201201
14,872
3.2%
elido.me/ig-bio5,03288
6,104
1.7%
Total revenue
167,790
Total conversions
2,046
Avg CVR
4.1%

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.

Passagem de ID de clique
01

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.

Integração com Stripe
02

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.

Integração com Shopify
03

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.

Eventos de conversão personalizados
04

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.

Encaminhamento downstream
05

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.

E
Equipe de E-commerce, marca D2C, Varsóvia
Head de E-commerce

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.

D
Dados de Marketing, SaaS B2B, Lisboa
Engenheiro de Dados de Marketing

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.

E
Engenharia de Growth, fintech, Riga
Engenheiro de Growth

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.

FeatureElidoBitlyShort.io
Atribuição de conversão server-sideSim — baseada em webhook, com assinatura verificadaNão disponívelNão disponível
Integração de webhook do Stripecheckout.session.completed + payment_intent.succeededNão disponívelNão disponível
Integração de webhook do Shopifyorders/paid — assinatura verificada, deduplicação de pedidosNão disponívelNão disponível
Endpoint de conversão personalizadoPOST /v1/conversions — qualquer backend, qualquer eventoNão disponívelNão disponível
Encaminhamento para GA4 / Meta CAPISim — distribuído após o registro da conversãoNão disponívelParcial — apenas pixel client-side
Receita nas análisesResumo de receita por link e por campanha com moedaNão disponívelApenas contagem de conversão, sem receita
Deduplicação de conversãoSim — idempotência em click_id + event_nameNão aplicávelNã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.

Pronto para experimentar?

Comece no plano gratuito, faça o upgrade quando precisar de um domínio personalizado.

Rastreamento de conversões — Atribua pedidos do Stripe e Shopify a cliques. · Elido