Skip to content

Guide 130 · Setup · GA4 + Tag Manager

Turn on video engagement tracking: start, progress, and complete for embedded YouTube video

Checked 11 November 2026 · Verification: video events per full view recomputed (1 start + 4 progress + 1 complete = 6 events) · Steps traced to Analytics Help, read 11 November 2026 · 5-minute read

Video engagement tracking is the toggle that shows whether anyone watches the videos on the site. For an embedded YouTube video with JS API support enabled, GA4 fires video_start when playback starts, video_progress at 10%, 25%, 50%, and 75% of the duration, and video_complete when the video ends. That is six events for one fully watched video. This guide confirms the toggle and states the one condition it depends on.

Expected signal

After step 3, the Video engagement option is on, and a fully watched embedded YouTube video sends six events: video_start, four video_progress events, and video_complete.

Download the reference: the video engagement reference (JSON) (1009 bytes, MD5 f208a4d282a2ec8daabb6a5c2ee20e57). The video events from Google's enhanced measurement page, with the per-view count recomputed: 1 start + 4 progress + 1 complete = 6 events.

What you need

  • A web data stream. Enhanced measurement applies to web streams, and Video engagement is one of its options.
  • The Editor role or above at the property level. Google requires Editor or above to enable or disable enhanced measurement events.
  • An embedded YouTube video with JS API support enabled. The built-in tracking only works for YouTube embeds that have JS API support switched on.

The trace

  1. Open the stream. In Admin, under Data collection and modification, click Data streams, then click the name of the web data stream.
  2. Open the enhanced measurement options. Under Enhanced measurement, click the settings icon to edit individual options.
  3. Check Video engagement. Confirm the Video engagement option is on. It is on by default when the stream is created. Save if you changed anything.
  4. Count the events for one full view. For YouTube embedded videos with JS API support enabled, three event names fire: video_start when the video starts playing, video_progress when the video passes 10%, 25%, 50%, and 75% of its duration, and video_complete when the video ends. The progress thresholds are 4 separate firings, so one fully watched video sends 1 + 4 + 1 = 6 events in total.
  5. Know what each event carries. The video events carry 7 parameters: video_current_time, video_duration, video_percent, video_provider, video_title, video_url, and visible. Those parameters fill the Video provider, Video title, Video URL, and Visible dimensions in the reports.
  6. Find the events in the reports. Open Reports, then Engagement, then Events, and look for video_start, video_progress, and video_complete. A 10-minute video reaches its 25% mark at 2.5 minutes in — 0.25 × 10 = 2.5 — so a viewer who leaves after 2 minutes never sends the 25% progress event.

Dead ends

DEAD END — EXPECTING TRACKING ON OTHER VIDEO PLAYERS. The built-in option only works for embedded YouTube videos that have JS API support enabled. A Vimeo embed or a plain HTML5 video element sends nothing through this toggle, however long visitors watch.

DEAD END — EXPECTING video_progress AT EVERY PERCENT. The progress thresholds are fixed at 10%, 25%, 50%, and 75%. There is no event at 90% or 100% — the end of the video is video_complete, not a progress event.

DEAD END — READING A MISSING video_start AS A DEAD TOGGLE. If the YouTube embed does not have JS API support enabled, no video event fires at all. Check the embed first: the toggle being on is not enough on its own.

End state

Video engagement is on. Embedded YouTube videos with JS API support send video_start, four video_progress events, and video_complete, with the provider, title, URL, and visibility attached. Other players are untouched by this toggle and need their own tracking.

Sources

Checked 11 November 2026. The events, thresholds, and parameters above are the ones in Google's enhanced measurement page, opened 11 November 2026. No step in this guide was run inside a live Analytics property, because that needs a Google sign-in and this site does not sign in as anyone. The reference file was checked in Python: its figures were recomputed from the documentation values and match the numbers on this page. Google moves menu items without warning; if a path on this page no longer matches, the linked help page is the current map.