Glossary

How GA4 Event Parameters Carry the Detail Behind Each Event

Taras Shynkarenko
Taras Shynkarenko
•Updated: •8 min read
How GA4 Event Parameters Carry the Detail Behind Each EventHow GA4 Event Parameters Carry the Detail Behind Each Event

TL;DR, Quick Answer

8 min read

GA4 event parameters are the key-value pairs sent with each Google Analytics 4 event, such as which link was clicked or what a purchase was worth. Google allows 25 per event, with names up to 40 characters and values up to 100. A custom parameter is collected as soon as the code sends it, but Google states it "isn't available for reporting" until you register it as a custom dimension or metric, and reports show it 24 to 48 hours after that.

What are GA4 event parameters?

Every event that Google Analytics 4 records carries GA4 event parameters, the key-value pairs that say which link was clicked, what a purchase was worth or which product a visitor viewed. The event name says what happened. The parameters say the details. Google's developer guide puts it in one line: "Parameters provide additional information about the ways users interact with your website."

Google's help centre draws the same split between the three layers of GA4 data: "Events measure what users do on your website or app, like clicking a link or watching a video. Event parameters provide more details about these actions, like which link was clicked or how much of the video a user watched. User properties tell you more about the users themselves." If you are new to the event model itself, start with event tracking and come back here for the parameter layer.

Which parameters does GA4 collect without any code?

GA4 attaches a set of parameters to every event on a web stream, custom events included, before you write a line of tracking code. Google's list of parameters "collected by default with every event, including custom events" names language, page_location, page_referrer, page_title and screen_resolution for web streams. GA4 also generates ga_session_id and ga_session_number with each session and sends engagement_time_msec with events such as user_engagement and page_view.

Recommended events add a second tier: parameters Google has already named and wired into predefined reports. The purchase event is the one most teams use:

ParameterTypeRequired by Google
transaction_idstringYes
valuenumberYes
currencystringYes
itemsarray of itemsYes
couponstringNo
shippingnumberNo
taxnumberNo

Google's reference adds a rule that breaks revenue reports when ignored: "If you set value then currency is required for revenue metrics to be computed accurately." Parameters on automatically collected events and on recommended events populate predefined dimensions and metrics. Everything you invent yourself does not.

A developer types code at a laptop, similar to writing a gtag event call by hand.

How do you send a custom event parameter?

You send a custom event parameter by adding it as a key-value pair in the third argument of the gtag('event', ...) call. Google's guide gives the structure as gtag('event', '<event_name>', {<event_parameters>}); with this example:

gtag('event', 'screen_view', {
  'app_name': 'myAppName',
  'screen_name': 'Home'
});

Here app_name and screen_name are the parameter names, and myAppName and Home are the values. To attach a parameter to every event on a page, put it in the config command instead, as in gtag('config', 'G-XXXXXXXXXX', {'page_title': 'Contact Us', 'currency': 'EUR'}). Google warns against the third option for custom values: "The set command may not reliably propagate custom parameters to all Google Analytics measurement streams." Use event or config for anything you made up.

Check the result in the Realtime report or DebugView. Google's wording is that "These reports show data as it arrives." DebugView lists the merged set, including any values applied globally, on the event's Parameters tab.

Why does a custom parameter not show up in GA4 reports?

A custom parameter does not show up in GA4 reports because Google only reports on it after you register it as a custom dimension or metric. The developer guide states it bluntly: "Without this registration, the parameter data is collected but isn't available for reporting." Realtime and DebugView show the raw value, which is why a parameter can look fine in testing and still be missing from every exploration a week later.

Registration is a two-minute job in the admin screen. Google's help page lists the steps:

  1. In Admin, under Data display, click Custom definitions.
  2. Open the Custom dimensions tab and click Create custom dimensions.
  3. Enter a Dimension name. Google allows underscores and spaces here but not hyphens.
  4. Set Scope to Event.
  5. In Event parameter, type the parameter name exactly as your code sends it.
  6. Click Save.

