Skip to content

Guide 164 · Events · GA4 + Tag Manager

Give an event a value: the value and currency parameters, and what they do in the 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

The value parameter is not reserved for purchases. Any event can carry value and currency — a lead worth 50, a download worth 5 — and GA4 sums it into the revenue reporting. The rule is short and strict: value must be a number, and it must be accompanied by currency. This guide adds both parameters to the generate_lead tag and shows what the reports do with them.

Expected signal

After the tag is published, a test lead shows in DebugView as a generate_lead event with value and currency set, and the Realtime report's Event count by Event name card shows the two parameters on the event.

Download the container fragment: the generate_lead tag with value and currency (JSON) (3172 bytes, MD5 3cddd0b1594e6a7983aeb8225be2d27e). It holds the GA4 Event tag named GA4 - generate_lead with the value and currency parameter rows, the Custom Event trigger, and the two data layer variables. 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 value belongs to. Here it is the GA4 - generate_lead tag from the lead guide, which already sends the event name.
  • A value per event, as a number. Here each lead is worth 50.00, assigned by the sales team. The value must be a number — 50, not "50" — and it must be accompanied by currency.
  • A currency, in the ISO 4217 format. Here it is USD, the 3-letter code. If the parameter is missing or invalid, the event is recorded with the correct count but it will not be sent to Google Ads.

The worked example

The test below is three leads in one week, each worth 50.00 USD. The total is the figure the revenue reporting later shows.

LeadValue (USD)
First lead50.00
Second lead50.00
Third lead50.00
Total event value150.00
Average per lead150.00 / 3 = 50.00

Those figures were recomputed here before publication: 50.00 plus 50.00 plus 50.00 is 150.00; 150.00 divided by 3 is 50.00 per lead. The data layer push that carries one of those leads is the standard form:

dataLayer.push({
  event: "generate_lead",
  value: 50.00,
  currency: "USD"
});

The trace

  1. Push the value to the data layer. When the lead form is accepted, run dataLayer.push({ event: "generate_lead", value: 50.00, currency: "USD" }). The value is a bare number and the currency is the 3-letter code.
  2. Create the two data layer variables. In Tag Manager, go to Variables, then in User-Defined Variables create one Data Layer Variable per parameter: DLV - value for value and DLV - currency for currency.
  3. Add the two parameter rows to the tag. Go to Tags and open GA4 - generate_lead. Under Event Parameters, add two rows: value with {{DLV - value}} and currency with {{DLV - currency}}. Click Save.
  4. Check it in Preview and DebugView. Click Preview, enter the site URL, and click Connect. Submit the lead form. In Tag Assistant, the generate_lead event must appear with the tag under Tags Fired. Then open DebugView (Admin, then Data display, then DebugView), click the event, and confirm value shows 50.00 and currency shows USD.
  5. Check it in Realtime. Open the Realtime report and click the generate_lead event in the Event count by Event name card. The Event parameter key column shows the parameters sent with the event — value and currency among them — which is how you confirm the two parameters arrived together.
  6. Publish it as a version. Click Submit at the top right, select Publish and Create Version, name the version, and click Publish.

Dead ends

DEAD END — VALUE WITHOUT CURRENCY. If the currency parameter is missing or invalid, the event is recorded with the correct count, but it will not be sent to Google Ads and the revenue reporting cannot use it. The two parameters travel together, always.

DEAD END — VALUE AS A STRING. A value of "50.00" in quotes is text, not a number, and GA4 cannot sum it. The push sends the value as a bare number, and the tag passes it through the variable unchanged.

DEAD END — VALUE ON EVERY EVENT. A value on page_view or scroll makes every page load look like revenue. Value belongs on the events that carry a monetary meaning — a lead, a sign-up, a purchase — and nowhere else.

End state

One tag, two parameter rows, one summed number. A lead shows in DebugView within a minute of the test, in Realtime within minutes of publishing, and in the standard reports within 24 to 48 hours, with the total event value summed per row. If generate_lead is also a key event, the key event guide covers the default value that applies when an event arrives without one.

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 both data layer variable references exist as variables — and the worked example was recomputed: 50.00 + 50.00 + 50.00 = 150.00 total event value; 150.00 / 3 = 50.00 average per lead. Google moves menu items without warning; if a path on this page no longer matches, the linked help page is the current map.