{"slug":"ga4-tracking-plan-limits","name":"GA4 Tracking Plan Limits","version":"1.0.0","updated_at":"2026-10-19T07:14:26.233Z","use_when":"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.","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.","languages":["en"],"tags":["google-analytics","ga4","tracking-plan","event-naming","custom-dimensions","analytics-qa"],"category":"data","category_url":"https://aiskills402.com/categories/data","keywords":["tracking plan","reserved event name","custom dimension","naming rules"],"faq":[{"q":"Under which condition does a name on the limit count as a breach?","a":"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."},{"q":"Which reserved names does it know?","a":"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."},{"q":"What inputs were used for the check?","a":"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."},{"q":"What comes back for a plan that breaks nothing?","a":"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."}],"examples":[{"lang":"en","model":"claude-sonnet-5-5","input_excerpt":"GA4 tracking plan - Lantern Outdoor shop (web stream)\n\nEvents and their parameters\n1. view_item_list - item_list_name, item_count\n2. add_to_cart_from_recommendation_carousel_v2 - item_id, item_name, price, carousel_position, recommendation_algorithm_release_version\n3. begin_checkout - cart_value, item_count, coupon_code\n4. purchase_confirmed - order_value, shipping_method, payment_method…","output_excerpt":"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)"}],"page_url":"https://aiskills402.com/skills/ga4-tracking-plan-limits","markdown_url":"https://aiskills402.com/skills/ga4-tracking-plan-limits.md","image_url":"https://cdn.aiskills402.com/og/skills/ga4-tracking-plan-limits/3fc52f34.png","related_url":"https://api.aiskills402.com/v1/skills/ga4-tracking-plan-limits/related","purchases_count":null,"tested":{"date":"2026-10-19","strong":{"model":"claude-sonnet-5-5 (Claude Code alias \"sonnet\")","verdict":"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."},"weak":{"model":"claude-haiku-5-5 (Claude Code alias \"haiku\")","verdict":"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."},"note":"Light test: three cases (two planted, one clean), one run per model; no comparison without the skill. The three inputs were written by us; each planted one carries a safe look-alike and neither has a comment pointing at the defect. Facts come from the public pages named in the notes, read on 19 October 2026; there are no owner-measured facts.","report_url":null},"price_usd":"0.01","price_micro":10000,"size_bytes":9351,"sha256":"ad0c780bddb22a711fde790a5a2e2054ca1903cbb1ba67d34cfe8ccfc496d636","outline":["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"],"license":{"summary":"Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing","holder":"Georgi Kalchev, aiskills402.com","url":"https://aiskills402.com/docs#license"},"buy_url":"https://api.aiskills402.com/v1/skills/ga4-tracking-plan-limits/file","redownload_url_template":"https://api.aiskills402.com/v1/purchases/{token}","mcp_tool":null,"payment":{"protocol":"x402","scheme":"exact","asset":"USDC","selling":true,"network":"base","network_caip2":"eip155:8453","pay_to":"0x8e37022edcf0f21cf3c9f93fee9d4d32519f36f4","facilitator":"cdp"},"seo_title":"GA4 Event and Parameter Limit Check","seo_description":"Checks a GA4 plan for names over 40 characters, over 25 parameters, reserved names, bad formats and near-unique dimensions. Pay $0.01 once, in USDC.","versions":[{"version":"1.0.0","date":"2026-10-19","changelog":"# Changelog\n\n## 1.0.0 — 2026-10-19\n\nFirst 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.`\n\nTest: 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.\n"}]}