Universal Pixel Debugger

Networks · GA4

GA4 events: names and parameters

Updated 2026-09-27

Google Analytics 4 (GA4) collects events through the Google tag (gtag.js or Google Tag Manager). Each event leaves the browser as a request to a /g/collect endpoint, with the measurement ID in tid, the event name in en, event parameters prefixed ep. or epn. and items packed into pr1, pr2 and so on. Universal Pixel Debugger decodes these requests and shows each field with the exact key it came from.

Where the events go

EndpointMethodWhat it carries
*.google-analytics.com/g/collect, analytics.google.com/g/collectGET, or POST with several events separated by newlinesOne or more events: tid, en, ep.*/epn.*, cu, prN items, page fields
/collect with v=2 on the same hostsGET or POSTThe same GA4 format
/g/s/collectGET or POSTWhen it carries only consent fields (gcs, gcd, dma, npa) and no tid or en: a consent ping, labeled "Google tag consent ping", not a GA4 event
<site>/<path>/ag/g/c, <site>/<path>/ga/g/cGET or POSTGoogle tag gateway (first-party mode): the same hits sent through the site's own domain. They must carry tid or gtm; the Requests tab keeps the original URL.

Event names as sent

The event name is the en parameter. The extension shows it exactly as sent and assigns no category, so a custom name stays custom even when it contains a standard one.

Sent name (en)Usually sent when
page_viewA page loads
view_item_listA product list or category page is viewed
view_itemA product page is viewed
view_search_results, searchA site search runs; the term is in ep.search_term
add_to_cartA product is added to the cart
remove_from_cartA product is removed from the cart
view_cartThe cart is viewed
begin_checkoutCheckout starts
add_shipping_infoShipping details are submitted
purchaseAn order is completed

Value, currency, order ID and products

FieldKey(s)Notes
Event valueepn.value, then ep.valueShown only when sent. Never filled from item prices.
Currencycu, then ep.currencyKept exactly as sent
Transaction IDep.transaction_id, epn.transaction_idUsed to compare the same order across networks
Occurrence IDep.event_id, epn.event_idSeparate from the transaction ID
Productspr1, pr2, …Packed ~-separated tokens: id (item ID), nm (name), pr (price), qt (quantity), plus others such as br and va. A SKU is read only from an explicit k<n>sku/v<n> pair.
Other order fieldsep.tax, ep.shipping, ep.coupon, ep.payment_type, ep.shipping_tier (or the epn. form)Listed in the parameter checklist
Client and sessioncid, sid, sctMatch the values in the _ga and _ga_<stream> cookies

Common problems

How to check it with Universal Pixel Debugger

  1. Open the side panel with the toolbar icon on the site, click Clear, then do the action you want to test. A GA4 hit can arrive after the other networks, so check again after a few seconds.
  2. Find the GA4 lane on the signal board. It shows the event count and flags request errors or requests with no decoded event.
  3. Click an event. Value and currency show the key each came from, for example from epn.value or from cu, or Not observed. Products list each packed field with its source, such as pr1.qt.
  4. Read the GA4 parameters checklist ("N of M known fields sent"), the Not sent list and Other sent fields.
  5. Check the issues: invalid value or currency, a potential duplicate, or a value, currency or product mismatch with another network that sent the same transaction ID.

A loaded script, a captured request and a decoded event are separate evidence. An HTTP success response does not prove that Google Analytics accepted or counted the event.

Sources