Direct traffic in Google Analytics is every visit GA4 cannot tie to an earlier source, and most of it costs your Google Ads account nothing. The expensive part is a booking that sits only on Direct paths, because an account bidding on imported GA4 key events never learns from it. So I rank Direct's causes by what each takes from Google Ads, not by session count.
GA4 behavior and menu names checked against Google's help pages on October 2, 2026.
Direct, Unassigned or (not set): which one are you looking at?
| Label | What GA4 received | Example at a booking business |
|---|---|---|
| Direct | No information about the referral source (traffic sources), and no earlier source for that browser in the lookback | An untagged reminder text opened in a browser with no other visit |
| Unassigned | Data that no default channel rule matches (channel rules) | A reminder link tagged utm_medium=reminder |
| (not set) | No source / medium, because session_start is missing; channel reports show Unassigned (answer 13504892) | A banner that calls default after the patient accepts, instead of update |
Conversions GA4 never saw at all are a separate reconciliation.
Which Direct visits cost Google Ads nothing?
Most of them, by three rules in GA4's help:
- Key event credit. "All attribution models exclude direct visits from receiving attribution credit, unless the path to key event consists entirely of direct visits." (answer 10596866)
- Session channel. In Google's session-scoped example, "Sessions initiated by direct entrance are attributed to the UTM values for that user." (answer 11080067)
- The window. "The key event lookback window you choose also applies to session attribution": 90 days by default for a booking key event, and 30 for
first_visit. (answer 10597962)
So Direct costs the ad only where GA4 cannot link a booking to the browser that clicked, and the Direct share alone says little about bidding.
Which causes of Direct cost a booking business the most?
The table ranks causes by what they take from two ways a booking reaches Google Ads: an imported GA4 key event and an upload keyed on a click id captured at the form.
| # | Cause | GA4 key event import | Upload on a captured click id |
|---|---|---|---|
| 1 | Booking step on a scheduling vendor's domain | Lost: new user and session at the last step | Lost unless the click id reaches the vendor's form |
| 2 | Booking sent from your server without the browser's client_id | Lost for every booking | Unaffected |
| 3 | Banner calls default where it should call update | Lost for those sessions | Kept if your consent policy lets the form store it |
| 4 | New browser identity: cleared cookies, another browser, a second device | Lost | Kept while the stored click id survives, never across browsers or devices |
| 5 | Untagged links and QR codes, bookmarks, typed visits | Nothing lost; a reminder page that re-fires the booking event adds a false one | Nothing lost, when uploads key on booking creation |
Vendor booking step. It takes every booking through that step. Without cross-domain measurement, "new cookies with new IDs are created for each domain a user visits" (cross-domain measurement), so the booking lands on a user with no ad click. The fixes are in a GA4 audit for leads that close offline.
Server event. A Measurement Protocol booking needs a client_id that "should match the ID generated by the Google Analytics tag on your website" (sending events); one the server makes up is a new user. To carry the session's source and medium, it also needs the browser's session_id, sent within 24 hours of the session start (session attribution).
Consent call. When a banner calls default after the patient accepts instead of update, "the user_engagement event isn't sent, and the initial event with the session_start parameter is lost" (answer 13504892).
Identity break. On websites, GA4's device ID "gets its value from the client ID" (reporting identity), so a new browser or device is a new user, and tags cannot repair that. At a medical practice I would not stitch these breaks with GA4 User-ID, a stable patient-level key that a HIPAA-conscious design keeps out of marketing tools.
How do I split Direct into its causes in GA4?
Check 1: Is Google Ads linked, with auto-tagging on?
Check 2: Which channels can take credit?
Check 3: Which hostnames does Direct land on?
Check 4: Is Direct an identity break?
Check 5: What sits in Unassigned?
reminder or text is a naming fix. For a booking under (not set), check the consent call (cause 3) and the session_id on any booking your server sends (cause 2).Check 6: Do Direct-only paths hold bookings?
Check 7: Is today's baseline annotated?
Before you tag Business Profile and reminder links
A profile link tagged utm_medium=organic lands in Organic Search ("Medium exactly matches organic" in the channel rules), and under Paid and organic channels that click can take part or all of the credit for a booking the ad started (attribution models). The import then drops while the calendar holds still, so annotate the date first.
Tag reminder links utm_medium=sms, which the SMS rule matches, and stop the reminder page from firing the booking key event, or its re-fires become an SMS row that looks like a booking channel. A reminder vendor's own utm_medium=reminder usually lands in Unassigned.
What does Direct do to Smart Bidding?
An office that books on a vendor's hosted page can read as zero to an account bidding on the GA4 import, so the bidder learns only from offices that book on the practice's own site. Fixing that step repairs the report, but the lasting fix is to demote the import to secondary and bid on kept appointments uploaded on their click id; the system I delivered sends Google only a click id, a conversion value and a timestamp, none of which depends on how GA4 labels a session.
Tags
Frequently asked questions
What does direct mean in Google Analytics 4?
Direct is the label GA4 gives a session when no information about the referral source is available: no click id, no UTM tags, no referrer, and no earlier source for that browser inside the lookback window. Google describes it as a saved link or a typed address, but any untagged link that arrives without a referrer lands there too.
If someone clicks my ad and later comes back by typing my URL, is that direct traffic?
Not if they return in the same browser inside the lookback window, which is 90 days by default for most key events. GA4 gives that session the ad's source, and every attribution model skips the direct visit when it credits a booking. It becomes Direct only when GA4 cannot recognize the browser, for example after cookies are cleared or when the booking happens on another domain.
Does a high direct traffic share hurt Google Ads Smart Bidding?
Not by itself. A Direct visit that follows an ad click in the same browser costs the ad nothing, so the share mostly describes your reports. What hurts bidding, in an account that bids on a GA4 key event import, is a booking that sits only on Direct paths, because the import has no ad click to credit it to. Bidding on a click-id upload instead removes that dependency.
Should appointment reminder texts carry UTM tags?
Yes, with utm_medium=sms, which GA4's default SMS channel rule matches, so those visits stop landing in Direct. Then check that the page a reminder opens never fires the booking key event, or a reschedule will count as a new booking.