Article Library

Everything covered,
nothing assumed

Each section below is a distinct topic. Read them in any order, or follow the sequence if you're starting from scratch.

Core Metrics

Sessions, Users, and Pageviews

These are the three numbers most people see first when they open Google Analytics. They're also the three numbers most commonly misread.

What a user is

A user represents a distinct browser or device that has visited your site. GA4 identifies users through a combination of cookies, device identifiers, and, when available, a user ID you can provide. One person using two browsers, or the same browser on two devices, can register as two different users. GA4 introduced a "blended" identity method that attempts to reconcile these, but it's an estimate, not a perfect count.

What a session is

A session is a group of interactions that happen within a defined time window. In GA4, the default session timeout is 30 minutes of inactivity. If the same user returns to your site after 31 minutes of doing nothing, that counts as a new session. Sessions also reset at midnight. One user can generate multiple sessions in a single day. This is why your session count is always higher than your user count.

What a pageview is

A pageview is recorded each time a page is loaded or the page URL changes. On single-page applications, pageviews need to be configured manually because the URL doesn't always change when content does. Pageviews are the most granular of the three: one user, one session, but potentially many pageviews as they navigate through your site.

Why the three numbers diverge

Imagine one person visits your blog Monday morning, reads two articles, closes the laptop, then comes back that evening to read a third. That's one user, two sessions, and at least three pageviews. The numbers tell different parts of the story. Users describe reach. Sessions describe visit frequency. Pageviews describe depth of engagement.

None of them is "the right metric." The right one depends on what question you're trying to answer.

Quick reference

Users Distinct browsers or devices
Sessions Groups of interactions within a time window
Pageviews Individual page loads or URL changes
Branching path diagram showing how one user generates multiple sessions and pageviews, rendered in warm glowing tones on a dark background

Platform Setup

Setting Up GA4 Goals Without Hiring Someone

GA4 doesn't use the word "goals" anymore. The concept still exists, but it's now called conversions, and the path to set one up changed significantly from Universal Analytics.

The mental model shift

In Universal Analytics, a goal was a destination (a URL), a duration, pages per session, or an event. In GA4, everything is an event. A pageview is an event. A scroll is an event. A button click can be an event. A "conversion" in GA4 is simply an event that you've marked as important enough to track as a key action.

Step one: identify the event

Before you can mark something as a conversion, the event needs to exist in GA4. Some events are collected automatically: page_view, scroll, session_start, first_visit. Others need to be created. If you want to track form submissions, you need either a confirmation page (which triggers a page_view event with a specific URL) or a custom event configured through the GA4 interface or Google Tag Manager.

Step two: mark it as a key event

Once the event appears in your GA4 reports, go to Admin, then Events. Find the event name in the list. Toggle the switch labeled "Mark as key event." That's it. The event will now appear in your Conversions report and contribute to conversion counts in other reports.

What can go wrong

The event might not be firing. The event might be named differently than expected. The toggle might not appear immediately because GA4 needs to have seen the event at least once in the past 30 days. Each of these has a specific diagnostic step, covered in the detailed article linked from our toolkit page.

What you don't need

For most small business use cases, you don't need a developer. You don't need Google Tag Manager, though it helps for more complex setups. You don't need to edit your website's code if you're using a platform like WordPress, Squarespace, or Shopify that has native GA4 integration and automatic event collection.

Setup path

1 Confirm event exists in GA4
2 Admin > Events
3 Find event in list
4 Toggle "Mark as key event"

Understanding Credit

What Attribution Models Mean in Plain Language

Someone finds your site through a Google search. They leave. Two days later they click a link in your newsletter. They purchase. Which channel gets credit for the sale?

Attribution models answer this question. Different models give different answers. None is objectively correct, because credit for a conversion is a philosophical question as much as a technical one.

Last-click attribution

All credit goes to the last channel the user interacted with before converting. In the example above, the newsletter gets full credit. This is simple and intuitive, but it tends to undervalue channels that introduce people to your brand earlier in the journey.

First-click attribution

All credit goes to the first channel. The organic search gets full credit. This model tends to favor acquisition channels and undervalue channels that help close conversions later.

Linear attribution

Credit is split equally across every touchpoint in the journey. If someone touched five channels before converting, each gets 20% of the credit. This acknowledges that multiple channels played a role but doesn't differentiate between a brief exposure and a decision-driving interaction.

Data-driven attribution

This is GA4's default model. It uses machine learning to assign credit based on how much each touchpoint actually influenced conversions, compared to paths that didn't convert. It requires sufficient conversion data to function, and it's a black box in the sense that you can't see exactly how the weights were calculated. It often produces more accurate results when data volume is high enough, but it can be difficult to explain to stakeholders.

Which one to use

The model you choose depends on what question you're trying to answer. If you're trying to understand where to invest acquisition budget, first-click or data-driven attribution tells a more useful story. If you're trying to understand what closes conversions, last-click is more relevant. The most important thing is knowing which model you're looking at before drawing conclusions.

Model comparison

