Integrations
Connect Google Analytics 4 to Elido
Forward Elido conversion events to GA4 via the Measurement Protocol — Measurement ID, API secret, and how client_id is mapped.
Updated 2026-05-12
Elido sends conversion events to GA4 server-side using the Measurement Protocol. This means conversions appear in GA4 regardless of whether the user has an adblocker, without any JavaScript on your page.
What you need#
- A GA4 property (not Universal Analytics).
- Access to the property's Admin panel.
- About 5 minutes.
Step 1 — Find your Measurement ID#
- Go to Google Analytics.
- Click Admin (bottom-left gear icon).
- Under Property, click Data streams → Web.
- Click your web data stream.
- Copy the Measurement ID — it starts with
G-, e.g.G-XXXXXXXXXX.
Step 2 — Create a Measurement Protocol API secret#
On the same data stream page:
- Scroll down to Measurement Protocol API secrets.
- Click Create.
- Give it a name ("Elido") and click Create.
- Copy the secret value. It's only shown once. If you lose it, create a new one — old secrets keep working until you delete them.
Step 3 — Configure in Elido#
- Go to Dashboard → Conversions → GA4 → Set up forwarding.
- Paste the Measurement ID and the API secret.
- Click Save. Elido immediately sends a test event (
elido_test) to GA4.
Wait 30–60 seconds, then check GA4 → Reports → Realtime — you should see an active user from the test event.
How Elido maps client_id#
GA4 requires a client_id to attribute events to a user. Elido derives it from:
- If your short link destination page sets a
_gacookie and the value is passed back via your conversion pixel — Elido reads it directly. - Otherwise, Elido hashes the Elido
click_id(e.g.clk_abc123) to a stable UUID-shaped string and uses that as theclient_id.
This means GA4 will show these events under a "user" that may not match your existing GA4 web sessions — they won't stitch together. For full session stitching, pass the _ga cookie value to your server and include it in the Elido Conversions API call.
Event names in GA4#
Elido forwards these events:
| Elido event | GA4 event name |
|---|---|
conversion.recorded | purchase (with value + currency) |
link.clicked (if enabled) | elido_click |
threshold.exceeded | elido_threshold |
The purchase event is used because GA4 has built-in reporting for it in the Monetization section. All events include utm_source, utm_medium, utm_campaign as event parameters.
Troubleshooting#
No events appearing in Realtime — Check the Measurement ID and API secret. A wrong API secret returns HTTP 204 (no content) but GA4 silently drops the payload. Verify by calling the Measurement Protocol endpoint directly:
curl -X POST \
"https://www.google-analytics.com/debug/mp/collect?measurement_id=G-XXXX&api_secret=YOUR_SECRET" \
-H "Content-Type: application/json" \
-d '{"client_id":"test","events":[{"name":"elido_test","params":{}}]}'
A successful debug call returns {"validationMessages":[]}.
Events appear in Realtime but not in regular reports — Measurement Protocol events can take 24–48 hours to appear in non-realtime GA4 reports. This is a GA4 limitation, not an Elido issue.
Wrong currency in purchase events — Elido reads the currency from the conversion event's currency field. Default is EUR. Set it explicitly in your conversion recording API call.
Duplicate events — If your site also fires a GA4 purchase event client-side, you'll see doubles. Disable the client-side event or use a different event name in the Elido mapping settings.