Two fields cannot be undone. Google marks both Scope and Event parameter with "You can't change this field after you save the new dimension." A typo in the parameter name means deleting the dimension and creating it again. After saving, Google says you can add the dimension to reports "after 24-48 hours from when the custom data was sent and the custom dimension was created." During that window the dimension reads as one of the documented causes of (not set) in GA4. Google's pages say nothing about backfilling values collected before the dimension existed, so register the dimension on the day you ship the parameter.

Numbers go through a different path. A parameter that measures a quantity, such as seconds watched or items in a cart, belongs in a custom metric. Google's rule is that for "categorical data, however, such as what text was clicked or which page was viewed, it's more appropriate to use an event-scoped custom dimension."

From custom parameter to visible report
1
Send it. The code adds the parameter to a gtag event call.
2
Collected, not reportable. Google logs the value but keeps it out of reports.
3
Register it. Create a custom dimension or metric in Admin, Custom definitions.
4
Wait. Allow 24 to 48 hours from registration for the data to catch up.
5
Check the report. The dimension is now available in explorations and standard reports.
A custom parameter shows up in DebugView from the first hit, but it needs registration and a wait before it reaches a report.

What limits apply to GA4 event parameters?

GA4 event parameters are capped at 25 per event, 40 characters per name and 100 characters per value, and Google does not log anything over those caps. The collection limits page says: "Google Analytics doesn't log events, event parameters, and user properties that exceed the following limits."

LimitStandard property
Parameters per event25
Parameter name length40 characters
Parameter value length100 characters
page_title value300 characters
page_referrer value420 characters
page_location value1,000 characters
Item-level custom parameters per ecommerce event27, on top of the prescribed item parameters
Event-scoped custom dimensions50 (125 on Analytics 360)
Custom metrics50 (125 on Analytics 360)

Google says upgrading to Analytics 360 lets you "increase certain limits (but not event/parameter character limits)", so the name and value lengths stay the same on every property. The binding limit for most sites is the 50 event-scoped custom dimensions, not the 25 parameters per event, because each dimension covers one parameter name across every event that sends it. Hitting the dimension cap has a cost too: Google says "you'll need to wait 48 hours after deleting dimensions to add new ones."

Flowsery
Flowsery

Start Your 14-Day Free Trial

Real-time dashboard

Goal tracking

Cookie-free tracking

Which parameter names does GA4 reserve?

GA4 reserves five prefixes and a list of names for event parameters, and a reserved name cannot back a custom dimension. Google's naming rules say parameter names "can't begin with" an underscore, firebase_, ga_, google_ or gtag.. The names reserved for custom dimensions and metrics are cid, currency, customer_id, customerid, dclid, gclid, session_id, sessionid, sfmc_id, sid, srsltid, uid, user_id and userid.

Case matters for events, and the same habit is safe for parameters. Google's rules state "Event names are case sensitive. For example, my_event and My_Event are distinct events." Pick one style, such as lowercase snake case, and keep it for both events and parameters so that Plan and plan never end up as two columns.

Paper documents being shredded in an office, standing in for the discipline of keeping personal data out of tracking calls.

What should never be sent as an event parameter?

Personal data and unique identifiers should never be sent as GA4 event parameters. Google's policy says "no data be passed to Google that Google could use or recognize as personally identifiable information (PII)", with email addresses, personal mobile numbers and social security numbers as its examples. The common leak is a form value or a URL query string copied into a parameter, which the section on events and parameters in how Google Analytics collects user data walks through.

Unique values cause a second problem even when they are not personal. Google tells standard properties not to create "unnecessary high-cardinality custom dimensions" and gives three examples: a unique ID per user, a unique ID per session and a timestamp. Such dimensions "may negatively impact your reports and explorations, and cause data to be condensed under the (other) row." Send categories, such as plan: pro or method: google, not values that are different on every hit.

