Real run

GA4 Scroll and Video Engagement Plan

Sample 1 · 2026-10-29 · Grok Bot executor subagent (model family not disclosed)

Bot page

GA4 Scroll and Video Engagement Plan: shiftly.example

Property: standard. Enhanced measurement on the web stream: Scrolls on, Video engagement off. Registered event-scoped custom dimensions: 14. Page list: 32 pages with September views.

1. Questions mapped

Question What you asked Answered by enhanced measurement? What it can show Gap
M1 How far do people read our blog posts, half or all the way? Partly The scroll event fires once per page when 90% depth becomes visible, so 'all the way' is answerable as 'reached 90%' 'Half' needs a custom event at 50% depth; not covered by enhanced measurement
M2 Do visitors watch the product videos on feature pages, and how much of them? Only after Video engagement is switched on, and only for YouTube embeds with JS API support video_start, video_progress at 10, 25, 50 and 75%, video_complete /features/payroll-export has JS API off, so it is not covered
M3 Does anyone play the demo page video? No Nothing: /demo uses a self-hosted MP4, which the saved sources do not cover Needs a custom event; tagging steps not confirmed in the sources
M4 Which help pages get read to the end? Yes, as 'reached 90%' Scroll events per page; already collected because Scrolls is on None for the 90% reading of 'end'

2. Video coverage by page

Page Path Views (September) Video on page Class
P1 /pricing 8,200 none no video
P2 /features/scheduling 3,100 YouTube, JS API on covered
P3 /features/reports 2,400 YouTube, JS API on covered
P4 /features/payroll-export 1,900 YouTube, JS API off not covered
P5 /demo 4,600 self-hosted MP4 not covered
P6 /blog/shift-swap-guide 2,700 none no video
P7 /blog/overtime-rules-basics 3,900 none no video
P8 /blog/rota-template 5,100 none no video
P9 /blog/no-show-policy 1,300 YouTube, JS API on covered
P10 /blog/break-scheduling 1,150 none no video
P11 /blog/labor-cost-percent 2,050 none no video
P12 /blog/holiday-staffing 980 Vimeo not covered
P13 /customers/clinic-story 760 YouTube, JS API on covered
P14 /customers/cafe-story 640 Vimeo not covered
P15 /customers/retail-story 590 none no video
P16 /integrations 1,700 none no video
P17 /integrations/pos 880 YouTube, JS API off not covered
P18 /help/getting-started 3,300 YouTube, JS API on covered
P19 /help/mobile-app 2,100 YouTube, JS API on covered
P20 /help/time-clock 1,600 self-hosted MP4 not covered
P21 /help/permissions 720 none no video
P22 /webinars/q3-roadmap 450 YouTube, JS API on covered
P23 /webinars/scheduling-101 510 Vimeo not covered
P24 /about 400 none no video
P25 /careers 350 none no video
P26 /security 610 none no video
P27 /compare/spreadsheets 1,450 YouTube, JS API on covered
P28 /templates/weekly-rota 2,600 none no video
P29 /templates/availability-form 1,250 none no video
P30 /signup 5,400 none no video
P31 /blog/tip-pooling-explained 1,020 none no video
P32 /blog/split-shifts 870 YouTube, JS API off not covered

Classes: covered = YouTube with JS API on; not covered = YouTube with JS API off, Vimeo or self-hosted; no video; unknown. No page was unknown in your list.

3. Coverage counts

Counted and summed by script. Share of listed views = class views / 64,580 total listed views.

Class Pages Views Share of listed views
covered 8 14,860 23.0%
not covered 8 11,980 18.6%
no video 16 37,740 58.4%
unknown 0 0 0.0%
Total 32 64,580 100.0%

Not covered, by player:

Player Pages Views
YouTube, JS API off P4, P17, P32 3,650
self-hosted MP4 P5, P20 6,200
Vimeo P12, P14, P23 2,130

These shares describe the views on the 32 pages you listed for one month, not the whole site.

4. Custom dimension quota

Item Count
Registered now 14
Proposed new: video_percent (event-scoped) 1
After registering 15
Standard property limit (event-scoped) 50
  • My own note: the saved enhanced measurement page lists video_percent among the parameters sent with video events, but names only Video provider, Video title, Video URL and Visible as the dimensions they fill. Whether you must register video_percent to report on it is not confirmed in the sources, so I list it as a proposal to check in Admin, not a requirement.
  • GA4 Help says new custom dimensions can be used "After 24-48 hours" (https://support.google.com/analytics/answer/10075209), so expect a wait before reports show them.
  • No new dimension is proposed for the 50% scroll event; its design depends on how you tag it, which the sources do not cover.

5. Proposed changes (held)

Each change needs the Editor role or above on the property. Path from the saved page: Admin, under Data collection and modification, Data streams, then your web stream and Enhanced measurement (https://support.google.com/analytics/answer/9216061).

ID Change Answers Status
C1 Switch Video engagement on in enhanced measurement M2 (P2, P3, P9, P13, P18, P19, P22, P27) HELD
C2 Turn JS API support on for the YouTube embeds on P4, P17 and P32, then recheck coverage M2 for /features/payroll-export HELD
C3 Custom event at 50% scroll depth on blog posts (design only; tagging steps not confirmed in the sources) M1 'half' HELD
C4 Custom play event for the self-hosted demo video on P5 and the self-hosted help video on P20 (design only; steps not confirmed in the sources) M3 HELD
C5 Register video_percent as an event-scoped custom dimension, if Admin shows it is not already reportable M2 'how much' HELD

Vimeo pages (P12, P14, P23) stay not covered under this plan; tracking them is not in the sources I have.

6. Questions for you

  • Who changes the embed code on the YouTube pages with JS API off (C2), and does your site builder expose that setting?
  • Do you run Google Tag Manager? C3 and C4 need a tagging method, and I have no saved source for its steps.
  • For M1, is 'half' enough, or do you also want other depths? Each one is a separate custom event to design.
  • Should the Vimeo pages be tracked? If yes, I need a source for how that player reports events before I plan it.

Needs your decision

  • Approve switching Video engagement on (C1, HELD).
  • Approve turning JS API support on for P4, P17 and P32 (C2, HELD).
  • Approve the 50% scroll custom event design (C3, HELD).
  • Approve the self-hosted video play event design (C4, HELD).
  • Approve registering video_percent (C5, HELD).