There are a few good ways to debug it. And a likely reason for this to happen.
The likely reason for the conversions not getting to Google Ads are issues with GCLID. MP may be butchering it, so Google can't map it to any of the GCLIDs it has recorded on its side. Therefore, it can't productively attribute the conversions you're trying to feed it.
The fact that you see your conversions nicely in GA4, but not in ads only supports the idea of GCLID tracking malfunction. GA4 doesn't attempt to look too deep into GCLID. It's usually satisfied by having that query parameter set to attribute the traffic to paid. Ads, however, need to read into it.
The two good ways to debug it are:
- Comparing the network conversion hits in MP to the same hits in the front-end. See how GCLID gets tracked right in the Network. Pay attention to whether it's being truncated. One single character missing from GCLID will make it useless. It's a long string. It's also a base64-like string, which is meant to stay as such.
- Another approach is to export your data from GA4 to BQ (There are free options and you don't need much there really), then find two conversion hits and compare one to another: one made via front-end, hence being counted in Ads and one being made via MP, hence not being counted in Ads. Then if you don't see any red flags in any of the dimensions, start comparing other hits in the same sessions. See if maybe initial MP pageview is missing, hence breaking the funnel or something akin to that.
Now, I would do both checks in that order. Looking at conversion network requests is just faster. If I still don't see the difference between the calls (which is truly unlikely), I would start investigating all network requests fired on the front-end conversion tracking that include the gclid. See if maybe it lacks a dedicated call into some of its endpoints, but that's quite unlikely given how Google aims to make conversion tracking as painless as possible. It still gives options to offline conversion tracking.
Do the debugging, see if GCLID is malformed in MP. That would be the most likely issue from how it looks.
There's still a chance that something else is malformed like client ids, session ids and such, but you would likely have noticed that in GA4. Or you will definitely notice that when exploring user sessions in BQ.
gclid
, not thatgclid
value is malformed. It's not even mentioned in the GA4 docs, as it was in old UA docs – Varletry