One parsing rule catches teams out. Google warns that "any value in a custom dimension that resembles a number will be treated as a number, even if it was originally formatted as text", so a text value of "94E40" is read as scientific notation. Prefix codes that look numeric, such as sku_94E40, to keep them as text.

How does Flowsery handle custom event data?

Flowsery records a custom event from a single call such as window.flowsery("signup"), with no tag manager and no custom-dimension registration step between the code and the dashboard. Its goal and event tracking covers button clicks, form submissions, file downloads and video plays, lets you attach revenue values to events, and shows each one in a real-time event feed as it fires, so you check the tracking the moment you ship it. Events are tracked without cookies or personal data. If you are moving an event plan out of GA4, the comparison in custom event tracking in privacy analytics vs GA4 covers which GA4 habits to drop on the way.

Frequently asked questions

How many event parameters can a GA4 event have?

A GA4 event can carry 25 event parameters on a standard property. Google does not log parameters past that limit, so the extra values never reach reports. Analytics 360 raises some limits but not the 40-character name or 100-character value caps.

Why can I see my parameter in DebugView but not in reports?

DebugView and Realtime show raw parameters as they arrive, while standard reports and explorations only show custom parameters that you have registered as custom dimensions or metrics. Register the parameter under Admin, Custom definitions, then allow 24 to 48 hours for the data to show.

What is the difference between an event parameter and a custom dimension?

An event parameter is the key-value pair your code sends with an event. A custom dimension is the report field you create in GA4 that reads one parameter name across every event that sends it. One event-scoped custom dimension covers a parameter on as many events as you want.

Are custom dimensions applied to data collected before they were created?

Google's help pages do not say that custom dimensions backfill earlier data. They state that you can use a dimension 24 to 48 hours after the data was sent and the dimension was created. Register the dimension on the day the parameter ships to avoid a gap.

Can I send a user ID as an event parameter?

Do not register a user ID as an event-scoped custom dimension. user_id is on Google's reserved list, and Google names a unique ID per user as a high-cardinality dimension to avoid. Google points to its User-ID feature for that case instead.

What happens to a parameter value longer than 100 characters?

GA4 does not log a parameter value that exceeds the limit for that parameter. The limit is 100 characters for most parameters, with exceptions of 300 for page_title, 420 for page_referrer and 1,000 for page_location. Trim or map long values to short categories before sending them.

Can I use the gtag set command to send a custom parameter?

Google warns against it. The set command may not reliably propagate custom parameters to all Google Analytics measurement streams. Send custom values through event or config instead, the two commands Google recommends for that job.

How many custom parameters can an ecommerce item carry?

The limits table caps item-level custom parameters at 27 per ecommerce event, on top of the item parameters GA4 already prescribes, such as item_id and item_name. That cap sits separate from the 25-parameter limit on the event itself.

Flowsery
Flowsery

Start Your 14-Day Free Trial

Real-time dashboard

Goal tracking

Cookie-free tracking

Can a custom dimension name include a hyphen?

Google's rule in the admin screen allows underscores and spaces in a custom dimension name but not hyphens. Stick to letters, numbers, underscores and spaces to avoid a validation error when you save the dimension.

What happens if I delete a custom dimension by mistake?

The wait applies once you have hit the custom dimension limit. Google's note says: "If you hit the limit for custom dimensions, you'll need to wait 48 hours after deleting dimensions to add new ones." With all 50 event-scoped slots full, deleting the wrong one to free up room costs two days before you can recreate it.

Was This Article Helpful?

Let us know what you think!

See us more often in Google

One click marks Flowsery as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.

Before you go...

Flowsery

Flowsery

Revenue-first analytics for your website

Track every visitor, source, and conversion in real time. Simple, powerful, and cookie-free.

Real-time dashboard

Goal tracking

Cookie-free tracking

Related Glossary Terms

Related Articles