{
  "kind": "event_reference",
  "events": [
    {
      "event": "first_visit",
      "stream": "app, web",
      "trigger": "first time a user visits a website or launches an Android instant app",
      "parameters": [
        "client_id",
        "ga_session_id",
        "ga_session_number",
        "page_location",
        "page_referrer",
        "page_title"
      ]
    },
    {
      "event": "session_start",
      "stream": "app, web",
      "trigger": "when a user engages the app or website; session ID and number generated automatically",
      "parameters": [
        "client_id",
        "ga_session_id",
        "ga_session_number",
        "page_location",
        "page_referrer",
        "page_title"
      ]
    },
    {
      "event": "user_engagement",
      "stream": "app, web",
      "trigger": "app in foreground or webpage in focus for at least one second",
      "parameters": [
        "engagement_time_msec"
      ]
    },
    {
      "event": "page_view",
      "stream": "web",
      "trigger": "each time the page loads or the browser history state is changed; enhanced measurement",
      "parameters": [
        "page_location",
        "page_referrer",
        "engagement_time_msec"
      ]
    },
    {
      "event": "scroll",
      "stream": "web",
      "trigger": "first time a user reaches the bottom of each page (90% vertical depth visible); enhanced measurement",
      "parameters": [
        "engagement_time_msec"
      ]
    },
    {
      "event": "click",
      "stream": "web",
      "trigger": "each time a user clicks a link that leads away from the current domain; enhanced measurement",
      "parameters": [
        "link_classes",
        "link_domain",
        "link_id",
        "link_url",
        "outbound"
      ]
    },
    {
      "event": "file_download",
      "stream": "web",
      "trigger": "click on a link leading to a file with a common file extension; enhanced measurement",
      "parameters": [
        "file_extension",
        "file_name",
        "link_url"
      ]
    },
    {
      "event": "form_start",
      "stream": "web",
      "trigger": "first time a user interacts with a form in a session; enhanced measurement",
      "parameters": [
        "form_id",
        "form_name",
        "form_destination"
      ]
    },
    {
      "event": "form_submit",
      "stream": "web",
      "trigger": "when the user submits a form; enhanced measurement",
      "parameters": [
        "form_id",
        "form_name",
        "form_destination",
        "form_submit_text"
      ]
    },
    {
      "event": "video_start",
      "stream": "web",
      "trigger": "when the video starts playing; embedded YouTube with JS API support; enhanced measurement",
      "parameters": [
        "video_current_time",
        "video_duration",
        "video_percent",
        "video_provider",
        "video_title",
        "video_url"
      ]
    },
    {
      "event": "video_progress",
      "stream": "web",
      "trigger": "when the video progresses past 10%, 25%, 50%, and 75% duration; enhanced measurement",
      "parameters": [
        "video_current_time",
        "video_duration",
        "video_percent",
        "video_provider",
        "video_title",
        "video_url"
      ]
    },
    {
      "event": "video_complete",
      "stream": "web",
      "trigger": "when the video ends; embedded YouTube with JS API support; enhanced measurement",
      "parameters": [
        "video_current_time",
        "video_duration",
        "video_percent",
        "video_provider",
        "video_title",
        "video_url"
      ]
    }
  ],
  "default_web_parameters": [
    "language",
    "page_location",
    "page_referrer",
    "page_title",
    "screen_resolution"
  ],
  "parameter_limits": {
    "event_parameter": "100 characters",
    "page_title": "300 characters",
    "page_referrer": "420 characters",
    "page_location": "1000 characters"
  },
  "guide": "automatically-collected-events",
  "title": "The events GA4 collects on its own: first_visit, session_start and user_engagement \u2014 and why you never recreate them",
  "worked_example": {
    "sessions": [
      {
        "session": "A",
        "duration_seconds": 42,
        "page_views": 1,
        "key_events": 0,
        "engaged": true
      },
      {
        "session": "B",
        "duration_seconds": 6,
        "page_views": 3,
        "key_events": 0,
        "engaged": true
      },
      {
        "session": "C",
        "duration_seconds": 4,
        "page_views": 1,
        "key_events": 0,
        "engaged": false
      }
    ],
    "totals_recomputed": {
      "sessions": 3,
      "engaged_sessions": 2,
      "engagement_rate": "66.7",
      "active_users": 1240,
      "new_users": 486,
      "returning_users": 754,
      "new_user_share": "39.2",
      "returning_user_share": "60.8"
    }
  },
  "verification": "Figures recomputed in Python 3 with decimal arithmetic, 2026-11-11. No live GA4 run."
}
