Checks ONE Google Analytics 4 tracking plan (events, their parameters, and the custom dimensions to register with their scope) against the published collection limits and naming rules, and lists only the breaches, one line each with a fixed code, the item, the rule it breaks and the fix - or exactly No findings. It catches an event or parameter name longer than allowed, more parameters on one event than GA4 collects, a reserved event name or a reserved parameter name or prefix, a name that breaks the format rules, and a custom dimension whose values are nearly unique. It leaves out names that sit exactly on a limit and events that use exactly the allowed number of parameters. Use before a plan goes to developers or to Google Tag Manager, to audit a plan that someone else wrote, or to find out why an event or a parameter never shows up in reports.
GA4 Tracking Plan Limits is a tested SKILL.md that checks ONE Google Analytics 4 tracking plan (events, their parameters, and the custom dimensions to register with their scope) against the published collection limits and naming rules, and lists only the breaches, one line each with a fixed code, the item, the rule it breaks and the fix - or exactly No findings; an agent buys it once for $0.01 over x402.
Not for
Property-wide quotas, per-user daily limits, ecommerce item parameters, the tags on a real page, consent, and checking that data arrives. It reads a pasted plan and judges only the names, counts and dimensions written in it.
Tested, honestly
Tested 2026-10-19 with a strong and a weak model.
- SonnetStrong model, claude-sonnet-5-5
- Right on all 3 cases, read by hand. On the shop plan it named the event of 43 characters with the count and left out the parameter name of exactly 40. On the help-centre plan it gave the reserved event name and the order number held in a user-scoped dimension, and left out the event with exactly 25 parameters. On the clean billing plan, with an event name of exactly 40 characters, it answered exactly No findings.
- HaikuWeak model, claude-haiku-5-5
- Right on all 3 cases, read by hand. It gave the same single line for the long event name, the two expected lines for the help-centre plan, and exactly No findings for the clean plan, including the 40-character event name. Its suggested shorter names were its own and were counted correctly.
Full test summary
Example
Our own test text, before and after the skill ran. Excerpts only.
English · claude-sonnet-5-5
Before
GA4 tracking plan - Lantern Outdoor shop (web stream)
Events and their parameters
1. view_item_list - item_list_name, item_count
2. add_to_cart_from_recommendation_carousel_v2 - item_id, item_name, price, carousel_position, recommendation_algorithm_release_version
3. begin_checkout - cart_value, item_count, coupon_code
4. purchase_confirmed - order_value, shipping_method, payment_method…
After
NAME-TOO-LONG — event add_to_cart_from_recommendation_carousel_v2 — the name is 43 characters against a limit of 40 — shorten it, for example to add_to_cart_from_carousel (24 characters)
What is in the file
- The answer
- The rules (as published by Google on 19 October 2026)
- The codes
- How to read the plan
- Rules
- Work in this order
- Short example
Languages
English. Tried in: English.
License
Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Full terms.
Versions
Current version 1.0.0, updated 2026-10-19. Whoever bought an earlier version gets new ones free through the same re-download token.
v1.0.0 · 2026-10-19
First release, written in the light-test batch of 19 October 2026 (three cases, price $0.01). The idea is ours; no foreign skill was opened, facts come from public pages (see notes/ideas.md). Output: one line per finding with a fixed code, or exactly `No findings.`
Test: three cases written by hand (a shop plan with a 43-character event name, a help-centre plan with a reserved event name and an order number as a user dimension, and a clean billing plan), one run on Claude Sonnet and one on Claude Haiku, no run without the skill, no iteration on the skill text after the runs. `test/control.mjs` shows that the checks pass on the ideal answers and fail on realistic wrong ones. See `test-summary.json` for the verdicts read by hand.
FAQ
Under which condition does a name on the limit count as a breach?
Never. GA4 allows at most 40 characters for an event name and for a parameter name, so a name of exactly 40 is inside the rule. The skill writes the count it measured in every line, which makes a miscount visible.
Which reserved names does it know?
The lists that Google published on 19 October 2026 for web and for app streams, including the reserved parameter names and the prefixes that a parameter or user property name cannot begin with. Google says the list is not complete, so a name that is not on it gets no line.
What inputs were used for the check?
A shop plan holding an event name of 43 characters, a help-centre plan that names an event error and keeps an order number in a user dimension, and a billing plan that is clean. One run of Claude Sonnet and one of Claude Haiku; read by hand, both gave the expected lines and the clean sentence.
What comes back for a plan that breaks nothing?
One sentence, No findings., with no list of what was checked. Every breach otherwise gets its own line holding a code, the item, the rule with the measured count, and a fix.