Tracking Setup for Startups: GA4, UTMs and Events Done Right
By Saroj Jha · October 4, 2026 · 13 min read
Decide which questions your tracking must answer before you add a single tag. Then track a short list of events and tag every link the same way. The six steps below show how, with one example company from start to finish.
In three numbers
- 14 months the longest a standard GA4 property keeps event and user-level data for explorations and funnel reports; the only other choice is 2 months[1]
- 1,000 consenting daily users GA4 needs, on 7 of the previous 28 days, before it estimates what visitors who declined did[2]
- 72 hours the furthest back a Measurement Protocol event can be dated, so send CRM stages to GA4 as they change[3]
Most startups install Google Analytics, leave the defaults and discover six months later that they cannot answer basic questions: which channel produced last quarter’s customers, whether the new landing page converts better, why paid traffic shows up as “unassigned”. Fixing tracking later means losing history.
The setup below takes a day or two and holds up as you grow. It uses Google Analytics 4 (GA4), Google’s current analytics product, and UTM parameters: short tags you add to the end of a link so GA4 knows where a visit came from.
Running case: Example Co. Fictional
Example Co. is a seed-stage B2B SaaS startup whose software automates the month-end close for finance teams at companies with 50 to 500 employees. The controller is the champion and daily user; the CFO or VP Finance signs; IT reviews security. The team of eight, including two founders and one account executive, wants 30 new customers in the next 12 months. Deals take about 45 days to close, so a form fill says little about what works. This quarter it is launching a free month-end close checklist, promoted with LinkedIn ads, a newsletter and a partner webinar. Example Co. and all its numbers are illustrative.
Step 1: Start from your questions, then list the events
Start with the decisions tracking has to support. For most startups they are: which channels bring customers, where people drop out of the funnel, and which pages and campaigns work. Then choose events for each step. An event is one action GA4 records, such as a page view or a form submission.
GA4 collects some events automatically and, with enhanced measurement, others such as form starts and submissions[4]. Beyond those, use Google’s recommended event names where they fit: Google says they produce more useful reports and work with features it adds later. For lead-based businesses, GA4 recommends a set of lead events that follow a lead from creation to close: generate_lead, qualify_lead, disqualify_lead, working_lead, close_convert_lead and close_unconvert_lead[5].
In practice, a first tracking plan has about ten events: sign-up or form submission, demo request, trial start, activation (the first valuable action in the product), purchase, and the lead-stage events. Write them down in a tracking plan before anyone adds a tag. The Tracking Plan and UTM Builder gives you the template.
Example Co., step 1 Fictional
The team writes three questions. Which channels produce qualified demos and signed contracts? How many checklist readers go on to ask for a demo? Do LinkedIn ads reach controllers, or only clicks? Those questions lead to a plan of eight events. Five of them follow the buyer from first visit to signed contract, shown below; the other three are the remaining lead stages. Example Co. sells through demos, with no free trial, so it has no trial event.
- 1 Visits from a campaign link
page_viewCollected automatically Sent from Website Tracked only - 2 Downloads the close checklist
generate_leadGoogle-recommended name Sent from Website Tracked only - 3 Requests a demo
demo_requestExample Co.’s own name Sent from Website Key event - The website’s part ends here; the CRM sends the later stages
- 4 Sales qualifies the lead
qualify_leadGoogle-recommended name Sent from CRM Key event - 5 Signs a contract
close_convert_leadGoogle-recommended name Sent from CRM Key event
Also in the plan, sent from the CRM and tracked only: working_lead disqualify_lead close_unconvert_lead
Example Co.’s plan from Steps 1 and 2 of the running case; fictional. Event names are Google’s recommended lead events except page_view, which GA4 collects with enhanced measurement, and demo_request, Example Co.’s own.
Do this
Write your three to five questions at the top of the tracking plan, and do not add an event that does not help answer one of them.
What Google’s own documentation shows: why the plan should live outside the tool
A written plan matters because tools change. Google’s help page states: “Google Analytics 4 is our next-generation measurement solution, and it has replaced Universal Analytics.” It sets out what happened to the older product. From July 1, 2023, “Standard Universal Analytics properties stopped processing hits.” From the week of July 1, 2024, users lost access to current and historical Universal Analytics data, and Google warns that unless the data was saved through the methods it describes, “your data will be permanently deleted by Google and won’t be recoverable”[6].
This is what Google’s documentation says, not an account of how any company handled the change. In my view, the lesson is simple: tags and reports tied to one tool can disappear with it. A team with a written list of its events, names and key events can rebuild them in a new tool in days; a team with only tags has to work out what it was tracking.
- Until July 1, 2023: sites send hits to Universal Analytics, the older product
- For about a year: no new hits; earlier reports can still be read and exported
- From the week of July 1, 2024: data not saved elsewhere is “permanently deleted” and “won’t be recoverable”
My takeaway Tags tied to one tool vanish with it. A written tracking plan survives the switch.
Show the numbers as a table| Date | What Google’s help page says happened |
|---|---|
| July 1, 2023 | Standard Universal Analytics properties stopped processing hits |
| Week of July 1, 2024 | No access to any current or historical Universal Analytics data; data not saved is permanently deleted |
Google Analytics Help, “Google Analytics 4 has replaced Universal Analytics”[6]. Standard properties; 360 properties with a current order had a one-time extension to July 1, 2024. Drawn to scale by month; the takeaway is mine.
Do this
Keep the tracking plan in a shared document or sheet, not only inside GA4 or your tag manager.
Step 2: Name events consistently and mark only a few key events
A key event is “an event that measures an action that’s particularly important to the success of your business”[7]. Key events used to be called conversions; Google’s API documentation records the change in May 2024[8]. You mark an event as a key event with the star in Admin, under Data display, Events[9], and a standard property allows up to 30[10].
Mark only the events that represent business progress: a demo request, a qualified lead, a purchase. Marking every click as a key event makes the reports meaningless.
Name events consistently, and within GA4’s limits. Event names can be up to 40 characters, each event can carry up to 25 parameters (extra details sent with the event, such as the form’s name), and a standard property allows 50 event-scoped custom dimensions[10],[11]. Parameters only appear in standard reports once you register them as custom dimensions.
In practice: use lowercase with underscores (demo_request, not Demo Request), reuse Google’s recommended names, name events for the action rather than the page, and record every event and parameter in the tracking plan. GA4’s own rules back this up: names must start with a letter, use only letters, numbers and underscores, and are case sensitive, so demo_request and Demo_Request count as two events[12].
Example Co., step 2 Fictional
Example Co. marks three key events: demo_request, qualify_lead and close_convert_lead. Checklist downloads are tracked with generate_lead but not marked, because a download shows interest, not progress toward a sale. Its longest event name, close_unconvert_lead, is 20 characters, half the limit. It registers two parameters as custom dimensions: form_id, to tell the checklist form from the demo form, and company_size, because its ideal customer has 50 to 500 employees. All choices are fictional.
Do this
Start with three to five key events. Add one only when someone will make a decision from it.
Step 3: Set a UTM convention that matches GA4’s channel rules
Tag every link you control outside your own website: ads, emails, social posts, partner links. Google says you “should always use utm_source, utm_medium, and utm_campaign”, and that parameter values are case sensitive[13]. “LinkedIn” and “linkedin” show up as two different sources. GA4 also reads utm_id, utm_term, utm_content and utm_source_platform; utm_creative_format and utm_marketing_tactic are not currently reported[13].
The values you choose decide which channel GA4 assigns the traffic to. For manually tagged links, GA4 counts traffic as paid social only when the source is a recognized social site (such as linkedin or facebook) and the medium matches a paid pattern: cpc, ppc, retargeting, anything containing cp or anything starting with paid. Paid search works the same way with a search engine as the source, email is recognized when the source or medium is email, and organic social uses mediums such as social[14]. Medium values outside these rules are why traffic ends up “unassigned”. Google’s own definition: “Unassigned is the value Analytics uses when there are no other channel rules that match the event data”[14].
A subtler mistake does not show up as unassigned at all. Organic social also includes any visit whose source is a recognized social site, so a LinkedIn ad tagged with a medium such as sponsored, which does not match the paid pattern, is counted as organic social. The paid clicks look free.
A simple convention that fits GA4’s rules:
| Link type | utm_source | utm_medium | utm_campaign | GA4 channel |
|---|---|---|---|---|
| LinkedIn paid ad | paid_social | 2026q4_guide_launch | Paid Social | |
| Meta paid ad | facebook or instagram | paid_social | 2026q4_guide_launch | Paid Social |
| Google Ads | cpc | brand_search | Paid Search | |
| Newsletter | newsletter | 2026_10_issue | ||
| Founder’s LinkedIn post | social | guide_launch | Organic Social | |
| Partner link | partner_name | referral | co_webinar_oct | Referral |
Google Ads tags its own links: auto-tagging is on by default for new accounts, and GA4 gives it priority over any UTMs on the same link[15], so you don’t need UTMs there. The Tracking Plan and UTM Builder builds tagged links from your convention and keeps a log.
Example Co., step 3 Fictional
Example Co. adopts the convention above. Before launch, it checks its first draft of links against GA4’s rules and finds two problems: the LinkedIn ads were tagged utm_medium=sponsored, and the newsletter links utm_medium=newsletter. The first would have counted paid clicks as Organic Social; the second would have landed in Unassigned. Both are fixed before a single visit is recorded. The links are fictional; the rules are Google’s.
Example Co.’s fixed LinkedIn ad link
https://example.com/checklist? The page utm_source=linkedin Who sent the visit & utm_medium=paid_social How it came: decides the channel & utm_campaign=2026q4_guide_launch Which campaign Google says always use these three. GA4 also reads utm_id, utm_term, utm_content and utm_source_platform. Not currently reported in GA4: utm_creative_format, utm_marketing_tactic.
LinkedIn ads
Draftutm_source=linkedin utm_medium=sponsored Organic Social Social site, but the medium is not a paid one: paid clicks look free Fixed utm_source=linkedin utm_medium=paid_social Paid Social Social site plus a paid medium Newsletter links
Draftutm_source=newsletter utm_medium=newsletter Unassigned No channel rule matches, so the visit gets no channel Fixed utm_source=newsletter utm_medium=email Email The medium is email Parameters: Google Analytics Help, URL builders[13]. Channels: GA4’s default channel group[14], where a paid medium is cpc, ppc, retargeting, anything containing cp or anything starting with paid. Example Co.’s links are from Step 3 of the running case and are fictional; example.com is a domain reserved for examples.
Do this
Fix your list of allowed mediums in writing (for example paid_social, cpc, email, social, referral) and build every link from it.
Free template
Build every tagged link from one list
The free Tracking Plan and UTM Builder keeps your questions, events, key events and allowed mediums in one sheet, builds tagged links from your convention and logs each one, with Example Co.’s plan filled in.
Get the builderStep 4: Change four settings on day one
Four settings to change before the first campaign:
- Data retention. Standard properties can keep event data and user-level data for 2 or 14 months. Set both to 14. The setting only affects explorations and funnel reports, but those are the ones you will want[1].
- Cross-domain measurement, if your site, app and checkout sit on different domains, so one visitor isn’t counted as two[16].
- BigQuery export. Standard properties can export raw event data to BigQuery, up to 1 million events a day for daily export, and can start in the free BigQuery sandbox[17], where tables expire after 60 days[18]. With billing enabled, the export keeps your raw events beyond GA4’s retention limit.
- Internal traffic. Exclude your own team’s visits so they don’t inflate results: mark your office IP addresses as internal traffic, then set the internal-traffic data filter to Active. A filter in Testing removes nothing, and an active one removes data for good[19].
GA4 property settings Example Co., the week before launch Fictional
Data retention
Event data and user-level data
Event data 2 months 14 months User data 2 months 14 monthsOnly explorations and funnel reports use it; standard reports are not affected.
Example Co. Both set to 14 months
Cross-domain measurement
Web stream, tag settings, Configure your domains
example.com app.example.com A _gl link parameter carries one ID across, so one visitor is not counted as two.
Example Co. The website and the app’s demo booking page
BigQuery export
Daily export of raw events
Daily export on Up to 1 million events a dayThe free sandbox deletes tables after 60 days; with billing on, raw events outlast GA4’s retention.
Example Co. Sandbox now, billing on before day 60
Internal traffic
Rule by IP address, then a data filter
Filter state Testing ActiveA filter in Testing removes nothing; an active one removes the team’s visits for good.
Example Co. Office IP addresses marked as internal
Google Analytics Help: data retention[1], cross-domain measurement[16], BigQuery Export[17] and internal traffic[19]; Google Cloud, BigQuery sandbox[18]. A generic settings view, not Google’s screens. Example Co.’s choices are from Step 4 and are fictional.
Example Co., step 4 Fictional
Example Co. changes all four settings in the week before launch. Its product runs on a separate app domain from its website, so cross-domain measurement matters: without it, a prospect who moves from the pricing page to the demo booking page in the app would count as two visitors. It starts BigQuery in the sandbox, where tables expire after 60 days, so it switches billing on and updates the expiry before the first tables reach that age. Fictional choices.
Do this
Open Admin today and set both retention settings to 14 months. Data that has already expired is deleted, so a later change cannot bring it back.
Step 5: Set up consent and plan for lost signals
Set up consent before you launch campaigns. This is orientation, not legal advice.
Google consent mode passes the visitor’s choice to Google tags through four settings: ad_storage, analytics_storage, ad_user_data and ad_personalization. In basic mode, tags wait for consent; in advanced mode, tags send limited data without cookies so Google can model conversions[20]. GA4 makes those estimates only once a property has at least 1,000 consenting daily users on 7 of the previous 28 days and 1,000 events a day from visitors who declined; below that, declined visits are simply not reported[2]. Google requires consent for users in the European Economic Area, and since early March 2024, audiences for linked advertising products include only users outside the EEA unless consent signals are sent[21].
Basic Tags wait for a choice
Nothing sent
Google tags do not load until the visitor uses the banner
Nothing sent
Google tags are blocked; reports use a general model at best
Full measurement
Tags load and use cookies
Advanced Tags load at once, set to denied
Cookieless pings
Tags load with consent denied and send measurements without cookies
Cookieless pings
Google uses them to estimate what consented data cannot show
Full measurement
Tags load and use cookies
- Nothing sent
- Measurements without cookies
- Full measurement
But GA4 estimates declined visits only for larger sites Daily users, drawn to scale
GA4’s thresholdConsenting daily users needed on at least 7 of the last 28 days 1,000 Example Co.All its visitors on a typical day 150 FictionalGA4 also needs at least 1,000 events a day from visitors who declined, for at least 7 days. Below the thresholds, declined visits are not reported at all.
Show the numbers as a table| Measure | Daily users |
|---|---|
| Consenting daily users GA4 needs before it estimates declined visits (on 7 of the previous 28 days) | 1,000 |
| Example Co.’s visitors on a typical day (fictional) | About 150 |
Google for Developers, consent mode overview[20]; Google Analytics Help, behavioral modeling for consent mode[2]. Simplified; not legal advice. Example Co.’s traffic is from Step 5 of the running case and is fictional; bars drawn to scale.
- European Union. The EU’s data protection regulators say tracking pixels and tracking information added to links fall under the ePrivacy rule that requires consent unless an exemption applies[22], and that scrolling or swiping through a page is not valid consent[23].
- California. Businesses covered by the CCPA must treat opt-out signals such as Global Privacy Control as a request to opt out of the sale or sharing of personal information. The law covers businesses above certain thresholds, such as annual revenue of $26.625 million or more from January 1, 2025[24].
Do you need server-side tagging? Not at first. Server-side tagging processes data “on a server you control, rather than in the user’s browser”, which gives more control over what is sent to vendors. Google recommends at least two server instances, each costing about $45 a month[25],[26]. In practice, consider it once you run significant paid media or need tighter control of data sent to ad platforms.
What Apple’s documentation and Meta’s filings show
Consent rules are one reason your numbers will be incomplete. Platform changes are another. Apple’s developer guidance says: “In iOS 14.5, iPadOS 14.5, and tvOS 14.5 or later, you need to receive the user’s permission through the App Tracking Transparency (ATT) framework in order to track them or access their device’s advertising identifier.” Apple defines tracking as “the act of linking user or device data collected from your app with user or device data collected from other companies’ apps, websites, or offline properties for targeted advertising or advertising measurement purposes”[27].
Meta, one of the largest sellers of ads, described the effect in its annual reports to the SEC. Its 10-K for 2021 says: “In 2021, Apple made certain changes to its products and data use policies in connection with changes to its iOS operating system that reduce our and other iOS developers’ ability to target and measure advertising.” It adds: “our advertising revenue in the second half of 2021 was negatively impacted by marketer reaction to targeting and measurement challenges associated with iOS changes”[28]. Its 10-K for 2022, after describing Apple’s changes and its own privacy-related product changes, says: “These developments have limited our ability to target and measure the effectiveness of ads on our platform and negatively impacted our advertising revenue”[29].
These are what the documents say, not an account of how either company made its choices internally. For a startup, I read them this way: the conversions an ad platform reports will be fewer than the ones that happened, and that gap will not close by itself. The answer is data you own: events collected with consent, and CRM stages you send back yourself (Step 6).
1 Apple, iOS 14.5 and later
“you need to receive the user’s permission through the App Tracking Transparency (ATT) framework in order to track them or access their device’s advertising identifier”
2 Meta, 10-K for 2021
“our advertising revenue in the second half of 2021 was negatively impacted by marketer reaction to targeting and measurement challenges associated with iOS changes”
3 Meta, 10-K for 2022
“These developments have limited our ability to target and measure the effectiveness of ads on our platform and negatively impacted our advertising revenue”
My takeaway Platforms will report fewer conversions than happened. Build on data you own: consented events and CRM stages (Step 6).
Quoted from Apple’s “User Privacy and Data Use” page[27] and Meta’s Form 10-K filings for 2021[28] and 2022[29]. What the documents say, not an account of how either company made its choices internally.
Example Co., step 5 Fictional
Example Co. sells mainly in the US but gets visitors from Europe, so it adds a consent banner connected to consent mode before launch and chooses to honor Global Privacy Control signals. With about 150 visitors a day, it is far below the 1,000 consenting daily users GA4 needs before it estimates anything, so visits from people who decline simply go uncounted. It postpones server-side tagging until paid media is a larger share of its budget. When it compares LinkedIn’s reported conversions with its own CRM, it treats the CRM as the record. Fictional choices; not legal advice.
Do this
Set up consent before the first campaign goes live, and decide now which system is your record of truth for leads and customers. For most B2B startups, that is the CRM.
Step 6: Connect website tracking to your CRM
Two connections let you measure pipeline and revenue by source, not only form fills:
- Capture the source on the form. Store UTM values and the Google click ID in hidden form fields, and save them to the lead record in your CRM. This is common practice, not a Google rule.
- Send CRM stages back. GA4’s Measurement Protocol records “server-to-server and offline interactions” such as a lead becoming qualified; Google says it is meant to augment, not replace, tag-based collection[30]. For Google Ads, enhanced conversions for leads uses hashed customer data to match later outcomes to ad clicks[31].
1 The form captures it
Book a demo
Work email
Company
Hidden fields
- utm_source linkedin
- utm_medium paid_social
- utm_campaign 2026q4_guide_launch
- gclid (empty: not a Google Ads click)
- client_id 123456.7654321
2 The CRM keeps it
Lead record
- First-touch source linkedin / paid_social
- Campaign 2026q4_guide_launch
- GA4 client ID 123456.7654321
3 Sales moves the stage
New Qualified Won
4 GA4
Measurement Protocol
The CRM’s server sends qualify_lead, then close_convert_lead
4 Google Ads, if you run it
Enhanced conversions for leads
Hashed customer data from the form matches the outcome to the ad click
What the CRM sends when a lead is qualified One request, from the server
POST /mp/collect?1 measurement_id=G-XXXXXXXXXX &api_secret=API_SECRET HTTP/1.1
Host: www.google-analytics.com
Content-Type: application/json
{
"client_id": 2 "123456.7654321",
"events": [
{ "name": 3 "qualify_lead" }
]
} - 1 The measurement ID and API secret go in the URL. Keep the secret on the server, never in browser code.
- 2 The client ID saved from the hidden form field, so GA4 can match the event to the visitor.
- 3 A Google-recommended lead event. Send it when the stage changes: events can be dated at most 72 hours back.
5 Report by source: qualified demos and signed contracts per channel, not downloads.
Example Co.’s loop from Step 6; fictional, and the client ID is Google’s own example value. Request format: Google for Developers, Measurement Protocol[3]; enhanced conversions for leads: Google Ads Help[31]. Capturing the source in hidden fields is common practice, not a Google requirement.
The Lead Management Playbook covers the stages to send.
Example Co., step 6 Fictional
Every demo form stores the UTM values and click ID in the CRM. When the account executive marks a lead qualified, and again when a contract is signed, the CRM sends qualify_lead or close_convert_lead to GA4. After one quarter the team can compare channels by qualified demos and signed contracts, not downloads. Suppose LinkedIn ads bring most checklist downloads but the partner webinar brings more qualified demos per visit: that is the kind of answer form fills alone would hide. The numbers and outcome are illustrative.
Do this
Add hidden UTM fields to every form this week, even if you send nothing back to GA4 yet. Sources you do not capture now cannot be added later.
How do I connect website forms to my CRM, step by step?
To connect a startup website to its CRM so every lead keeps its source, capture each visitor’s source when they land, pass it through hidden form fields into the CRM, then send CRM stage changes back to Google Analytics 4 (GA4).
- Capture the source on arrival. A small script reads the UTM parameters and the Google click ID (gclid) from the page URL. Store first-touch values once and never overwrite them; overwrite last-touch values on every new tagged visit. Store them only where your consent settings allow (general information, not legal advice).
- Add hidden fields to every form. Include utm_source, utm_medium, utm_campaign, gclid, landing page, first-touch source and the GA4 client ID. Google’s tag API reads the client ID with the
getcommand, for examplegtag('get', 'G-XXXXXXXXXX', 'client_id', callback), and can also returnsession_id[32]. - Map fields to CRM properties. Create a matching property for each hidden field. Set first-touch properties to write only when empty. Copy the source onto the deal when it is created, so you can report pipeline and revenue by source.
- Send stage changes back. When a lead is qualified or a deal is won, a CRM workflow or small server function (never browser code) sends a Google-recommended lead event such as qualify_lead or close_convert_lead[5] to GA4’s Measurement Protocol. Google says “the
client_idshould match the ID generated by the Google Analytics tag on your website”, the measurement ID goes in the request URL, and the API secret “is used to authenticate your requests”[3]. Events can be backdated only up to 72 hours[3], so send each event when the stage changes, not in monthly batches. Google plans no deprecation of the protocol but recommends its Data Manager API for new server-to-server integrations[3]. Figure 7 shows the request. - Check it works. Submit a test form from a tagged link and confirm every field reached the CRM. Test events on Google’s validation server first: the production endpoint “does not return HTTP error codes, even if an event is malformed”, and validation events “don’t show up in reports”[33].
Common mistakes: overwriting first-touch data, and forms embedded from another tool in an iframe, which cannot read your page’s URL unless you pass the values in. Each month, check the share of new leads with a blank source; if it rises, something broke.
At Seed, the first three of these steps are enough. Add the fourth, sending stages back, once deals close often enough to compare channels.
What changes by stage?
- Pre-seed — GA4 with enhanced measurement, three to five key events, a UTM convention, 14-month retention and a consent banner.
- Seed — A written tracking plan, lead events, UTMs captured in the CRM, BigQuery export and a monthly check that tracking still works.
- Series A–B — CRM stages sent back to GA4 and ad platforms, server-side tagging if paid media is significant, and an owner for data quality.
What mistakes should I avoid?
- Tagging before planning. You end up with events no one uses.
- Mixed-case or invented UTM values. Traffic splits or lands in “unassigned”.
- A non-paid medium on paid ads. Paid clicks are counted as organic social.
- Keeping retention at 2 months. You lose history in explorations and funnel reports.
- Every click as a key event. Reports stop meaning anything.
- No consent setup. Legal risk, and lost audiences in the EEA.
- Stopping at the form fill. Without CRM stages you can’t see which sources bring customers.
Related on AAJ
Articles
- Privacy and Advertising Rules for Startup Marketers: What to Check Before You LaunchThe consent and opt-out rules behind Step 5, in more depth.13 min read
- Incrementality Testing for Startups: Prove Your Ads Actually Work (2026 Guide)Test whether a channel works when platform-reported conversions fall short.13 min read
- How to Choose a CRM for Your Startup (Without Getting Overwhelmed)Pick the CRM that becomes your record of leads and customers in Step 6.12 min read
- Modern Marketing Tech Stack for Startups: What You Actually Need vs. What Is OverkillChoose the tools around GA4, and skip the ones you do not need yet.10 min read
Playbooks
- B2B Analytics and Attribution Playbook: 90-Day FrameworkTurn the events and sources you now collect into decisions.
- Lead Management Playbook: Score, Route and Hand Off LeadsDefine the lead stages your CRM sends back to GA4.
Templates and tools
- GA4 Tracking Plan and UTM BuilderThe tracking plan and link builder for this post, with Example Co.’s plan filled in.Free template
- Marketing KPI ReportReport the stages you track, from visits to signed contracts.Free tool
- Self-Reported Attribution CoderCode the answers buyers give to “how did you hear about us?”, for the visits analytics cannot see.Free tool
- Marketing Compliance ChecklistCheck consent and opt-out settings before the first campaign goes live.Free template
References
The superscript numbers in the article match this list.
All Google help pages and developer documents were checked on October 14, 2026; GA4 changes often, so check the current page before relying on a limit.
- Google Analytics Help. “[GA4] Data retention.” Event and user-level data kept for 2 or 14 months outside Analytics 360; the setting affects only explorations and funnel reports. support.google.com
- Google Analytics Help. “[GA4] Behavioral modeling for consent mode.” Prerequisites: at least 1,000 events a day with analytics_storage denied for at least 7 days, and at least 1,000 daily users with analytics_storage granted on at least 7 of the previous 28 days. support.google.com
- Google for Developers. “Send Measurement Protocol events to Google Analytics.” client_id and api_secret, backdating up to 72 hours, and the Data Manager API recommendation. developers.google.com
- Google Analytics Help. “[GA4] Enhanced measurement events.” Includes form_start and form_submit for form interactions. support.google.com
- Google Analytics Help. “[GA4] Recommended events.” The six lead generation events, from generate_lead to close_unconvert_lead. support.google.com
- Google Analytics Help. “Google Analytics 4 has replaced Universal Analytics.” Standard properties stopped processing hits on July 1, 2023; from the week of July 1, 2024, no access to current or historical Universal Analytics data. support.google.com
- Google Analytics Help. “About key events.” Definition of a key event. support.google.com
- Google for Developers. “Google Analytics Data API changelog.” Entry of May 6, 2024: key event dimensions and metrics replace the conversion ones. developers.google.com
- Google Analytics Help. “Mark events as key events.” Admin, Data display, Events; up to 30 key events in a standard property and 50 in Analytics 360. support.google.com
- Google Analytics Help. “[GA4] Configuration limits.” Standard property: 30 key events, 50 event-scoped and 25 user-scoped custom dimensions, data retention up to 14 months. support.google.com
- Google Analytics Help. “Event collection limits.” Event names up to 40 characters; 25 parameters per event; parameter values up to 100 characters. support.google.com
- Google Analytics Help. “Event naming rules.” Names start with a letter, use only letters, numbers and underscores, and are case sensitive. support.google.com
- Google Analytics Help. “URL builders: Collect campaign data with custom URLs.” Always use utm_source, utm_medium and utm_campaign; values are case sensitive; utm_creative_format and utm_marketing_tactic are not currently reported. support.google.com
- Google Analytics Help. “[GA4] Default channel group.” Channel rules for manually tagged traffic, the paid-medium pattern and the definition of Unassigned. support.google.com
- Google Ads Help. “About auto-tagging.” On by default for new accounts; in GA4, auto-tagging takes priority over manual tagging. support.google.com
- Google Analytics Help. “[GA4] Set up cross-domain measurement.” The _gl link parameter keeps one ID across domains. support.google.com
- Google Analytics Help. “[GA4] BigQuery Export.” Daily export limit of 1 million events for standard properties; export to a free BigQuery sandbox is possible. support.google.com
- Google Cloud. “Try BigQuery using the sandbox.” 10 GiB of lifetime storage, 1 TiB of queries a month, and tables, views and partitions that expire after 60 days. docs.cloud.google.com
- Google Analytics Help. “[GA4] Filter out internal traffic.” Internal traffic rules by IP address; data filters in Testing, Active or Inactive state; an active filter’s effect is permanent. support.google.com
- Google for Developers. “Consent mode overview.” The four consent types, and basic and advanced consent mode. developers.google.com
- Google Analytics Help. “[GA4] Verify and update consent settings in Google Analytics.” From early March 2024, without consent signals only users outside the EEA are included in audiences for linked advertising products. support.google.com
- European Data Protection Board (2024). Guidelines 2/2023 on the technical scope of Art. 5(3) of the ePrivacy Directive, version 2.0, adopted October 7, 2024: tracking pixels and tracking links, paragraphs 50 and 51. edpb.europa.eu
- European Data Protection Board (2020). Guidelines 05/2020 on consent under Regulation 2016/679, version 1.1, adopted May 4, 2020: scrolling or swiping, paragraph 86. edpb.europa.eu
- California Privacy Protection Agency. Frequently asked questions: the CCPA thresholds, including gross annual revenue of $26.625 million or more from January 1, 2025, and opt-out preference signals such as Global Privacy Control. cppa.ca.gov
- Google for Developers. Server-side tagging introduction: processing data “on a server you control, rather than in the user’s browser”. developers.google.com
- Google for Developers. Server-side tagging, Cloud Run setup guide: a minimum of 2 instances recommended, each costing about $45 a month (USD). developers.google.com
- Apple Developer. “User Privacy and Data Use.” ATT permission in iOS 14.5, iPadOS 14.5 and tvOS 14.5 or later, and Apple’s definition of tracking. developer.apple.com
- Meta Platforms, Inc. (2022). Annual report on Form 10-K for the fiscal year ended December 31, 2021. US Securities and Exchange Commission. sec.gov
- Meta Platforms, Inc. (2023). Annual report on Form 10-K for the fiscal year ended December 31, 2022. US Securities and Exchange Commission. sec.gov
- Google for Developers. “Measurement Protocol” (Google Analytics 4): records server-to-server and offline interactions, to augment automatic collection, not to replace it. developers.google.com
- Google Ads Help. “About enhanced conversions for leads.” Hashed user-provided data from site forms, matched to imported conversions. support.google.com
- Google for Developers. gtag.js API reference: the get command returns client_id, session_id and session_number. developers.google.com
- Google for Developers. Measurement Protocol, validating events: the validation server, and why the production endpoint returns no error codes. developers.google.com
More in Analytics, Experiments & Budget
Part of the Analytics, Experiments & Budget hub - see all 26 resources on this topic.
- AI agent skill: A/B Test Significance
- Free tool: A/B Test Significance Calculator
- Article: A/B Testing: The Complete Guide for Startups (Purpose, Methodology, Best Practices)
- Free tool: Marketing KPI Report