Last-click 100% to final touch
First-click 100% to first touch
Linear Equal split across all
Data-driven ML-weighted by influence

Practical Application

Building a Dashboard That Answers Three Questions

The default response to "I need to understand my analytics" is to add more charts. More metrics, more breakdowns, more date comparisons. The result is a dashboard nobody looks at.

Start with questions, not metrics

Before opening Looker Studio or any dashboard tool, write down three questions your business actually needs answered on a regular basis. Not "what are our numbers" but specific questions: Is the blog bringing in readers who look at more than one article? Are people who land on the pricing page actually reaching checkout? Which acquisition channel brings visitors who spend the most time on the site?

Work backward to find the metrics

Once you have specific questions, identifying the right metrics becomes straightforward. The blog question needs sessions per user from organic traffic, average pages per session, and possibly scroll depth. The pricing page question needs a funnel view from the pricing page URL to a purchase event. The channel quality question needs sessions broken down by source/medium alongside engaged sessions or average engagement time.

One section per question

Build each dashboard section to answer exactly one question. Label the section with the question itself, not a generic label like "Traffic Overview." A section labeled "Are blog visitors reading more than one article?" tells anyone looking at it exactly what the charts in that section are measuring and why.

The fifty-chart problem

A dashboard with fifty charts is usually a sign that nobody decided what the dashboard is for. Every chart added without a specific question behind it adds visual noise and makes it harder to spot what actually matters. Removing charts from a dashboard is harder than adding them, because it feels like losing information. It isn't. Irrelevant information is not useful information.

When to add a fourth question

When a new business decision regularly comes up that can't be answered by the existing three sections. Not when you're curious about a metric. Not when a new report becomes available. When there's a recurring decision that the dashboard doesn't currently help you make.

Example dashboard structure

Section 1

Are blog visitors reading more than one article?

Section 2

Is the pricing page leading to checkout?

Section 3

Which channel brings the most engaged visitors?

GA4 Metric

Engagement Rate and Why It Replaced Bounce Rate

When people migrated from Universal Analytics to GA4, one of the most disorienting changes was the disappearance of bounce rate and the arrival of engagement rate in its place.

Bounce rate in Universal Analytics measured the percentage of sessions where only one page was viewed with no interaction. It was a blunt instrument. A person reading a 2,000-word article and then closing the tab counted as a bounce, exactly the same as someone who landed on a page and immediately hit the back button. The metric couldn't tell the difference between these two very different experiences.

GA4's engagement rate measures the percentage of sessions that lasted longer than 10 seconds, had a conversion event, or included two or more pageviews. A session where someone reads an article for six minutes and leaves without clicking anything is an engaged session. It's measured as the opposite of what GA4 calls "bounce" in its own limited context.

Engagement rate still isn't a perfect signal. Ten seconds is an arbitrary threshold. But it's meaningfully better at distinguishing between sessions where something actually happened and sessions where the visitor immediately left.

Traffic Sources

Traffic Channels: What GA4 Puts Where and Why

GA4 groups incoming traffic into channels: Organic Search, Direct, Referral, Paid Search, Email, Social, and others. How traffic gets assigned to a channel isn't always obvious.

Direct traffic means GA4 has no information about where the visitor came from. This happens when someone types a URL directly, uses a bookmark, opens a link from a native app, or visits from a source that strips referrer information for privacy reasons. Direct traffic is often larger than expected, partly because it absorbs traffic that couldn't be classified elsewhere.

Referral traffic comes from links on other websites that aren't recognized search engines or social networks. A blog post linking to you, a partner website, an online directory: these all become referral traffic.

Organic search traffic comes from clicks on unpaid search engine results. GA4 recognizes major search engines automatically. If you're running paid search ads, those sessions need UTM parameters to be separated from organic traffic properly, otherwise they may appear as organic.

UTM parameters are the key to accurate channel attribution. Adding utm_source, utm_medium, and utm_campaign to links in your email newsletters, social posts, and ad campaigns tells GA4 exactly where that traffic came from, rather than letting it guess.

GA4 Fundamentals

Events and Parameters: GA4's Building Blocks

GA4 is built entirely on events. Every interaction, every page load, every scroll, every form submission is an event. Understanding this structure helps everything else make sense.

An event is simply a record that something happened. It has a name (like page_view or click) and can carry additional information in the form of parameters. Parameters are the details attached to an event. The page_view event carries parameters like page_title and page_location. A custom purchase event might carry parameters like transaction_id, value, and currency.

Parameters are what make events useful for analysis. Without parameters, you know that a page was viewed, but not which page. Without parameters, you know that a purchase happened, but not for how much.

GA4 automatically collects a set of events and parameters without any configuration. These are documented by Google and include things like first_visit, session_start, page_view, scroll, and click. Beyond these, you can define custom events for actions specific to your site, whether that's a video play, a file download, a quote request, or anything else that matters for your business.

Custom dimensions and metrics let you use custom event parameters in your reports. Without registering a custom parameter as a custom dimension, it won't appear as a column you can analyze. This is one of the more confusing parts of GA4 setup and is covered in detail in the Planning Toolkit.