Back to all articles

How to connect Elo to Segment for ad performance tracking

Connect Elo's ad SDK to Segment in 2026: forward impression, click, and revenue events by webhook so ad performance lines up with your product analytics.

ELContent TeamSep 16, 2026 — 7 min read
How to connect Elo to Segment for ad performance tracking

Ad revenue events sitting inside Elo's dashboard don't help you correlate spend with user cohorts, retention, or LTV — Segment does that, but only if the events actually land there. Instead of exporting CSVs from Elo every week and pasting them next to your product analytics, wire Elo's event stream straight into Segment so impression, click, and revenue events show up in the same timeline as signup, activation, and churn.

TL;DR
  • Elo Segment ad tracking integration forwards impression, click, and revenue events from Elo's SDK into a Segment source in real time.
  • Use Segment's HTTP API source plus Elo's event webhook — no polling, no manual CSV exports.
  • Match event names on both sides before go-live or you'll get duplicate or orphaned events in Segment.
  • Revenue events map to Segment's standard event schema so ad data sits next to product events without a custom dashboard.

Why this matters

Ad revenue that lives only in an adserver dashboard tells you what advertisers paid. It doesn't tell you which user segment generated that revenue, whether ad-supported users retain worse than paying users, or which chat flows produce the highest RPM. Segment is where that correlation happens, because it already sits between your product events and your warehouse or analytics tool.

By 2026 most AI chat apps running ad monetization already have a Segment workspace wired up for product analytics. Piping Elo's event logs into that same workspace means one source of truth for user behavior and ad performance, instead of two dashboards you reconcile by hand every Monday.

Before you start

  • An Elo account with the SDK live in your app. The SDK installs in roughly a dozen lines of code — if it isn't emitting impressions yet, get that running first.
  • A Segment workspace with write access to add a new source (HTTP API, or a server-side library if your backend already sends events that way).
  • The gotcha: Elo's event names (impression, click, revenue) and your Segment naming convention need to match before you turn the integration on. Let Elo fire raw event names into Segment unmapped and you end up with ad_impression and Ad Impression living side by side in your schema — and every downstream report filtered by event name silently misses half the data.

Set up your Elo ad event webhook

  1. From your Elo dashboard, open Settings and find the Webhooks section.
  2. Add a new webhook endpoint — this is the URL your backend uses to receive impression, click, and revenue events as they fire.
  3. Select which event types to forward. Enable Impression, Click, and Revenue at minimum; skip anything you won't analyze in Segment to keep event volume down.
  4. Save the webhook. Elo starts posting event payloads to your endpoint as soon as the SDK fires them — check the event log in your Elo dashboard to confirm delivery before touching the Segment side.

Expected result: your backend endpoint receives live POST requests from Elo every time an ad impression, click, or revenue event fires in your chat app.

Configure your Segment source

  1. In Segment, go to Connections > Sources and click Add Source.
  2. Choose the HTTP API source type, or a server-side library like Node if your backend already routes other events through one.
  3. Name the source something identifiable — "Elo Ad Events" keeps it distinct from your product event source.
  4. Copy the Write Key Segment generates. You need it in the next step to authenticate calls from your backend.

Expected result: a new source appears in your Segment workspace, ready to receive track calls, with zero events logged until you wire the mapping.

Map Elo ad events to Segment track calls

  1. In the backend code that receives Elo's webhook payload, transform each event into a Segment track() call using the Write Key from the previous step.
  2. Use consistent event names — Ad Impression, Ad Click, Ad Revenue — matching whatever casing your existing Segment schema uses.
  3. Pass the userId or anonymousId from your own app's session, not from Elo, so the event ties back to the user record already in Segment.
  4. Include ad-specific properties in the payload: placement, matcher category, and the CPM or CPC value, so you can segment revenue by ad type later.

Expected result: an Ad Impression or Ad Revenue event shows up in Segment's live event stream within seconds of a user seeing or clicking an ad, tied to the correct user ID.

