Measurement & Strategy
Google Analytics 4 (GA4) Guide for Content Marketers
GA4 runs on events, not pageviews. When you plan those events around your content journey, you can see which pages attract, educate, and convert. This guide shows how to set up GA4 correctly, define events and conversions, track engagement, connect Search Console, build reports and dashboards, and prove pipeline impact.
GA4 basics in plain English
Event based model
Everything is an event with parameters. A page view is an event. A click is an event. A download is an event. This makes content measurement flexible once you plan your parameters well. See Google’s overview of events in GA4.
Engaged sessions
GA4 counts a session as engaged when it lasts 10 seconds or more, or has 2 or more page or screen views, or triggers a conversion. This drives engagement rate and average engagement time. Learn more in GA4 metrics.
Recommended events
Google publishes event names that unlock better reports. For content, consider generate_lead, file_download, view_search_results, share. Reference the list in GA4 event reference.
Create the property and data streams
- In Admin, create a GA4 property and a Web data stream. See set up Analytics.
- Turn on Enhanced measurement for page views, scrolls, outbound clicks, site search, file downloads, and video engagement. Details in Enhanced measurement.
- Link to Google Search Console in Admin so you can see queries and landing pages in GA4. Steps in link GA4 and Search Console.
- Set data retention to at least 14 months for explorations if policy allows. See data retention.
If you operate in regions that require consent, plan Consent Mode and banner behavior with your legal team. See Google’s notes on consent.
Tagging and enhanced measurement
Install via GTM
Use Google Tag Manager so marketing can add events without code pushes. Add a GA4 Configuration tag with your Measurement ID and a GA4 Event tag for custom events. See GTM for GA4.
// GA4 Event tag (GTM)
Event name: generate_lead
Parameters:
content_group: "BOFU"
cta_location: "article_bottom"
form_name: "Contact - Hire Me"
Use Enhanced measurement
- Scrolls: triggers at 90 percent depth
- Outbound clicks: captures external link clicks
- Site search: auto-detects query parameter
- File downloads: for common document types
- Video engagement: YouTube play, progress, complete
Toggle each per stream. Confirm events in DebugView. See Enhanced measurement.
Events, parameters, and naming
Good event design is the heart of content measurement. Keep names simple, reuse recommended events where possible, and define a small set of parameters that answer who, what, where, and why.
Event | When it fires | Key parameters | Notes |
---|---|---|---|
page_view | On every view | page_title, page_location, content_group | content_group is a custom dimension you define |
scroll | At 90 percent depth | percent_scrolled, content_group | Use to set “consumed” in reports |
file_download | PDF, CSV, PPT, etc | file_name, link_url, content_group | Enhanced measurement event |
click | Outbound link | link_url, link_text, cta_location | Enhanced measurement event |
view_search_results | Site search results page | search_term | Auto captures q, s, search parameters |
generate_lead | Form submit or booked call | form_name, lead_quality, cta_location | Mark as conversion |
share | Share button click | method, content_group | Optional but helpful |
Naming rules
- snake_case for event names and parameters
- Use recommended names where they fit
- Limit to a small stable set, documented in a sheet
Register dimensions
Create custom dimensions for parameters you need in reports, such as content_group, cta_location, lead_quality. See custom dimensions.
Define conversions
Pick a short list of events that count as success and mark them as conversions. In Admin → Conversions, add events like generate_lead, schedule_meeting, or start_trial. See set up conversions.
Content ladder
- Micro: scroll 90 percent, view_search_results
- Mid: click to pricing or product pages
- Macro: generate_lead, start_trial
Attribution notes
Use data-driven attribution with a lookback window that matches your sales cycle. Explore attribution to see path contributions by page and channel.
Engagement metrics that matter
Engagement rate
The share of sessions that are engaged. Useful for comparing templates and topics.
Average engagement time
Time the page is in focus. Better than old session duration for content.
Views per user
Shows depth of exploration. Segment by content group to see clusters that pull readers deeper.
Design pages for scanners. NN/g shows readers skim first, so answer blocks, short headings, and tables usually lift engagement. See F-pattern.
Measure SEO with GA4 + Search Console
GA4 sees behavior on site. Search Console sees queries and positions in Google Search. Link them to connect intent and outcomes. See linking instructions.
What you get
- Queries and clicks by landing page in GA4
- Organic CTR and position next to engagement
- Faster diagnosis of intent mismatch
SEO workflow
- Find pages with high impressions and low CTR
- Fix titles, metas, and answer blocks
- Check if scroll and outbound clicks improve after changes
UTM strategy and campaign hygiene
UTMs label traffic so you can attribute performance. Keep them short and consistent. Google’s campaign parameters explain the rules.
Parameter | Purpose | Example | Rule |
---|---|---|---|
utm_source | Platform or site | linkedin, newsletter | lowercase |
utm_medium | Channel type | social, email | use GA defaults where possible |
utm_campaign | Initiative | q4_launch | no spaces |
utm_content | Variant | cta_banner_a | optional but helpful |
utm_term | Paid keyword | product_analytics_tool | for paid search |
Do not tag internal links with UTMs. They break session attribution and inflate direct traffic.
Content groups and taxonomies
Group pages so you can see performance by theme, stage, or format. In GA4 you create a custom dimension, often called content_group, and set it with GTM based on URL or dataLayer.
Grouping ideas
- Funnel stage: TOFU, MOFU, BOFU
- Cluster: analytics, governance, integrations
- Format: guide, comparison, case study
How to set it
// GTM Variable (RegEx Table) → returns content_group
Input: {{Page Path}}
Rules:
^/blog/ → "TOFU"
^/compare/|/vs- → "MOFU"
^/solutions/|/pricing → "BOFU"
Create a GA4 custom dimension for content_group and send it with page_view and key events.
Reports you will actually use
Pages and screens
Sort by views and engagement. Add a secondary dimension like content_group and compare conversion rate. See Pages and screens.
Traffic acquisition
Channel performance for content conversions. Align UTMs with GA defaults for clean groupings. See acquisition.
Landing page
Which pages start sessions and how they convert. Add Search Console data to see CTR and position next to engagement.
Tech details
Check device types and pages with slow LCP. Use this to prioritize performance fixes. Learn more about Core Web Vitals at web.dev.
Events
Event counts and parameters for scrolls, downloads, and leads. Build comparisons by cta_location to find placements that pull.
Conversions
Which events create value and which pages assist. Pair with attribution to show paths that lead to pipeline.
Explorations: funnels and paths
Funnel exploration
- Step 1: page_view where content_group = TOFU
- Step 2: click where link_url contains /solutions/
- Step 3: generate_lead marked as conversion
Break down by device or source to find friction. See Explorations.
Path exploration
Start with a landing page and see the next 5 clicks. Identify dead ends and add links to the right BOFU pages. Use the reverse path to see what sends traffic into your pricing page.
Looker Studio dashboards
Dashboards keep teams aligned. Build one page per audience: executives, content team, and SEO.
Executive view
- Content conversions by channel and by quarter
- Top landing pages that start qualified sessions
- Funnel from content to demo or trial
Content team view
- Performance by content_group and template
- Scroll and outbound clicks by section
- Downloads and shares by article
SEO view
- Search Console impressions, clicks, and CTR by page
- Internal link clicks into BOFU pages
- Fields for title and meta tests with annotations
Connect GA4 and Search Console to Looker Studio. Be mindful of quota limits and sampling for large date ranges.
BigQuery export basics
GA4 can stream event data to BigQuery so you can run SQL on raw events, keep data longer, and join with CRM. Setup guide at export to BigQuery.
Why content teams use it
- Build a “content to pipeline” model with CRM joins
- Analyze scroll depth and reading paths by cluster
- Store data for more than the UI limits
Starter query ideas
- Top entry pages that lead to generate_lead within 7 days
- Sessions that touched 2 or more pages in one content_group
- Outbound link domains most associated with leads
Consent, retention, and thresholds
Consent Mode
If you require consent for analytics or ads, implement Consent Mode and document default behavior when users decline. See Google consent help.
Data retention
Retention controls how long GA4 keeps event data for explorations. Set to 14 months if policy allows. See retention settings.
Thresholding
For privacy, GA4 may hide some data in reports with small user counts. Aggregations or BigQuery help when you need more detail. See data thresholds.
Governance and QA
Event governance sheet
- Event name, description, trigger, parameters
- Custom dimensions, scope, owner, date added
- Whether it is a conversion and where it shows up
QA checklist
- DebugView shows events with parameters on staging
- Realtime confirms events in production after deploy
- Explorations return expected counts by content_group
- Consent banners behave correctly in test regions
30 60 90 rollout
Days 1 to 30
- Create property and web stream, enable Enhanced measurement
- Install via GTM, set content_group, connect Search Console
- Define events and mark conversions, set retention
Days 31 to 60
- Publish a dashboard for executives and content team
- Build one funnel and one path exploration per cluster
- Fix titles and answer blocks on top landing pages with low CTR
Days 61 to 90
- Export to BigQuery and join with CRM if available
- Audit UTMs and create a source of truth sheet
- Plan next quarter’s tests based on winners and gaps
FAQ
Do I need custom events if Enhanced measurement is on
Yes for business actions. Enhanced measurement covers scrolls, outbound clicks, file downloads, and video engagement. You still need generate_lead or similar to track value.
Where did bounce rate go
GA4 focuses on engagement. You can enable a bounce rate metric that is the inverse of engagement rate, but average engagement time and engaged sessions are more useful for content.
Should I use data-driven attribution
It is a strong default. Pair it with path and funnel explorations to explain how content assists conversions. Always align the lookback window with your sales cycle.
Can I track author or template performance
Yes. Add parameters such as author and template on page_view and register them as custom dimensions. Use a GTM variable or dataLayer to pass the value.