---
title: "GA4 Upgrade Notes Part 1 - Fundamental Concepts"
description: "This is the first post in our GA4 upgrade notes series, introducing the history of Google Analytics 4, its data collection mechanism, Google Signals for cross-device tracking, and the major changes to tracking code implementation and reporting structure."
canonical_url: "https://blog.markkulab.net/en/post/upgrade-to-ga4-parts-1"
author: "Mark Ku"
author_url: "https://blog.markkulab.net/en/author/mark-ku"
site: "Mark Ku's Tech Notes"
date_published: "2023-04-11 01:01:02 +0800"
category: "Google Analytics"
tags: ["ga4", "google analytics", "google signals", "gtag", "seo", "tracking"]
language: "en"
license: "CC BY 4.0"
license_url: "https://creativecommons.org/licenses/by/4.0/"
attribution: "when reusing or quoting, credit the author and link back to the original"
---

# GA4 Upgrade Notes Part 1 - Fundamental Concepts

## How Google Collects User Information

Google primarily uses [cookies to track users](https://datasupplied.com/google-analytics/client-id-intro/). However, if a user browses a page using different devices or browsers, it's impossible to track them as the same person.

To solve this problem, Google launched [Google Signals](https://support.google.com/analytics/answer/7532985?hl=zh-Hant#zippy=%2C%E6%9C%AC%E6%96%87%E5%85%A7%E5%AE%B9) in 2018. Leveraging its vast ecosystem of products and users, Google uses these services to gather more user information.

*   Obtain demographic, interest, and gender-related information.
*   Cross-device reports (more accurately identify if it's the same user).
*   Advertising reporting features (collect additional relevant information).
*   Remarketing in conjunction with Google Analytics.

P.S. This only takes effect when Google Signal users have enabled [Personalized ads](https://myadcenter.google.com/?sjid=16722581212413467982-AP&fbclid=IwAR0E17SZ7rozUZS9p-9PqSJ12GhMghRiMwlUznKRfl7fX77XEngsRkw0Sbw).

## History of GA
2006: GA launched
2012: GA SDK launched (for web analytics)
2014: Google acquired Firebase (for app analytics, real-time database)
2016: Google Firebase launched (for app analytics)
2019: Firebase integrated with GA
2020: Renamed to GA4 (merging Firebase and GA)
2023/07/01: Universal Analytics (UA) sunset

## Impact on Technical Staff

### Changes in GA Tagging Implementation (Data layer => gtag)
```
<script async src="https://www.googletagmanager.com/gtag/js?id=G-xxxxx"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-xxxxx');
</script>
```
### Enhanced Ecommerce Reports (Parameters passed are different)
### Fewer Built-in Reports, Encouraging Use of Custom Reports and Long-term Trend Observation
### Event data is retained for 2 months by default > Can be adjusted to 14 months (default is 2 months, paid plans can extend this)
![GA4 data retention settings with 2 months and 14 months options](https://blog.markkulab.net/content/markku/posts/upgrade-to-ga4-parts-1/images/U0UGpQB.png)
### Previously, Universal GA only tracked page views. Now, there's Enhanced Measurement.
It additionally collects data on scrolls, outbound clicks, site search (query parameters must be configured), video engagement (playback duration), and file downloads (whether anyone downloads).

Admin > Data Streams > Enhanced measurement > Enabled by default, settings can be configured based on your website.

![GA4 Enhanced measurement settings with event tracking toggles](https://blog.markkulab.net/content/markku/posts/upgrade-to-ga4-parts-1/images/yLVfzYt.png)

### Data Collection
Google Signals data collection - Enabled by default. It identifies if different devices belong to the same user by checking if the user is logged into Chrome or other Google-related sites, which helps determine age, gender, and other user identity information.
![GA4 Google Signals data collection settings with toggle enabled](https://blog.markkulab.net/content/markku/posts/upgrade-to-ga4-parts-1/images/ekNhaEq.png)

![GA4 user and event data retention settings showing 14 months](https://blog.markkulab.net/content/markku/posts/upgrade-to-ga4-parts-1/images/LC0xd3n.png)

### GA4 enables cross-device tracking, as third-party cookies will be phased out in 2024. The new GA4 solves this using "User-ID" and "Google Signals." User-ID is used to track logged-in users, while enabling Google Signals allows for cross-device tracking even for non-logged-in users, enabling precise ad targeting.

### Property - Advanced Settings
In the "Property" column, click "Data Streams."
Click the web data stream.
In the web stream details, click "Configure tag settings."
Click "Show all."
![GA4 web stream details and Google tag settings interface](https://blog.markkulab.net/content/markku/posts/upgrade-to-ga4-parts-1/images/Vtp4651.png)

#### Cross-domain measurement - for tags on two websites,
If you have tags on two websites, this prevents the same user from being counted twice when navigating between them. Go to Configure your domains > Add condition.

#### Define internal traffic - Exclude internal office IP addresses from GA4 reports.

#### List unwanted referrals - When a user is redirected away from and then back to your site, it can affect report display. E.g., payment gateway redirect pages.

#### [Link Google Ads](https://support.google.com/analytics/answer/1033961?hl=zh-Hant#zippy=%2C%E6%9C%AC%E6%96%87%E5%85%A7%E5%AE%B9)
By linking your Google Ads account to your Analytics property, you can see the full customer cycle. This includes everything from how users interact with your marketing (e.g., seeing or clicking ads) to how they ultimately complete the goals you've set on your site (e.g., making a purchase, consuming content).
![Google Analytics interface showing Google Ads linking settings](https://blog.markkulab.net/content/markku/posts/upgrade-to-ga4-parts-1/images/A4e871N.png)

#### [Link Google Search Console](https://support.google.com/analytics/answer/10737381?hl=zh-Hant)
After integrating with Search Console, you can analyze organic search data related to your website. For example, you can see your site's ranking in search results, which queries lead to clicks, and how these clicks translate into user behavior (e.g., which landing pages are more engaging and how many users convert).
![Google Analytics 4 admin interface for Search Console linking](https://blog.markkulab.net/content/markku/posts/upgrade-to-ga4-parts-1/images/FPsBKNs.png)

#### Insights Engine
![GA4 interface showing 11,042 users on March 31](https://blog.markkulab.net/content/markku/posts/upgrade-to-ga4-parts-1/images/qXChlcR.png)
*   How many users were there yesterday?
*   New users yesterday
*   Top pages yesterday
*   Month-over-month user growth
*   How much revenue was generated yesterday?
*   Average session duration yesterday

#### Reports - (Four main sections)
*   Acquisition: How users get to your site.
*   Engagement: What users do on your site.
*   Monetization: The site's revenue status (requires developers to implement enhanced ecommerce code to populate data).
*   Retention: How many are new vs. returning users.

---

## About this article and its author

Originally published on [Mark Ku's Tech Notes](https://blog.markkulab.net/en/post/upgrade-to-ga4-parts-1)

License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) — when reusing or quoting, credit the author and link back to the original

### About the author

**[Mark Ku](https://blog.markkulab.net/en/author/mark-ku)** — Software Solution Provider

- 10+ years senior software engineer, now an AI Builder
- Focused on large-platform architecture — North-American e-commerce, AI SaaS subscription billing
- Combining AI Agents and automation to build evolvable product foundations

### Free tools built by the author

All of these are free to use:

- [Free PDF Sign Tool](https://blog.markkulab.net/en/tools/pdf-sign): Online PDF sign tool — draw, type, or upload a signature, then drag, resize, and download. Everything runs in your browser; nothing is uploaded.
- [VS Code Refactory](https://blog.markkulab.net/en/tools/refactory): Refactory is a VS Code refactoring extension: 34 actions plus a 37-rule code-smell inspection layer with a Code Health dashboard, across 18 languages, backed by 534 tests. It learns your repo's conventions: where interfaces live, where DI is registered, whether 'use client' belongs. It ranks files by git churn × complexity so you know what to fix first, and hands any smell to the Claude Code already on your machine. Free to use, and your source never leaves your computer.
- [DB-Kit Database Manager](https://blog.markkulab.net/en/tools/db-kit): DB-Kit is a lightweight, cross-platform database manager built with Tauri + Rust + React. Manage MySQL, MariaDB, PostgreSQL, SQL Server, Oracle, SQLite, MongoDB, Redis, Kafka, Elasticsearch and RabbitMQ from one consistent interface: passwords encrypted in the OS keychain, SSH tunnels, full CRUD, a visual query builder, stacked multi-statement result sets, cross-connection data transfer and compare/sync, Excel / CSV import & export, visualized execution plans, ER diagrams, scheduled backups, SQL stress testing with p50–p99 latency percentiles, a 15-rule SQL review engine, Kafka message browsing with monitoring & alerts, a bilingual UI (Traditional Chinese / English), a built-in AI assistant (natural-language SQL, AI review and tuning advice) and the dbk CLI. Free and open source (MIT), with installers for Windows, macOS and Linux.
- [VS Code Super Mermaid](https://blog.markkulab.net/en/tools/super-mermaid): Super Mermaid is a VS Code extension for beautiful Mermaid diagrams out of the box: auto-colored live preview, mouse pan & zoom, high-res PNG / SVG export, 21 templates and multiple themes. Free and open source (MIT).
- [React Super Mermaid](https://blog.markkulab.net/en/tools/react-super-mermaid): react-super-mermaid is an open-source React component library: render beautiful Mermaid diagrams with a single <MermaidViewer>, with built-in colorful / sketch themes, pan & zoom, in-diagram search, and high-res SVG / PNG export. Lightweight, SSR-safe, fully typed. Free and open source (MIT).
- [Jira / Confluence Super Mermaid](https://blog.markkulab.net/en/tools/jira-super-mermaid): An Atlassian Forge app: write Mermaid syntax directly inside a Jira issue or a Confluence page and get flowcharts, sequence diagrams, state machines and Gantt charts. 11 diagram types, SVG / PNG export, light and dark themes, full CJK support. Runs on Atlassian: your diagrams live in your own site and the app calls no third-party service. Free, coming soon to the Atlassian Marketplace.
- [Mermaid Live Preview](https://blog.markkulab.net/en/tools/mermaid-preview): Write Mermaid in your browser, see it render instantly, and share the whole diagram as a single link. No sign-up, nothing uploaded to a server, and mermaid.live share links work as-is.
- [React Intl Phone Number](https://blog.markkulab.net/en/tools/react-intl-phone-number): react-intl-phone-number is an open-source React component: framework-agnostic and antd-free, with E.164 in/out, a searchable flag / country-code dropdown, configurable validation levels (strict / mobile-strict / loose), themeable CSS, and i18n — phone logic powered by google-libphonenumber. Lightweight and fully typed. Free and open source (MIT).
- [Uptime Kuma Cluster](https://blog.markkulab.net/en/tools/uptime-kuma-cluster): Turn single-node Uptime Kuma into a highly available cluster: OpenResty + Lua smart load balancing, shared MariaDB state, health checks and automatic failover, plus cluster-management REST APIs. One Docker Compose command to start. Free and open source (MIT).
- [Special Education](https://blog.markkulab.net/en/education): Learning materials crafted for special education students

### Daily podcasts

- [Mark's Tech Insights — Daily AI News](https://blog.markkulab.net/en/category/tech-news): Daily curated AI and tech trends. Catch the latest developments via audio summaries — covering AI applications, software architecture, DevOps, and engineering practice. — RSS: https://blog.markkulab.net/feed.xml
- [AI股市蝦聊](https://blog.markkulab.net/en/category/ai-stock-chat): Every trading day, an AI-analyzed take on the Taiwan stock market, delivered as a two-host conversation covering the session and the next-day outlook. — RSS: https://blog.markkulab.net/ai-stock-chat/feed.xml
- [開源好物週報](https://blog.markkulab.net/en/category/open-source-weekly): A weekly two-host pick of free open-source tools surfaced from real Hacker News, GitHub, and Reddit buzz — what pain they solve and the fastest way to get started. — RSS: https://blog.markkulab.net/open-source-weekly/feed.xml

### Newsletter

[Subscribe to the newsletter](https://blog.markkulab.net/en/subscribe) — Be the first to know about new posts. No spam, unsubscribe anytime.
