Data & Analysis

GA4 Tracking Plan Limits

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.

Tested 2026-10-19No code, no hidden instructionsv1.0.0 · 9.1 KB · perpetual license

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.

  1. 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.

Share

Read this page as Markdown: /skills/ga4-tracking-plan-limits.md.

More in Data & Analysis

  • A/B Test Readout Check

    Data & Analysis

    SKILL.md · v1.0.0 · 9.1 KB

    Checks the written readout of ONE A/B test (a paragraph, an email, a table or a slide transcript) for the five statistical mistakes that turn a no-effect test into a "win", and lists only those, one line each with a fixed code, the place, the evidence with the arithmetic and the fix - or exactly No findings. It catches stopping the moment a result looks significant, many metrics or variants judged without correction, a split of users that differs from the planned split by more than chance allows (the sample ratio check, calculated step by step), a sample too small for the effect the team wants to detect, and a relative lift reported without the absolute numbers behind it. It leaves out the safe look-alikes, such as a pre-registered single primary metric, guardrail metrics that only monitor, and a split of 50.2 to 49.8 on a small sample. Use before a test result is shipped, when an analyst or an agent writes a readout, or to review a result someone else announced.

    $0.01once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 19 Oct 2026

  • Table Summary: Only the Figures in the Table

    Data & Analysis

    SKILL.md · v1.0.3 · 8.7 KB

    Describes a table you were given (pasted Markdown, CSV, TSV or spreadsheet cells) in a short paragraph that uses only figures the table itself prints. Every number is copied as written with its unit, currency and qualifier. Nothing is added up, averaged, rounded, turned into a percent or a ratio, or extended into a trend, a cause or a forecast. A blank or n/a cell is reported as not given, never as zero. A total the table prints is quoted, not checked. Use when asked to describe a table, summarize a table, explain what a data table shows, write a caption or a sentence for a table, or put the rows of a report table into words without inventing a single number.

    $0.05once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 8 Oct 2026

  • YAML Repair: Fix Broken YAML, Keep Every Value

    Data & Analysis

    SKILL.md · v1.0.1 · 8.4 KB

    Repairs broken YAML and Markdown front matter so a program can parse it, without changing any value's text or type, and answers with the YAML only, no code fence. Fixes tabs used as indentation, indentation that fits no parent, a missing closing quote or bracket, values that need quotes (a colon inside, a leading star or at sign), and output cut off in the middle, where the cut value is kept as cut and never completed. Yes, no, on, off and NO stay strings, 1,250 stays a string, 1.10 and 01234 stay as written. Duplicate keys, input that is not YAML, and input with two readings get a fixed one-line answer instead of a guess. Use when a tool, an API or another model returned YAML or front matter that does not parse, or when asked to fix, clean up or close invalid or truncated YAML.

    $0.05once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 8 Oct 2026

  • Recommended

    Env File Repair: Fix .env and INI Syntax, Keep Values

    Data & Analysis

    SKILL.md · v1.0.2 · 10.4 KB

    Repairs a broken .env file or INI file so the program that loads it reads every variable with the value its author meant, and answers with the file only, no code fence. Quotes a value that holds a hash sign or must keep its leading or trailing spaces, closes a quote that was left open, joins a key pasted over several lines, picks the quote style that keeps backslashes and mixed quotes intact, and leaves numbers such as 007 and 1.10, empty values and placeholders exactly as written. A key set twice to different values, a bare line that may be a lost key, a quote with two ways to close, and input that is JSON or another format get a one-line CANNOT REPAIR answer instead of a guess. Use when a config pasted from chat or model output loads wrongly, cuts a value short, or fails to parse, or when asked to fix, clean up or close a broken env file.

    $0.05once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 8 Oct 2026