Universal Analytics’ Custom Reports interface has been gone since UA itself was retired in July 2024. If you’re still searching for “Custom Reports” in the left-hand menu of Google Analytics and not finding it, that’s why: it isn’t hidden, it’s been replaced by GA4’s Explore workspace, which works differently enough that the old muscle memory doesn’t transfer.
This walks through building the GA4 equivalent of a traffic-over-time custom report: which technique to pick, how rows, columns and values work, and how to add a date comparison so you’re not just looking at one static period.
Quick Facts
- GA4’s equivalent of Custom Reports lives under Explore in the left nav, not inside the standard reports section.
- The Free Form technique is the closest match to old-style custom reports: rows, columns, values, filters.
- You can apply up to 10 segments and up to 20 dimensions and 20 metrics per exploration.
- Explorations are private by default. Use the Share icon to give colleagues read-only access.
- Queries pulling in more than 10 million events get sampled, so tight date ranges and filters matter on busier sites.
Where Explore replaced Custom Reports
In GA4, click Explore in the left-hand navigation. You’ll see a template gallery with several techniques: Free Form, Funnel Exploration, Path Exploration, Segment Overlap, User Exploration and Cohort Exploration. For a traffic or time-based report, ignore the rest and pick Free Form, either the blank version or the sample template.
The workspace has three panels: Variables on the left (date range, segments, dimensions, metrics you’ve added), Tab Settings in the middle (how those variables get arranged into rows, columns and values), and the output on the right, which updates live as you configure it.
Building the report
Everything you want to use has to exist in Variables first. Click the + next to Dimensions and Metrics to add what you need, then drag it into Tab Settings. For a basic traffic report:
| Tab Settings field | What to put there |
| Rows | Date (or Week/Month), plus Session default channel group if you want a split by source |
| Columns | Session default channel group, if not already in rows |
| Values | Sessions, Engaged sessions, Engagement rate, Conversions |
| Filters | Optional: exclude internal traffic, or restrict to a specific landing page |
Drag dimensions into Rows and metrics into Values (up to 10 metrics per table). Toggle Nested rows in Tab Settings if you want the second row dimension indented under the first rather than in its own column. For each metric column, you can choose a cell display of plain text, bar chart or heat map, which is genuinely useful for spotting which weeks or channels stand out at a glance.
Making it time-based
Set the date range under the analysis name at the top of Variables. There’s no built-in “compare to previous period” toggle inside Free Form the way there is in the standard reports, so the practical approach is either:
- Add Date (by day) or Week/Month as a row dimension and read the trend straight off the table, or
- Switch the visualisation from Table to Line chart, which gives you granularity controls (hour, day, week, month) and built-in anomaly detection with an adjustable sensitivity setting.
If you want a genuine period-over-period comparison table (this month vs last month, side by side), build two identical explorations with different date ranges and place them on separate tabs within the same exploration. Click the + next to the tab name at the bottom to duplicate a tab, then just change its date range.
Segments, filtering and cleaning up the data
Segments in Explore come in three flavours: user, session and event. Click the + next to Segments in Variables to build one, or right-click a row in your finished table and choose Build a segment from selection, which is the quickest way to turn “this one channel is interesting” into something reusable.
Watch for “(not set)” rows, usually meaning GA4 couldn’t determine a value for that dimension. A filter excluding it keeps the table readable. On a site fighting bot or spam traffic, filtering those sessions out at the source (rather than in every report) saves doing this repeatedly, see the Cloudflare guide linked below.
Saving and sharing
Explorations save automatically under your Google account and are private by default. Use the share icon top-right to give other property users read-only access, or the export icon to download the current table as a CSV, TSV or Google Sheet. There’s no direct “email this on a schedule” option inside Explore itself. For recurring reports, either export to Looker Studio (free, connects directly to GA4) or automate the pull with the GA4 Data API.
Frequently asked questions
Is there a direct GA4 replacement for Universal Analytics Custom Reports?
Not a like-for-like port. Free Form explorations do the same job (choose dimensions and metrics, arrange them yourself) but the interface and terminology are different, and nothing migrates automatically. Any saved UA custom reports need rebuilding from scratch in Explore.
Can I schedule an exploration to email automatically?
Not from Explore itself. Standard GA4 reports (not explorations) support scheduled email exports in PDF form from the report’s share menu. For a recurring custom report, Looker Studio’s scheduled email delivery is the more flexible route.
Why does my exploration show different numbers to the standard reports?
Usually sampling, thresholding, or a different date range or segment applied. Explorations sample once a query pulls in more than 10 million events; standard reports use pre-aggregated data and don’t hit that limit the same way. Narrowing the date range or adding a filter often resolves the discrepancy.
Discover more from TechyGeeksHome
Subscribe to get the latest posts sent to your email.