Full Answer
There are two ways to catch UTM stripping: read the reports for symptoms, and test the path directly. The reporting symptom is a Direct or Unassigned channel that doesn't match reality. If you're spending on ads and sending email but a large share of sessions, often half or more, carries no source, the parameters aren't reaching analytics.
The direct test is more conclusive. Build a fully tagged link, click it on the real device and browser your customers use, and inspect the address bar at the final destination, after every redirect has run. If the UTMs are gone or rewritten, you've found a stripping hop. Repeat on Safari and with an ad blocker enabled, because privacy features and filter lists strip parameters that a plain Chrome test won't reveal. GA4 Realtime is the companion check: load your tagged link and confirm the session appears under the correct source and medium within a minute or two.
For WooCommerce specifically, also place a test order through a tagged link and check whether the order records the campaign. If the analytics session attributes correctly but the order shows nothing, the gap is between landing and checkout, usually a payment redirect. Capturing first-touch source server-side closes that gap and gives you a record you can verify order by order.