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
- GA4 account hierarchy differs (Account <- Property <- Data streams)
You can’t change your stream name once it’s been created[Edit: This seems to be fixed]- Your tracking ID isn’t easily accesible (it's nested inside data streams)
- Event parameters don’t automatically populate GA4 UI reports, you have to explicitly activate them using custom dimensions
- Some common dimensions/metrics aren’t available in the UI (UTM content, Landing page, eCommerce: Shipping, Discount, Affiliation, Item variant)
- You cannot customise your marketing channel groupings as of yet
- User Explorer reports don’t show event parameters making them hard to get value from
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]- GA4 properties don’t have usable filters
- Session/product scoped dimensions aren’t available (...yet)
- The Revenue description states it includes tax and shipping in the UI, but it doesn’t - it's simply the value sent in
- 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)
- Data retention period is set to 2 months by default (ensure you extend it if need be)
- GA4 switches on automatic event collection which can cause some odd behaviour with SPAs (specifically with pageviews and scroll events)
- GA4 batches event data so you may not see your events leave your browser immediately (unless you're using debug mode)
- Events shown in DebugView do not show up in your reports
- GA4 doesn’t have views (or subproperties) on free accounts (...yet)
- GA4 hits are sent from your browser differently (using beacon) so it’s probable your metrics will differ slightly
- The Hit limit is no longer 8192 bytes for requests, there is still a limit however
- The GA4 UI doesn’t show hits for small amount of Users (using User-ID and device identity as your default identification)
- UA Goals won’t match GA4 conversion event counts (goals are session scoped, conversions are hit scoped)
- Cross domain tracking can be configured in the GA4 UI as well as the GTAG tracker
- There is no ability to use
customTask
in GA4 - Ip Anonymization is switched on by default
- Measurement protocol events cannot be modified from the UI using the Modify event
- Data-driven attribution is the default attribution in GA4
- Unlike UA, GA4 doesn’t export last click attribution when linked with other products such as Google Ads [TBC]
- GA4 adds default events to your measured events. These are:
first_visit
,session_start
,user_engagement
. Custom event parameters are not added to these (exceptuser_engagement
), so if you have event parameters for debug views, environments or similar you won't be able to exclude them without manipulation - User properties not consistently populated for all relevant events
- GA4 funnel reports are user scoped (unlike UA’s session scoped)
- Google signals data is not shared so BigQuery user counts and other data may differ to GA4 UI
- High cardinality is troublesome for the UI, ensure you cross check data with the Explorer or ideally, BigQuery as well
- eCommerce checkout reports do not bake in as many checkout steps
- Today’s data isn’t available in the Explore reports on free GA4 versions (it is available for 360 accounts)
- UA channel grouping reports will differ to GA4 given the differences in sessionization and attribution
- Hour and minute dimensions are not available in the GA4 UI
- DV360 Insertion Order and Line Item not available in GA4
- 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
- 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
- GA4 allows you to import offline event data with a maximum of a 72h delay
- Automatic conversions events cannot be disabled in the UI (purchase etc)
GA4 imported conversions (into G Ads) cannot be used for bidding optimisation (Universal Analytics goals could be)[Edit: This seems to be fixed]- The GA4 config tag is not like a GA settings variable. Values are fired once and it's common they’ll be static
- 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 parametercampaign_source
orcampaign_medium
which will overwrite the UTM settings - In GA4
source
andmedium
dimensions are NOT equivalent to Universal Analytics. The closest equivalent in GA4 areSession source
andSession medium
- The page location dimension is truncated to 300 characters
- An event parameter can be registered as a dimension or a metric, not both
- Event timestamps are actually the time a batch of events were sent into GA4 (not the exactly time the event fired on the page)
- 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]
- UTM parameters
Term
andContent
aren't available in GA4 by default. However, if you addterm
andcontent
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