Elido
Help center

Analytics

Conversion tracking

What a conversion is in Elido, how to send conversion events, where to place the pixel, and how attribution windows work.

Updated 2026-05-12

Elido tracks two things from a short link: the click (when someone follows the link) and the conversion (when that same person takes a valuable action on your site afterward). Conversion tracking connects the two, so you can see not just which links drive traffic, but which ones drive results.

What counts as a conversion#

A conversion is any event you define — a purchase, a signup, a form submission, a trial start. Elido doesn't impose a specific definition. You send a conversion event when the action happens; we attribute it back to the click that brought the user in.

The conversions dashboard at Analytics → Conversions shows:

  • Total conversions and total revenue attributed.
  • Conversions broken down by link, campaign, day, and platform.
  • A table of recent individual conversion events with customer email and revenue.

Set up a conversion event#

Option 1: server-side API call#

The most reliable method. When a user completes an action on your backend, send a POST to the conversions endpoint:

curl -X POST https://api.elido.app/v1/conversions \
  -H "Authorization: Bearer $ELIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workspace_id": 42,
    "platform": "stripe",
    "customer_email": "user@example.com",
    "revenue_cents": 4900,
    "currency": "EUR",
    "converted_at": "2026-05-12T14:30:00Z"
  }'

Include customer_email or click_id for attribution. If you pass a click_id (returned in the redirect response headers as X-Elido-Click-ID), attribution is exact. If you pass only customer_email, we match it against the last click from that address within the attribution window.

Option 2: client-side pixel#

Add the Elido pixel to your confirmation page (order confirmation, signup success, etc.):

<script>
  window.elidoConvert = window.elidoConvert || function(opts) {
    fetch('https://api.elido.app/v1/conversions/pixel', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        workspace_id: opts.workspaceId,
        platform: opts.platform || 'web',
        revenue_cents: opts.revenueCents || 0,
        currency: opts.currency || 'EUR',
      }),
      credentials: 'include',
    });
  };
</script>

Then call it on the confirmation page:

<script>
  elidoConvert({
    workspaceId: 42,
    platform: 'web',
    revenueCents: 4900,
    currency: 'EUR',
  });
</script>

The pixel uses a browser cookie set during the redirect to identify the click that preceded the conversion. This works for same-browser, same-device journeys. For cross-device or cross-browser attribution, the server-side click_id method is more reliable.

Attribution windows#

By default, a conversion is attributed to the most recent click from the same user within a 30-day window. If the same user clicked multiple links in that period, the conversion is attributed to the last click (last-touch attribution).

The window is configurable per workspace in Settings → Attribution. Available options include 1 day, 7 days, 30 days, and 90 days.

Reading the conversions dashboard#

Analytics → Conversions breaks down conversions by:

  • Platform — the platform field you pass in the API call (stripe, shopify, web, or any label you choose).
  • Top links — which short links drove the most conversions.
  • Top campaigns — which campaigns converted best.
  • Daily revenue — a bar chart of attributed revenue over time.

Revenue is shown as the sum of revenue_cents values you passed in. If you don't track revenue (e.g. for lead gen), you can leave revenue_cents at 0 and use conversion count alone.

Troubleshooting#

Conversions aren't showing up. Check the API response for your POST /v1/conversions call — the endpoint returns the conversion ID on success and a detailed error message on failure. Common issues: missing workspace ID, invalid currency code (must be ISO 4217, e.g. EUR not ), or an API key without conversions:write permission.

Attribution isn't matching expected clicks. If you're using the pixel (cookie-based), check that the user's browser isn't blocking third-party cookies. Safari's ITP and some ad blockers will clear the cookie before the conversion page fires. Use the server-side click_id method for reliable attribution.

Revenue numbers don't match my payment processor. The numbers in Elido are exactly what you send us — we don't pull figures from Stripe or any other processor directly. If there's a mismatch, compare the revenue_cents values in your conversion API calls against your payment records.

One conversion is showing under the wrong link. Attribution uses last-touch by default. If a user clicked several links before converting, it goes to the most recent click. If the last click was from a different campaign, that's expected behaviour. Adjust the attribution window or switch to first-touch attribution in settings if last-touch doesn't match your reporting needs.

Was this helpful?
Need more? Email the team — replies within one working day.Contact support
Conversion tracking · Elido