GA4 event reference, property/tag setup from scratch, and the gotchas that trip up most first-time installs.
| Category | Event Name | Key Parameters | Fires When |
|---|---|---|---|
| Automatic | page_view | page_location, page_title, page_referrer | Collected automatically by gtag.js/GA4 tag on every page load. |
| Automatic | scroll | percent_scrolled | Automatically at 90% vertical scroll depth (enhanced measurement). |
| Automatic | click | link_url, outbound | Automatically on outbound link clicks, if enhanced measurement is on. |
| Automatic | file_download | file_extension, file_name | Automatically when a link to a common document/archive type is clicked. |
| Ecommerce | view_item | items[], currency, value | A product detail page is viewed. |
| Ecommerce | add_to_cart | items[], currency, value | An item is added to the cart. |
| Ecommerce | begin_checkout | items[], currency, value | The checkout flow starts. |
| Ecommerce | purchase | transaction_id, value, currency, items[] | An order completes — the single most important conversion event to get right. |
| Engagement | sign_up | method | A user completes account registration. |
| Engagement | login | method | A user authenticates. |
| Engagement | search | search_term | A user runs an on-site search. |
| Engagement | generate_lead | currency, value | A form submission or similar lead-gen action completes — the standard B2B conversion event. |
| Custom | gtag('event', 'name', {...}) | any custom key/value pairs | Whenever you call it — GA4 accepts arbitrary custom event names and parameters beyond the recommended set. |
Create the property
In Google Analytics admin, create a new GA4 property under the right account, set the reporting time zone and currency (these can't be changed retroactively on historical data).
Add a data stream
Add a Web data stream for the site's domain — this generates the Measurement ID (G-XXXXXXX) every install method needs.
Install the tag
Either paste the gtag.js snippet directly into the site's <head>, or — the more maintainable route for anything beyond a single static site — install Google Tag Manager once and manage GA4 (and everything else) as a GTM tag.
Mark conversions
In Admin → Events, toggle "Mark as conversion" on the events that actually matter (purchase, generate_lead, sign_up) — GA4 treats conversions as a first-class concept separate from raw event volume.
Verify in DebugView
Use the GA4 DebugView report (with the debug_mode parameter or the Tag Assistant extension) to confirm events are actually arriving before trusting the standard reports, which lag by hours.