Google Ads stopped sending GCLID for Safari on iOS 14 — and it probably broke your analytics

Tim White
3 min readMay 11, 2021

Starting in February, we started noticing a massive upswing in the number of sessions on our paid-only, no-indexed landing pages being attributed in Google Analytics as “organic”. Which made no sense.

We had auto-tagging set up, so we had been getting the gclid parameter on every visit, and they were 99% attributed to google cpc. Now we are down to less than 50% being attributed correctly in analytics.

It particularly matters on one of our sites, where we upload ‘offline conversions’ in to Google Ads. This tells Google that after clicking on an ad, the customer made a purchase not on our website. This is a critical piece of tuning Google’s Ad algorithm and driving down the cost-per-win.

After three months of back and forth with Google we finally got the answer — which is that they are no longer sending the GCLID parameter in URLs from paid ads on Safari on iOS 14. Mind you — we didn’t get this answer from Google, despite asking them straight up about this. We had to figure it out the hard way, from hours of detailed log file analysis. It may only be missing from clicks from Google Apps (e.g. YouTube, or the Google search and news apps).

It’s starting to become public knowledge that Google is now sending wbraid instead of gclid for paid ad clicks. However, Google has told us that offline conversion uploads with wbraid will not be possible until 2022. (Update: it is now possible).

wbraid does not attribute to a single user, but rather an ‘aggregated’ tracking, which is why it is compliant with iOS 14. In some cases, it looks like gbraid is being sent. If a user happens to have opted into personalized tracking — which is unlikely — you may still be getting gclid.

All of this is fine, and part of the big transition that we knew was coming — but the bad parts are that:
1) Google Analytics hasn’t caught up — and is interpreting a lack of gclid as ‘organic’ traffic source. (We are working around this by manually sending other params).
2) Google straight up lied to us that this was happening, and aggressively maintained that this the fault of our implementation.

It remains to be seen how this all shakes out, and if we will have to cut back our Google Ads spending significantly since we can’t do the offline conversion uploads that are the only thing that keeps that spending profitable.

Hopefully we will know more soon, but I wanted to get this article out as soon as possible to hopefully save someone the months of pain that it caused us!

Was this content helpful to you? Consider buying me a coffee! :)

--

--