
How to Build a Custom Report in Google Analytics 4
GA4's default reports are a reasonable starting point, but they're built to be broadly useful to everyone, which means they're rarely a perfect fit for any one business. If you find yourself repeatedly exporting the same custom breakdown, or wishing a standard report had one more dimension in it, GA4's Report Library lets you build and publish a report tailored exactly to what your team checks regularly.
This guide covers how custom reports differ from Explorations, how to build one from scratch, and how to publish it for your whole team.
Custom Reports vs. Explorations: What's the Difference?
This distinction trips a lot of people up, so it's worth being explicit:
- Explorations (under the Explore section) are for ad-hoc, free-form analysis — building a one-off funnel, testing a hypothesis, digging into a specific segment. They're personal by default and not part of the permanent left-hand navigation.
- Custom reports (built through the Library) are for reports you want to check repeatedly, appearing in the main navigation just like the standard Acquisition or Engagement reports. They're built for recurring use and can be shared with your whole organization.
If you're exploring a question, use Explorations. If you've found something worth checking every week, turn it into a custom report.
Step 1: Open the Report Library
- In GA4, click Reports in the left-hand navigation.
- Scroll down and click Library (near the bottom of the reports list).
- You'll see existing report collections (like "Life cycle" and "User") as cards you can edit, along with a Create new report option.
Step 2: Create a New Custom Report
- Click Create new → Detail report (for a table-based report) or Overview report (for a dashboard-style summary with cards and charts).
- Name your report clearly — something your team will recognize at a glance, like "Blog Performance by Author."
- Click Edit report to configure it.
Step 3: Configure Dimensions and Metrics
For a detail report:
- Click the pencil icon to enter edit mode.
- Under Dimensions, add the fields you want to break data down by — for example,
Page path,Landing page, or a custom dimension likeAuthorif you've configured one. - Under Metrics, add the numbers you want to see —
Sessions,Engagement rate,Conversions,Total revenue, etc. - Set a default chart type (line, bar, or table) and a default sort order.
- Click Save, then Apply.
Step 4: Publish It to Your Navigation
Once you're happy with the report:
- Click Publish at the top of the report library card.
- The report now appears as a permanent item in the left-hand navigation, under the collection you added it to (or a new collection you create).
Published reports are visible to anyone with access to the property, which makes this the right tool for a report your whole team should be checking regularly — as opposed to Explorations, which stay private to the person who built them unless explicitly shared.
Using Custom Dimensions in Reports
If you're tracking business-specific data — like a blog's author, a SaaS product's plan tier, or a content type — you'll first need to register it as a custom dimension before it can be used in a custom report:
- Send the parameter with your events, e.g.:
gtag("event", "page_view", {
author_name: "Sajjad",
content_type: "tutorial",
});
- Go to Admin → Custom definitions → Create custom dimensions.
- Give it a name (e.g., "Author"), choose scope (usually Event), and map it to the parameter name (
author_name). - Wait for new events to start populating the dimension (existing historical events won't retroactively gain the dimension).
- It will now be available to add to any custom report or Exploration.
Building a Report Collection
Individual reports can be grouped into collections — a themed set of reports that appear together in the navigation, similar to how "Acquisition" groups Traffic acquisition and User acquisition together:
- In the Library, click Create new collection.
- Name it and add existing or new reports to it.
- Publish the collection, and it appears as its own section in the left-hand navigation.
This is particularly useful for building a focused reporting section for a specific stakeholder group — for example, a "Content Team" collection containing only blog- and content-related reports, hiding the e-commerce and technical reports that team doesn't need to see.
Tips for Useful Custom Reports
- Keep each report focused on one question. A report trying to answer five things at once tends to answer none of them clearly.
- Match the chart type to the data. Trends over time work well as line charts; comparisons across categories work better as bar charts or tables.
- Name reports for the question they answer, not just the metric — "Which Blog Posts Drive Signups" is more useful in a navigation menu than "Blog Report 3."
- Revisit collections periodically. As business priorities shift, old custom reports can become clutter; archive ones nobody checks anymore.
Sharing a Custom Report Outside of GA4
Not everyone who needs to see a report should have to log into GA4 directly — stakeholders, clients, or executives often just want a periodic summary. For that audience, it's usually better to rebuild the same dimension/metric combination as a Looker Studio report connected to your GA4 property, rather than relying on the published-in-GA4 version:
- Create a new Looker Studio report and connect the GA4 connector to your property.
- Recreate the same dimensions and metrics from your custom GA4 report as a chart or table.
- Share the Looker Studio report directly via link, with view-only access, or schedule it to email as a PDF on a recurring basis.
This gives you a version of the same insight that doesn't require GA4 access at all, which is often the more practical way to distribute the same information beyond your immediate team.
Maintaining Your Report Library Over Time
As a site or business evolves, custom reports can quietly go stale — built around a campaign that ended, a product line that was discontinued, or a question that stopped being relevant. Treat your Report Library the way you'd treat any other shared resource: review it every quarter, archive reports nobody is actually using anymore, and keep the navigation focused on what your team currently cares about rather than letting it accumulate indefinitely.
FAQ about Building a Custom Report in Google Analytics 4

Are custom reports visible to everyone with access to the property?
Yes, once published — custom reports become part of the shared navigation for anyone with access to that GA4 property, unlike private Explorations.
Can I edit a custom report after publishing it?
Yes — return to the Library, edit the report, and republish it. Changes apply immediately for everyone viewing it.
Do custom reports support real-time data?
No — custom reports use standard processed data, similar to other standard reports, not the Realtime report's live data feed.
Can I use a custom dimension in a report before registering it?
No — a parameter needs to be registered as a custom dimension under Admin → Custom definitions before it becomes available as a report dimension.
What's the difference between a "Detail report" and an "Overview report" in the Library?
A Detail report is a single, focused chart-and-table view (similar to the standard Acquisition or Engagement reports). An Overview report is a dashboard-style page combining several cards and summary metrics, similar to the GA4 home Overview page.
Can I delete a custom report without affecting the underlying data?
Yes — deleting a custom report only removes it from the navigation and Library; it has no effect on the raw event data GA4 has collected.
Conclusion
Custom reports are how you turn Google Analytics's generic defaults into something that actually matches how your team works. Register the custom dimensions you need, build a report around one clear question at a time, and publish it so it becomes a shared reference rather than a one-off export — the kind of report your whole team actually checks when they think about your website.


