Made by Rune Andersen @ Copenhagen, Denmark
YouTube Stats logo

Debug YouTube Stats in Chrome DevTools

To debug YouTube Stats in Chrome DevTools, install the free Event Watcher extension and open its panel: every YouTube Stats request is captured the moment it fires, broken out into its parsed query and body parameters, plus the cookies it set and sent, and cross-referenced against the visitor's consent state. Event Watcher has listed YouTube Stats under Video since v1.0.0, and flags any YouTube Stats event that fires without analytics consent.

Video engagement tracking: watch time, quality metrics, and viewer analytics.

Last updated:

Category
Video
Detected via
Network requests: Event Watcher matches the request URLs this platform sends
Consent category
Analytics / statistics consent: Event Watcher flags YouTube Stats activity that fires without it
Supported since
Event Watcher v1.0.0 (2026-02-20)
Show the URL patterns Event Watcher matches
  • youtube.com/api/stats
  • s.youtube.com/api/stats
  • youtube-nocookie.com/api/stats
  • youtube.com/youtubei/v1/log_event
  • youtube-nocookie.com/youtubei/v1/log_event

What YouTube Stats traffic looks like

An embedded YouTube player reports viewing back to Google on its own, without the site asking it to. Event Watcher matches those telemetry endpoints specifically, not the player script or the video stream, so a YouTube Stats entry in the stream means the embed reported engagement.

Endpoint pattern
youtube.com/api/stats/* and s.youtube.com/api/stats/* carry playback telemetry (watchtime, playback, delayplay, qoe); youtube.com/youtubei/v1/log_event carries the newer client event log. The privacy-enhanced host youtube-nocookie.com is matched on the same two paths, because it uses the same endpoints
Transport
GET beacons fired by the player itself, repeating during playback rather than once per video
Key parameters
docid is the video id · cpn is the client playback nonce, unique per playback session · st and et give the start and end of each watched segment · cmt the current media time · len the video length · ei the event id
Notes
A watchtime beacon is not a play event. It is a periodic report of which segments were watched, which is why one viewing produces several

A watchtime beacon, reduced to the parameters that matter:

GET https://s.youtube.com/api/stats/watchtime
  ?docid=dQw4w9WgXcQ
  &cpn=k3Jd2p…
  &len=213.041
  &st=0,12.4
  &et=12.4,31.8
  &cmt=31.8

Debugging YouTube Stats with Event Watcher

  • No dedicated parser. Each beacon is matched by URL pattern, named YouTube Stats, badged with the Video category, and shown with its parsed query parameters.
  • docid tells you which video reported, without opening the iframe. On a page with several embeds this is the fastest way to see which one a visitor actually played.
  • cpn stays constant for one playback session, so beacons can be grouped into a single viewing rather than read as separate plays.
  • YouTube reads Google Consent Mode, so its behaviour is tied to the same signals GA4 and Google Ads use. Reading the consent state on the first beacon alongside the Consent Mode entries in the timeline shows whether the signal reached it.

YouTube Stats and consent

Analytics consent

Event Watcher checks YouTube Stats against the analytics consent category.

This is the category's most common misconception, and it is directly observable. youtube-nocookie.com is widely believed to make an embed consent-exempt. It changes cookie behaviour on the initial load; it does not stop the player reporting. Load a page with a nocookie embed, play the video, and the same /api/stats/watchtime beacons appear. If those land before consent, they count as violations regardless of which host the embed came from. The reliable fix is not loading the iframe until analytics consent resolves, usually with a click-to-load placeholder.

Common debugging scenarios

  • Video events missing in GTM. GTM's YouTube trigger needs enablejsapi=1 on the embed URL. Beacons in the stream while GTM fires nothing means the player is reporting to Google but not talking to the page.
  • A nocookie embed still shows violations. Expected. Check the beacon host: it will be youtube-nocookie.com and the beacon will still be there.
  • Which video was actually watched? Read docid, and use st and et to see how much of it.
  • One play counted as several. Group the beacons by cpn. One nonce is one playback session.
  • Who embedded the player? Script Tree attributes the embed to the site's template, a tag manager, or another script.

See YouTube Stats traffic on your own site

Free, no account, runs entirely inside Chrome DevTools.

Add to ChromeFree on the Chrome Web Store

Related guides

More video platforms