Profit as an event parameter and a custom metric, reported next to the revenue you already have.
Overview
GA4 sits on both ends of this. On the way in, the standard tax parameter on your purchase event is one of the ways we work out net revenue — and it is the exact one for a basket that mixes VAT rates, which a single store-level rate can never be. On the way out, profit is a parameter on the same event, which you register once as a custom metric and then report on beside revenue.
How it works
Your GA4 tag lives in the same server container as the lookup, so it can read the profit value directly off the event. Register it in GA4 as an event-scoped custom metric and it becomes available in explorations and reports like any other number. It is the same figure Google Ads receives, from the same calculation, so the two never disagree.
How to configure
In your server container, add an event parameter to the GA4 tag — profit — and map it to the profit variable.
In GA4, go to Admin → Custom definitions → Custom metrics and register profit with event scope and unit of currency.
Publish the container and wait for data to accumulate.
