What it is.
Measurement Protocol lets your server send events straight to GA4 instead of relying on the browser. You can also run it fully server-to-server, which is how backend events reach analytics at all.
For B2B this is the missing piece. A demo request is measurable in the browser, and the deal it becomes is not, so campaign reporting stops at the form unless the server sends the rest.
The catch to design around: to attach an event to an existing session you have to include the session_id and send it within 24 hours of the session starting.
What you get.
- Server-side event sending into GA4 without a browser.
- A path for CRM outcomes to reach the same reports as your traffic.
- Full server-to-server operation for backend events.
- Event generation and renaming, so you control what GA4 receives.
- Remarketing signals from events the browser never saw.
How to set it up.
Decide which offline events matter, and keep the list short because every one needs maintaining.
Capture and store the GA4 session_id and client_id when the visit happens, since you cannot recover them later.
Send the event from your backend with that session_id attached.
Send inside 24 hours of the session start if you want it joined to that session.
Name events to match your existing GA4 schema, or the reports will split.
Validate in GA4 realtime before you send historical data.
Use cases
Attribute a deal that closed late
Send the outcome server-side so a slow sale reaches the same report.
Get CRM results into GA4
Push the closed-won event without a browser involved.
Compare channels on revenue
Read acquisition against outcomes instead of form fills.
Best for
Long B2B sales cycles
The deal closes weeks after the click, and nothing in the browser can connect them.
Server-side conversions
Payments, approvals, and qualifications happen in your backend and never touch a page.
Paid channels needing better signal
Genuine conversion events feed bidding better than a form submit does.