← All posts

In DebugView, but not in your reports: unregistered custom dimensions

GA4 collects every parameter you send, but only shows it in reports once it is registered as a custom dimension. And registering is not retroactive.

Step 1 of 5 The sign_up event reaches GA4 with the plan_type parameter, and DebugView shows it correctly.
  1. The sign_up event reaches GA4 with the plan_type parameter, and DebugView shows it correctly.
  2. But in reports and explorations there is no plan_type dimension to use.
  3. The cause: GA4 collects the parameter, but only exposes it in reports once it is registered as a dimension.
  4. The fix: register the custom dimension. From that moment on, the data starts to show up.
  5. Data collected before registering can't be recovered in the interface: register before you ship.

One of GA4’s strengths is that any event can carry its own parameters: the plan a user picks, the content type of a page, the variant of an experiment. But collecting a parameter and being able to analyse it are two different things, and the difference is often discovered weeks after release, when someone tries to build the first report.

What happens with an unregistered parameter

The sign_up event arrives with the parameter plan_type = "pro", and DebugView shows it without a problem. Yet when you look for plan_type in an exploration or try to add it to a report, there is no dimension with that name.

Why GA4 hides parameters that aren’t registered

GA4 receives and processes every parameter, but only exposes in the interface the ones registered as custom definitions. An unregistered parameter exists in the raw data (and in the BigQuery export, if it is on), but not in reports or explorations.

On top of that, registering is not retroactive. A dimension starts getting data from the moment it is created; what was collected before isn’t added to the reports, even if the parameter had been sent for months.

How to find unregistered custom dimensions

  1. List the parameters your implementation sends: review the GTM tags or the measurement plan.
  2. Compare that list with Admin → Custom definitions. Any parameter missing from it is invisible in the reports.
  3. If you have the BigQuery export, a query on event_params shows every parameter that actually arrives, registered or not.

How to register a custom dimension in GA4

  1. Admin → Custom definitions → Create custom dimension.
  2. Type a readable name, choose the scope (event or user, depending on what the parameter describes) and enter the exact parameter name, case included.
  3. Save. Data starts showing up within 24 to 48 hours.

To stop it from happening again, make registration part of the release process: no new parameter should ship without its dimension, ideally created a few days in advance.

Keep the limits of standard properties in mind: 50 event-scoped and 25 user-scoped custom dimensions. Register only what you will analyse, and avoid parameters with almost unique values, which produce (other) rows in the reports.

Google’s documentation: About custom dimensions and metrics.

How to check the custom dimension is collecting data

  • After 24–48 hours, the dimension should be available in explorations with real values.
  • Data from before the registration won’t show up. If you need it, the only source is BigQuery, and only from the date the export was turned on.