40+ GA4 Gotchas, Limitations & Need to knows

As you may have heard, our beloved Universal Analytics (the Google Analytics we were all used to) will be sunset between July/October 2023 leaving us with only historical data in those UA properties and views.

In late 2019 Google released Google Analytics 4 (formerly known as App + Web), a new generation of Analytics which packs in a lot of goodies and brings a fresh solution to the landscape of Analytics.

Although some may feel this can be a direct replacement for Universal Analytics, Google has re-vamped Analytics in a drastic way making it more of a brand new tool instead of a direct replacement.

Despite hearing a lot of frustration around GA4, I feel the product itself (once it’s fully baked) will bring measurement into this century with much less rigidity that came with Universal Analytics.

In an effort to help speed up everyone’s learning curve, here are a few caveats, gotchas, limitations and warning that helped me quite a lot (in no particular order).

GA4 Limitations, gotchas & need to knows

Last modified: 9 June 2022

Filter by
  1. GA4 account hierarchy differs (Account <- Property <- Data streams)
  2. You can’t change your stream name once it’s been created [Edit: This seems to be fixed]
  3. Your tracking ID isn’t easily accesible (it's nested inside data streams)
  4. Event parameters don’t automatically populate GA4 UI reports, you have to explicitly activate them using custom dimensions
  5. Some common dimensions/metrics aren’t available in the UI (UTM content, Landing page, eCommerce: Shipping, Discount, Affiliation, Item variant)
  6. You cannot customise your marketing channel groupings as of yet
  7. User Explorer reports don’t show event parameters making them hard to get value from
  8. Measurement protocol hits don’t get “sessionized”, (you won't have attribution for a backend event sent via Measurement protocol) [Edit: This seems to be fixed]
  9. GA4 properties don’t have usable filters
  10. Session/product scoped dimensions aren’t available (...yet)
  11. The Revenue description states it includes tax and shipping in the UI, but it doesn’t - it's simply the value sent in
  12. Sessions in GA4 aren’t measured as they were in Universal Analytics - it's very probable you'll have mis-matches if dual running (with less sessions in GA4)
  13. Data retention period is set to 2 months by default (ensure you extend it if need be)
  14. GA4 switches on automatic event collection which can cause some odd behaviour with SPAs (specifically with pageviews and scroll events)
  15. GA4 batches event data so you may not see your events leave your browser immediately (unless you're using debug mode)
  16. Events shown in DebugView do not show up in your reports
  17. GA4 doesn’t have views (or subproperties) on free accounts (...yet)
  18. GA4 hits are sent from your browser differently (using beacon) so it’s probable your metrics will differ slightly
  19. The Hit limit is no longer 8192 bytes for requests, there is still a limit however
  20. The GA4 UI doesn’t show hits for small amount of Users (using User-ID and device identity as your default identification)
  21. UA Goals won’t match GA4 conversion event counts (goals are session scoped, conversions are hit scoped)
  22. Cross domain tracking can be configured in the GA4 UI as well as the GTAG tracker
  23. There is no ability to use customTask in GA4
  24. Ip Anonymization is switched on by default
  25. Measurement protocol events cannot be modified from the UI using the Modify event
  26. Data-driven attribution is the default attribution in GA4
  27. Unlike UA, GA4 doesn’t export last click attribution when linked with other products such as Google Ads [TBC]
  28. GA4 adds default events to your measured events. These are: first_visit, session_start, user_engagement. Custom event parameters are not added to these (except user_engagement), so if you have event parameters for debug views, environments or similar you won't be able to exclude them without manipulation
  29. User properties not consistently populated for all relevant events
  30. GA4 funnel reports are user scoped (unlike UA’s session scoped)
  31. Google signals data is not shared so BigQuery user counts and other data may differ to GA4 UI
  32. High cardinality is troublesome for the UI, ensure you cross check data with the Explorer or ideally, BigQuery as well
  33. eCommerce checkout reports do not bake in as many checkout steps
  34. Today’s data isn’t available in the Explore reports on free GA4 versions (it is available for 360 accounts)
  35. UA channel grouping reports will differ to GA4 given the differences in sessionization and attribution
  36. Hour and minute dimensions are not available in the GA4 UI
  37. DV360 Insertion Order and Line Item not available in GA4
  38. Attribution reports only follow GA4 default data-driven attribution when talking about conversions. Otherwise user scoped reports are first touch and other metrics are last non direct
  39. Subproperties add on half a hit when used. If you sent in 1000 events, the subproperty would count as 500 hits and increase your cost accordingly
  40. GA4 allows you to import offline event data with a maximum of a 72h delay
  41. Automatic conversions events cannot be disabled in the UI (purchase etc)
  42. GA4 imported conversions (into G Ads) cannot be used for bidding optimisation (Universal Analytics goals could be) [Edit: This seems to be fixed]
  43. The GA4 config tag is not like a GA settings variable. Values are fired once and it's common they’ll be static
  44. When overwriting UTM parameters, make sure to do this on the page_view tag. If you have a config + page_view tag you can do it on there, alternatively you need to send it through in GTM as an event parameter campaign_source or campaign_medium which will overwrite the UTM settings
  45. In GA4 source and medium dimensions are NOT equivalent to Universal Analytics. The closest equivalent in GA4 are Session source and Session medium
  46. The page location dimension is truncated to 300 characters
  47. An event parameter can be registered as a dimension or a metric, not both
  48. Event timestamps are actually the time a batch of events were sent into GA4 (not the exactly time the event fired on the page)
  49. Roll-ups aren't available in GA4 free editions but are available in 360 accounts. (You could add your data streams to one GA4 account and filter by stream ID/name as a workaround). [Edited: 20 May 22 from anonymous submission]
  50. UTM parameters Term and Content aren't available in GA4 by default. However, if you add term and content as custom dimensions, you should be able to report on them (hit level only, not session level)

Contributions

If you'd like to add to this list, please submit your finding/update here.

A big thank you to everyone on this list who has helped confirm these issues or actively answered questions on the forums. A special thanks to:

  • Charles Farina
  • Julius Fedorovicius
  • Jules Stuifbergen
  • Krista Seiden
  • Peter Mindenhall
  • Simo Ahava
  • Todd Bullivant

Useful links

3 2 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments