Guide 116 · Container · GA4 + Tag Manager
Build a YouTube video trigger: measure starts, progress and completions
A video play is four events, not one: the start, the progress past a point, the pause, and the end. Tag Manager has a trigger type for YouTube videos that fires on each, as long as the embed has the JavaScript API enabled. Google's trigger page lists the YouTube Video trigger, and the enhanced measurement page for Analytics records the same shape: video_start when the video starts, video_progress when it passes 10, 25, 50 and 75 percent, and video_complete when it ends. The worked example uses a video 240 seconds long and the four standard progress points.
After step 4, Preview mode shows the tag under Tags Fired on the video start event, then once at each progress point passed, and once when the video ends — a 240-second video watched to the end fires the tag 6 times: 1 start, 4 progress points, 1 completion.
Download the container fragment: the YouTube video trigger fragment (JSON) (export format version 2, 1395 bytes, MD5 5e2de4959f25aec3a5b82dce7be4b452). It holds the YouTube video trigger capturing start and complete plus progress percentages 10, 25, 50 and 75, and a GA4 event tag that fires on it. The file is a hand-built import template, validated structurally — it was not exported from a live container.
What you need
- A YouTube embed with the JavaScript API enabled. The trigger can only see videos whose embed has API support turned on. A plain embed with no API support is invisible to it.
- The video length in seconds. The worked example uses 240 seconds. The progress points are percentages, so the seconds they fall on depend on the video.
- Edit access to the container. Creating a trigger is a container edit.
The trace
- Go to Triggers and click New. Triggers live in their own list in the left navigation. Click New and name the trigger
YouTube - progress 10 25 50 75. - Click Trigger Configuration and choose YouTube Video. The configuration offers Start, Complete, Pause, Seeking and Buffering as capture options, plus a list of progress percentages. The trigger only sees videos the page embeds with the JavaScript API enabled.
- Check Start and Complete, and set the progress percentages to 10, 25, 50 and 75. The percentages are of the video's length. For the worked video of 240 seconds, the points fall at 240 × 10 ÷ 100 = 24 seconds, 240 × 25 ÷ 100 = 60 seconds, 240 × 50 ÷ 100 = 120 seconds, and 240 × 75 ÷ 100 = 180 seconds. A viewer who watches to the end fires the tag 6 times: 1 start + 4 progress points + 1 completion = 6 firings.
- Attach the trigger to the tag and save both. Open the GA4 event tag, click Triggering, pick the new trigger, and save. The tag sends the video title, URL and the percentage reached with each firing, so the events read as a viewing curve instead of one play count.
Dead ends
DEAD END — AN EMBED WITHOUT THE JAVASCRIPT API. The trigger listens through the YouTube JavaScript API. An embed that does not enable it plays fine for the viewer and records nothing for Tag Manager. The embed has to enable API support, or the trigger never fires.
DEAD END — PERCENTAGES READ AS SECONDS. The progress points are percentages of the video, not seconds. Entering 10 on a 240-second video means 24 seconds in, not 10 seconds in. A 10-percent point on a 10-minute video is a full minute in.
DEAD END — COUNTING A START AS A VIEW. A start fires the moment the video begins, including accidental plays and plays that stop after two seconds. A start is not a view — the progress points are the evidence anyone watched. Report completion and progress, not starts alone.
End state
One YouTube video trigger capturing starts, four progress points and completions, attached to one GA4 event tag. The same trigger covers every API-enabled YouTube embed on the site.
Sources
- Tag Manager Help — Trigger types — YouTube Video trigger type
Checked 11 November 2026. The click paths above are the ones in Google's help 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. The container file was validated structurally instead: export format version 2, every tag's firing trigger resolves, every variable the tags reference exists in the file, and the tag types are the documented ones. Google moves menu items without warning; if a path on this page no longer matches, the linked help page is the current map. The container fragment for this guide is 1395 bytes (1.36 KB, 0.68% of the reported 200 KB container size limit), MD5 5e2de4959f25aec3a5b82dce7be4b452, and passed 12 structural checks.