Variant: forward revenue events only, for LTV modeling

If you don't want impression-level noise in Segment — most teams don't — forward just the Revenue event type from Elo's webhook. Map it to a custom Ad Revenue Earned event with the dollar amount as a property. This puts ad revenue into the same LTV calculation as subscription revenue without cluttering your event stream with every ad view.

The tradeoff is real: you lose the ability to calculate click-through rate inside Segment, because clicks never arrive. Keep impressions and clicks in Elo's dashboard for creative-level analysis and send only money events downstream.

Start monetizing your AI chat app

See how Elo's SDK turns chat conversations into contextual ad revenue.

Troubleshooting

  • Events appear in Elo's dashboard but not in Segment. Check that the webhook endpoint is publicly reachable and returning a 200 status. Auth middleware or a firewall blocking the POST is the most common cause.
  • Duplicate events in Segment. The event name mapping wasn't finalized before launch. Audit the event names in Segment's schema and consolidate before they pollute a quarter of reporting.
  • Revenue totals in Segment don't match Elo. Confirm you're forwarding the confirmed revenue event, not an estimated bid value — some events fire an estimated CPM before the impression is confirmed.
  • User IDs don't line up between ad events and product events. This happens when the webhook handler uses Elo's internal event ID instead of your app's user or session ID. Fix the mapping in step 3 above.
  • Delayed events. If revenue events land in Segment minutes after they fired in Elo, your backend is batching webhook processing instead of forwarding in real time.

Customize your workflow

Once ad events land in Segment cleanly, decide where the data flows downstream. Teams already pushing ad data into GA can run both in parallel — the setup to sync ad revenue to Google Analytics covers that side. If reconciliation and payouts are the real bottleneck rather than analytics, the workflow to connect Stripe for ad revenue payouts automates that piece independently.

Before going live, work through how to test the ad SDK integration before launch so event-mapping bugs surface in staging instead of in production Segment data. Confirm impressions fire correctly using the steps to track ad impressions inside an AI chat app before you trust the numbers Segment reports.

FAQ

What is the Elo Segment ad tracking integration?

It's a webhook-based setup that forwards impression, click, and revenue events from Elo's ad SDK into a Segment source in real time. In 2026 that means ad performance sits alongside product analytics with no manual exports.

Does Elo have a native Segment destination?

The integration runs through Elo's event webhook posting into a Segment HTTP API source rather than a pre-built destination. That gives you control over event naming and user ID mapping.

How much does connecting Elo to Segment cost?

Segment source and workspace costs depend on your Segment plan, so check current pricing on Segment's site. The integration itself only requires backend code to forward Elo's webhook payloads.

Can I send only revenue events to Segment and skip impressions?

Yes. Forward just the Revenue event type from Elo's webhook and map it to a custom Ad Revenue Earned event, which keeps your event stream lean for LTV modeling.

Why don't my Elo revenue totals match Segment?

Usually an estimated bid value was forwarded instead of the confirmed revenue event. Check that your webhook mapping only sends finalized revenue figures.

Do I need a developer to set this up?

Yes. The integration requires backend code to receive Elo's webhook payload and translate it into Segment track calls with matching user IDs. It isn't a no-code toggle.

Is this different from connecting Elo to Google Analytics?

Yes. Segment acts as a customer data platform that routes ad events to multiple downstream tools at once, while a direct Google Analytics sync sends events to one destination only.

What event properties should I pass to Segment?

Pass placement, matcher category, and the CPM or CPC value with each event. Those three properties let you segment ad revenue by placement type inside Segment or your warehouse.

One last thing

The teams getting the most out of this integration in 2026 aren't the ones sending the most events into Segment — they're the ones who mapped user IDs correctly on day one. Almost every support thread that opens months later traces back to that single step, not to Elo's event delivery or Segment's ingestion. Get step 3 right and the rest of the pipeline is maintenance-free.

You might also like