Skip to content

Guide 159 · Events · GA4 + Tag Manager

Add an event parameter to a GA4 Event tag: one row, one variable, and the registration that makes it visible in reports

Checked 11 November 2026 · Verification: container fragment validated structurally (format 2, unique IDs, trigger resolves, variable references exist); worked example recomputed · Steps traced to Analytics Help and Tag Manager Help, opened 11 November 2026 · 6-minute read

An event without a parameter is a count with no context: you know it happened, not what it was about. Adding a parameter to a GA4 Event tag is one row in the tag and one data layer variable, and this guide adds product_category to the quote_requested tag from the custom event guide — then registers the parameter, because a parameter that is sent but never registered stays invisible in reports.

Expected signal

After the tag is published, a test click shows in DebugView as a quote_requested event with product_category set, and 24 to 48 hours after registration the parameter is available as a dimension in the Events report.

Download the container fragment: the quote_requested tag with its parameter (JSON) (2376 bytes, MD5 ee87b7627cf80bf88641427786749f0f). It holds the GA4 Event tag named GA4 - quote_requested with the product_category parameter row, the Custom Event trigger, and the data layer variable. The Measurement ID is left as G-XXXXXXXXXX for you to replace. Import it from Admin, then Import Container, choosing Merge if the container already has tags.

What you need

  • The tag the parameter belongs to. Here it is the GA4 - quote_requested tag from the custom event guide, which currently sends the event name and no parameters.
  • A value the site can supply. Here it is product_category, pushed to the data layer with the click: Windows, Doors, or Roofing.
  • Editor access or above on the property. Registering the parameter as a custom dimension happens in Analytics, not in Tag Manager, and it needs the right role.

The worked example

The test below counts the parameters on the tag before and after the change. The count is the figure that decides whether the tag is inside the limit: an event can carry at most 25 parameters, and this tag is nowhere near it.

MeasureCount
Parameters on the tag before0
Parameters added1
Parameters on the tag after1
Parameters allowed per event25
Parameter slots remaining25 - 1 = 24

Those figures were recomputed here before publication: 0 plus 1 is 1 parameter on the tag; 25 minus 1 is 24 slots remaining. The data layer push that carries the new parameter is the standard form:

dataLayer.push({
  event: "quote_requested",
  product_category: "Doors"
});

The trace

  1. Push the value to the data layer. When the quote button is clicked, run dataLayer.push({ event: "quote_requested", product_category: "Doors" }). The parameter name is product_category and the value is the category of the quote requested.
  2. Create the data layer variable. In Tag Manager, go to Variables, then in User-Defined Variables click New, choose Data Layer Variable, set the Data Layer Variable Name to product_category, and name the variable DLV - product_category. If the custom event guide already created it, reuse it.
  3. Open the tag and add the parameter row. Go to Tags and open GA4 - quote_requested. Under Event Parameters, click Add Row. Set Parameter Name to product_category and Value to {{DLV - product_category}}. Click Save. The parameter name must match the key in the push exactly; a different spelling sends an empty value.
  4. Check it in Preview and DebugView. Click Preview, enter the site URL, and click Connect. Click the Request a quote button. In Tag Assistant, the quote_requested event must appear with the tag under Tags Fired. Then open DebugView (Admin, then Data display, then DebugView), click the event, and confirm product_category shows with the value Doors.
  5. Publish it as a version. Click Submit at the top right, select Publish and Create Version, name the version, and click Publish. The parameter reaches GA4 only after this step.
  6. Register the parameter as a custom dimension. In Analytics, go to Admin, then under Data display, click Custom definitions. Click Create custom dimension. Set Dimension name to Product category, Scope to Event, and Event parameter to product_category. Click Save. A custom dimension can be added to a report 24 to 48 hours after the data was sent and the dimension was created, and it only applies to events sent after registration. The custom dimensions guide covers the full rule set, including the scope that cannot be changed after saving.

Dead ends

DEAD END — THE PARAMETER IS SENT BUT NEVER REGISTERED. GA4 receives every parameter you send, but a custom parameter only becomes a dimension in your reports after you register it. An unregistered parameter is collected and invisible: it shows in DebugView and nowhere else.

DEAD END — THE PARAMETER NAME AND THE VARIABLE NAME DISAGREE. A tag row that reads {{DLV - productCategory}} while the push sends product_category resolves to nothing. The parameter name, the data layer key, and the variable's Data Layer Variable Name are three spellings of one name, and they must match.

DEAD END — PERSONAL DATA IN A PARAMETER. A parameter that carries an email, a name, or an order number breaks Google's terms. The value is the category of the quote, not the identity of the person asking.

End state

One tag, one more row, one variable, one registered dimension. The parameter shows in DebugView within a minute of the test, in Realtime within minutes of publishing, and as a dimension in the Events report 24 to 48 hours after registration — for events sent after registration only. The 25-parameter limit guide covers what happens when the tag outgrows the limit.

Sources

Checked 11 November 2026. The click paths above are the ones in Google's help and developer pages, opened 11 November 2026. No step in this guide was run inside a live Analytics property or a live Tag Manager container, because both need a Google sign-in and this site does not sign in as anyone. What was run: the container fragment was validated structurally in Python 3.12.3 — export format version 2, unique IDs, the tag's firing trigger resolves to the Custom Event trigger in the file, and the {{DLV - product_category}} reference exists as a variable — and the parameter count was recomputed: 0 + 1 = 1 parameter on the tag; 25 - 1 = 24 slots remaining. Google moves menu items without warning; if a path on this page no longer matches, the linked help page is the current map.