What is Google Analytics 4 (GA4)?
Google Analytics 4 (GA4) is Google’s web and app analytics product for collecting events on a site or in an app: page views, clicks, scrolls, purchases, custom goals. A GA4 property replaced Universal Analytics (GA3); standard UA properties stopped accepting hits on 1 July 2023. The unit of record in GA4 is an event with parameters, not a “pageview hit” plus a separate session object as in UA.
GA4 exists to show behavior on your property: where a session came from, which screens it passed, where it exited, which events reached a form or checkout. It is not an ad account and not an affiliate tracker. The ad account optimizes its own campaigns; a tracker ties a click to offer payout. GA4 describes what a person did on the domain or in the app after (and sometimes before) those clicks.
Data model and reports
The data-stream identifier is a Measurement ID of the form G-XXXXXXXX. Collection: gtag.js on the site, a Google Tag Manager container, the Firebase SDK in an app, and Measurement Protocol when events must be sent from a server. Several streams (web + iOS + Android) can land in one property — hence the “cross-platform user” promise, which in practice depends on login, User-ID, and cookie limits.
An event is a name plus parameters (page_location, value, transaction_id, custom fields). GA4 records some events itself (enhanced measurement: scroll, outbound clicks, site search — if enabled). The rest is marked up by hand: generate_lead, purchase, sign_up. User and session in GA4 are derived from the event stream, not separate “counters” as in UA.
Standard reports: acquisition, engagement, monetization, demographics (where data suffice). Explorations is a builder: event funnels, path, segments, and cohort exploration. A GA4 cohort is an interface example; the method (groups by start date, LTV and retention along life) is not that template.
Campaign labels on links are the usual UTM parameters (utm_source, utm_medium, utm_campaign, and the rest). Without them, paid sessions often fall into Unassigned / Direct. UTMs in GA4 do not replace an offer click ID: analytics learns “facebook / cpc / campaign_name”; the network learns sub1=ABC123.
Attribution inside a GA4 property is its own layer. Google long defaulted to a data-driven model on observed and modeled paths; rule-based last click is also available. The window and model in GA4 need not match the Meta/Google Ads window, and still less CPA-network last click. Report mismatch is expected, not a broken counter.
Product limits. Consent Mode and cookie refusal cut observed hits; Google fills some conversions with models. Identity thresholds hide small slices. A BigQuery export gives raw events without UI thresholds — that is a warehouse, not a button in the UI. GA4 does not compute payout, hold, approve, CAC, LTV, or ROI by sub ID.
GA4 and an affiliate tracker
A standalone “GA4 vs tracker” page is unnecessary: these are different classes of system, compared as layers in a stack.
- Object. GA4 — events on the site / in the app. Tracker — click → offer → postback.
- Money. GA4 — value you sent yourself. Tracker — payout, status, cost import.
- Key. GA4 — client_id / user_id, UTM, session. Tracker — click ID, sub ID.
- Attribution. GA4 — property model (often data-driven). Tracker / network — typically last click.
- Strength. GA4 — behavior, page funnel, returns. Tracker — ROI/EPC on the pair and network billing.
Typical chain: ad → tracker URL → landing with a GA4 tag and UTMs → offer. The tracker answers whether the creative paid back. GA4 answers where people dropped on the landing and whether the form layout broke. The ad-account pixel / CAPI is a third layer: it feeds the buying algorithm, not the affiliate-manager report.
When GA4 alone is enough: content, SEO, an owned store without an affiliate network, a product funnel on your domain. When it is not: CPA/revshare where money-truth is the network postback; mobile in-app where an MMP and SKAdNetwork sit closer to the install than a web property.
Reconciliation. Do not expect GA4 conversions to equal tracker conversions: different windows, dedup, blockers, no tag on the offer domain. Compare order of magnitude by campaign (UTM = campaign) and hunt holes: zero events with live clicks — the tag is not firing; events exist, postback empty — the click-ID macro is broken.
Practical bounds
GA4 does not replace a tracker, an MMP, or an ad account. It is a poor source of truth for affiliate payout. It is useful as a behavior layer next to paid attribution. On a path across several domains without forwarded tags and User-ID, the GA4 map stops — that is a collection limit, not “bad traffic.” A landing pixel and a GA4 tag solve different jobs: the first feeds the ad account, the second reports sessions.
See also: tracker, data-driven attribution, Yandex Metrica, GTM, UTM parameters.