Skip to main content
TrackingConsulting
Now booking · 2–4 day turnaround

GCLID not captured · Conversion tracking

Recover 40–80% of your GCLID not captured ad revenue.

Done-for-you 1st-party server-side tracking on Meta, Google, TikTok and Microsoft. Built in 2–4 days. You own the entire stack. No monthly SaaS fees.

✓ 30-minute call · No commitment · You leave with a written remediation plan even if we’re not the right fit.

Built in 2–4 daysOne-time fee95% accuracy guaranteed400-day cookie lifetime1st-party server-side

Built on — and certified for — the platforms that matter

Stape

Pro Partner

Meta

Tech Provider

Google

Tag Manager

TikTok

Events API

Microsoft

UET Partner

LinkedIn

CAPI Partner

Pinterest

CAPI Partner

Built on the same partner stack used by enterprise DTC brands.

Ariful Islam — Founder, Tracking Consulting

Meet your consultant

Ariful Islam

Founder · 8+ years in paid media & tracking

Verified earnings

$200K+

earned on Upwork

Top Rated Plus
4.9/5 · 300+

Verify the receipts

You work directly with Arif — no SDR, no account manager.

By the numbers

No fake testimonials. Just the math.

70+

Platforms supported

Shopify · Woo · Magento · BigCommerce · 65 more

8+ / 10

Meta EMQ guaranteed

in writing — keep working free until hit

2–4d

Build to live

accurate data flowing within 7 days

$0

Monthly fees, ever

one-time fixed price · you own the stack

400d

Cookie lifetime

max RFC 6265bis allows · 57× Safari ITP

9

Ad channels covered

Meta · Google · TikTok · MS · LI · Pin · Snap · Reddit · X

95%+

Tracking accuracy

verified vs Stripe · GA4 · ad-platform reports

30 min

Free founder call

no SDR · no pitch deck · written remediation plan

Numbers from realistic engagements. Your specific recovery depends on your iOS share, ad-blocker rate, and current setup — we’ll quantify it on the call.

Real clients · real videos · real outcomes

Don’t take our word for it. Watch the receipts.

Founders, marketers, and agency owners describing the before-and-after of their GCLID not captured tracking rebuild — in their own words, on camera.

The problem

Where the click ID actually disappears

GCLID not captured-specific issues
Leak #01

The landing page redirects and the query string dies

A www-to-apex rule, a geo redirect, a trailing-slash rewrite or a CDN cache rule forwards the visitor without `?gclid=`. By the time your tags run, the page has no idea the visit came from an ad.

Leak #02

Conversion Linker never runs on the page that got the click

It's either missing from the landing page or gated behind ad_storage, so the `_gcl_aw` cookie is never written. Nothing persists, and every later page load looks like an organic visit.

Leak #03

gbraid and wbraid aren't handled at all

iOS app-to-web clicks arrive with gbraid or wbraid instead of gclid. Capture scripts that only look for the string "gclid" leave those leads with an empty field and no way to attribute them.

Leak #04

The CRM quietly truncates the click ID

A gclid can run well past 100 characters. Single-line text fields, form middleware and some URL-length limits cut it short, and a truncated ID fails on upload with "click not found."

Who this is for

Honest about who we’re a fit for.

We don’t take every project. Here’s how to tell if we’re right for you.

Good fit

You’re a great fit if…

  • You run GCLID not captured (or are migrating to it)
  • You spend $5K+/month on paid ads (Meta, Google, TikTok, Microsoft, LinkedIn)
  • Your reported ROAS doesn’t match what your bank account is saying
  • You want to own your tracking stack — no monthly SaaS fees forever
  • You have 2–4 days to do this once and never think about it again
Not a fit

Skip us if…

  • You spend less than $500/month on paid ads (browser pixel is fine)
  • You want a SaaS dashboard with monthly fees forever (Triple Whale, Hyros)
  • You need attribution modeling — we fix the data foundation, not multi-touch reports
  • You want a 6-month enterprise consulting engagement (we ship in 4 days)
  • You expect us to manage your ad accounts (we don’t — that’s a different service)

If you’re still unsure, book the call anyway — we’ll tell you straight whether we can help.

Our position

If your reported ROAS disagrees with your bank account, you don’t have an attribution problem. You have a data foundation problem. No SaaS dashboard fixes that — only a rebuilt 1st-party server-side stack does.

Ariful Islam — Founder
The outcome

What changes once the click ID survives the whole path

Paid sessions stop getting filed as Direct

Server-side

With the query string and referrer intact through the redirect chain, GA4 attributes the session to google / cpc instead of dropping it into Direct / (none).

Every lead record carries the click that created it

8+ EMQ

gclid, gbraid or wbraid lands on the contact record in full, with the click timestamp and landing page next to it — which is exactly what an offline upload needs months later.

Enhanced Conversions has a fallback when the cookie is gone

Deduped

For the visitors where the cookie genuinely can't survive — ITP, denied consent, a browser wipe — hashed email and phone go up with the conversion so Google still has something to match on.

Smart Bidding stops guessing which clicks turned into leads

Backend-verified

Attribution stops depending on last-touch guesswork. The campaign, keyword and device behind each lead are recorded at the moment of the click, not reconstructed afterwards.

The full transformation report

Before vs after — built in 2–4 days, accurate data within 7 days

We deliver the 1st-party server-side stack in 2–4 business days. Each metric below measured 7 days pre-launch vs 7 days post-launch using your own ad-platform reports + Stripe + GA4. No 30-day waiting game.

Attribution accuracy

  • Reported ROAS vs Stripe match
    Before60% (35% drift)
    After95%+ match
  • iOS conversion match rate
    Before~58%
    After~92%
  • Cross-domain click-ID retention
    Before~40%
    After~95%
  • Server-attributed conversions
    Before0%
    After100%

Audience quality

  • Meta Event Match Quality
    Before4.5 / 10
    After8+ / 10
  • Cookie lifetime (Safari)
    Before7 days (ITP cap)
    After400 days (max allowed)
  • Lookalike seed-list size
    BeforeShrinking as signal decays
    AfterRebuilt from server-side matches
  • Identity match params sent
    Before1–2 (email maybe)
    After9 (email · phone · IP · UA · click_id · etc.)
  • Retargeting list health
    BeforeDecaying
    AfterCompounding

Bidding performance

  • Smart Bidding stability
    BeforeRetraining weekly
    AfterLocked-in
  • CPA trend
    BeforeDrifts up as signal degrades
    AfterBidding learns from complete data
  • ROAS variance week-over-week
    Before±35%
    After±5%
  • Conversion volume Meta sees
    Before65%
    After95%+

Compliance & ownership

  • GDPR / CCPA audit-ready
    BeforeWeak
    AfterAudit-clean
  • Consent Mode v2 wiring
    BeforeNot configured
    AfterFully wired + verified
  • 3rd-party cookie deprecation ready
    BeforeNo
    AfterYes
  • Data ownership
    BeforeVendor-locked
    After100% yours

Server-side

money events from your backend

8+ / 10

Meta EMQ guaranteed

95%+

tracking accuracy

A typical engagement

The shape of a typical GCLID not captured rebuild

We’re not going to invent a fake testimonial here. Instead — here’s the realistic pattern of what happens, anonymized but accurate to engagements we ship.

Day 0 — They arrive

A 7-figure GCLID not captured store spending ~$25K/month on Meta. Reported ROAS shows 4.1× in Ads Manager. Their bookkeeper’s number says 2.6×. The founder doesn’t know which is real, so they keep doubling down on what looks like a winning campaign — except cash flow tells a different story.

Day 1 — Audit

We screen-share. Within 20 minutes we’ve found the leaks: native pixel firing twice on iOS, CAPI dedup using the wrong event_id (Meta is double-counting), GA4 showing 38% (not set), and the Customer Events API never enabled. The 1.5× ROAS gap explains itself.

Day 2–3 — Build

Server-side GTM container goes live on data.theirstore.com. Meta CAPI rebuilt with full advanced matching. Google Enhanced Conversions wired. TikTok Events API turned on. All event_ids deterministic. iOS recovered.

Day 4 — Launch

Live-fire test purchases through every funnel step. Meta Event Match Quality goes from 4.5 to 8.7 — verified live in Events Manager. They get a Notion runbook + Loom walkthrough so their dev team can extend it.

Day 5–7 — Accuracy

Conversion data starts flowing cleanly. Day 7: reported ROAS reads 2.8× (matches Stripe within 5%). Lookalike audiences grow because Meta finally has clean seed data. Their CAC dashboard makes sense for the first time in a year.

Day 30 — The math compounds

Smart Bidding has 30 days of clean signal. CPA drops 18%. They scale Meta budget 40% because they finally trust the data. Net new revenue from the recovered tracking: roughly $14K/mo above what they were getting before.

Numbers above are realistic averages from engagements we’ve shipped. Your specific recovery depends on your iOS share, ad-blocker rate, and current setup — we’ll quantify it on the call.

The cookie window unlock

400-day cookie lifetime — the longest your browser allows

Default GCLID not captured setups put cookies on a 7–30 day timer. Safari ITP caps client-set cookies at 7 days. That kills your retargeting windows, shrinks lookalike audiences, and starves Smart Bidding of historical signal.

We set 1st-party cookies via HTTP headers on your own subdomain — exempt from ITP’s 7-day cap. Lifetime: 400 days. The maximum Chrome, Firefox and Safari currently permit.

  • 57× longer retargeting window vs Safari default

    Reach users who saw your ad 6 months ago instead of last week.

  • Bigger lookalike seed pools

    More retained users in your custom audience = better lookalike quality on Meta, Google, TikTok.

  • Smart Bidding has 13× more signal history

    Algorithms optimize on 400 days of behavior, not 7 days. CPA stabilizes faster.

  • Critical for high-AOV / long-consideration purchases

    If your average buyer takes 30+ days to convert, default cookies miss them. 400-day cookies don’t.

Cookie lifetime — head to head

How long cookies survive in real-world traffic

Safari ITP (default)7 days
Chrome / Firefox (typical)30 days
Meta default retargeting window90 days
Google Ads default cookie540 days(but capped by browser)
Our 1st-party server-side400 days

400 days is the hard maximum enforced by RFC 6265bis (Chrome 104+, Safari 17+, Firefox 110+). We set it via HTTP Set-Cookie: Max-Age=34560000 on your subdomain. Survives Safari ITP’s 7-day client-side cap.

Under the hood

What’s actually happening on your server-side stack

Six capabilities your default GCLID not captured setup doesn’t have. Built on the same Stape Pro stack used by enterprise DTC brands.

Cookie window

Cookie Keeper

400-day 1st-party cookies

Set via HTTP headers on your subdomain — the maximum browsers allow. Survives Safari ITP’s 7-day cap that kills retargeting.

Ad-block resistance

Custom Loader

Custom-loaded GTM scripts

Your gtm.js and analytics scripts load through a custom path on YOUR domain. uBlock, AdBlock Plus, Brave can’t identify them as trackers.

Attribution

Click ID Restorer

Click ID restoration

fbclid / gclid / ttclid / wbraid recovered from the URL and persisted server-side. Multi-redirect funnels stop dropping attribution. Safari user IDs restored.

Profit signal

POAS Data Feed

POAS — Profit on Ad Spend

Send actual profit data (not revenue) to Meta / Google. Smart Bidding optimizes for the metric that matters: net margin, not gross revenue.

Identity

User ID

Cross-session User ID

Stable userID generated server-side from IP + UA + SSL fingerprint. Stitches anonymous → known → returning visitors across 400 days.

Audience signal

GEO Headers

GeoIP enrichment

Country, region, city, postal code passed to Meta / Google CAPI from your server — without exposing the raw user IP to the browser.

Compliance

Anonymizer

PII hashing by default

Email, phone, name, address are SHA-256 hashed on your server before they leave for Meta or Google. Zero raw PII in transit.

Quality filtering

Bot Detection

Bot traffic detection

Bot/scraper traffic identified at the gateway and blocked from polluting your audiences. Smart Bidding optimizes against humans, not bots.

Reliability

Dedup logic

Browser ↔ server dedup

Deterministic event_id and event_time so Meta / Google never double-count. Your reported ROAS stops contradicting Stripe.

Reputation

Dedicated IP

Dedicated outbound IP

Your sGTM gets a dedicated static IP for outgoing CAPI requests. Better deliverability to Meta, Google, TikTok — no shared-IP noise.

Residency

Multi-region

EU / US region routing

GDPR-conscious stores route their CAPI traffic through EU regions (Stape EU or self-hosted GCR europe-west). No US data hop.

Data warehouse

BigQuery export

BigQuery + Looker dashboard

Server logs + GA4 raw events streamed to BigQuery. Looker Studio dashboard branded for your team. Premium tier.

We’re official Stape Pro partners — every Power-Up above is enabled and configured for you. Or we self-host the equivalent on your Cloud Run / GKE if your traffic justifies the cost crossover. You pick.

Live data flow

What your stack is doing — right now

Every conversion fires through your subdomain, gets enriched with hashed identity params, deduped against the browser pixel, then forwarded to Meta CAPI, Google EC, TikTok Events API and Microsoft UET in parallel.

You see this stream live in your sGTM debug console — not a SaaS dashboard you rent. It’s your data, on your server, on your subdomain.

  • p99 latency< 80ms
  • Avg. event payload9 identity params
  • Browser → Server dedupDeterministic event_id
  • Failure handlingRetry · queue · dead-letter
sgtm-debug · data.fix.com
streaming
10:42:18[INFO ]evt=PageView | id=ev_a3f2.. | ua=ios17 | ip_hash=ok
10:42:18[OK ]→ meta.capi status=200 emq_pred=8.6
10:42:18[OK ]→ google.ec status=200 match=enhanced
10:42:24[INFO ]evt=AddToCart | id=ev_b1c8.. | val=$84.00
10:42:24[DEDUP]browser↔server merged on event_id=b1c8..
10:42:24[OK ]→ meta.capi status=200 emq_pred=8.7
10:42:24[OK ]→ tiktok.eventsapi status=200
10:42:31[INFO ]evt=Purchase | id=ev_c9d4.. | val=$184.00
10:42:31[POAS ]profit=$58.42 sent (margin 31.7%)
10:42:31[OK ]→ meta.capi status=200 emq=8.8 ✓
10:42:31[OK ]→ google.ec status=200 ✓
10:42:31[OK ]→ microsoft.uet status=200 ✓
10:42:33[BOT ]blocked: ua=AhrefsBot · 1 evt suppressed
uptime: 99.98%all channels healthy
Every paid-media channel · 1st-party server-side

CAPI / Events API ready for every ad platform you run

One server-side gateway. Every major ad platform fed real conversion data, deduped, with full identity match.

Meta

Conversions API

Server-side

Google

Enhanced Conv.

Server-side

TikTok

Events API

Server-side

Microsoft

UET Server

Server-side

LinkedIn

CAPI

Server-side

Pinterest

CAPI

Server-side

Snapchat

CAPI

Server-side

Reddit

CAPI

Server-side

X / Twitter

Events API

Server-side
What you get

What we build into the click-ID chain

Item 01

A redirect map from ad click to form load

Every hop between the ad's final URL and the page holding the form, listed with what each one does to the query string and referrer. Most of the fix is knowing which hop to blame.

Item 02

Conversion Linker at the right scope

Fires on all pages including the landing page, and writes `_gcl_aw` at the eTLD+1 so the cookie survives www, subdomains and a checkout host.

Item 03

Capture for gclid, gbraid and wbraid

Reads all three from the URL, falls back to the `_gcl_aw` cookie, and writes into hidden form fields plus first-party storage so a later page still has it.

Item 04

Cross-domain handoff for Calendly, Stripe and HubSpot

Linker decoration on outbound links, plus a server-side fallback for destinations that don't run your container and therefore can't read the `_gl` parameter.

Item 05

A CRM field sized and mapped for the real thing

A long-text custom field on the lead or contact object, mapped from the form and tested with an actual 100-plus character click ID rather than a placeholder.

Item 06

A live-fire test on your own ad

We click your ad, walk the funnel, and show you the ID at every stage: URL, cookie, form payload, CRM record. You get the screenshots.

The honest math

Three ways to fix your tracking. One of them makes sense.

Option 1

Hire a senior tracking engineer

$15K–$25Kin dev cost

or 2–4 weeks of senior FTE time

  • 2–4 weeks before anything ships
  • Misses iOS / Safari / dedup edge cases
  • No EMQ guarantee — it’s “done” when they say so
  • Pixel debugging is not their day job

Option 2

Triple Whale / Hyros / Northbeam

$300–$2,000/month forever

$18K–$120K over 5 years

  • You rent a dashboard — they own your data
  • Cancel and you lose attribution overnight
  • Per-event / per-visitor pricing surprises
  • Still doesn’t fix your underlying tracking
Recommended

Option 3 — us

Done-for-you 1st-party server-side

$400–$1,800one-time

pay once · own the stack forever

  • Live in 2–4 days · accurate data within 7
  • iOS / Safari / dedup all handled by default
  • Meta EMQ 8+ guaranteed in writing
  • You own everything — server, container, runbook

We’re upfront: if you have a senior in-house dev with capacity and 4 weeks, hiring is fine. If you spend $1M+/yr on ads and want a SaaS dashboard layered on top, Triple Whale works. For most paid-ad advertisers between, we’re the math that makes sense.

From the founder’s desk
Ariful Islam — Founder
Available now

Ariful Islam

Founder & lead engineer

  • Experience8+ years in tracking
  • Engagements300+ DTC brands shipped
  • Specialty1st-party sGTM · CAPI
  • PartnerStape Pro · Meta Tech

“I’ll personally walk through your tracking on the call. No SDR. No sales pitch.”

I’ve spent 8 years rebuilding tracking for DTC brands, SaaS founders, agencies, and one thing I’ve learned: most tracking problems aren’t technical — they’re trust problems. You don’t know who to believe. Your current vendor swears it’s fine. Meta’s reports look great. Stripe says otherwise.

On our call, I’ll personally show you exactly what’s leaking, exactly what it would cost to recover, and whether you should hire us at all. If your current setup is genuinely fine, I’ll tell you. If a $400 browser-side fix is enough, I’ll say so. No upsell pressure.

Book the call. Worst case, you walk away with a free 47-point audit checklist. Best case, we deliver your 1st-party server-side stack in 2–4 days and your data is fully accurate within 7 days.

Arif— Founder

How it works

Built in 2–4 days. Accurate data within 7.

We deliver the entire 1st-party server-side stack in 2–4 business days. You start collecting accurate, deduped conversion data the moment it goes live — and within 7 days every signal is flowing cleanly to Meta, Google, TikTok and the rest.

1Day 1

Kickoff + audit

30-min call. We map your current pixels, GTM, dataLayer, consent setup, and ad-platform integrations. You get a written report of every leak.

2Day 2–3

Build the stack

Server-side GTM container deployed on your subdomain. Meta CAPI · Google EC · TikTok Events API · Microsoft UET wired. Identity match + dedup configured.

3Day 4

QA + go-live

Live-fire test purchases across every funnel step. Meta EMQ verified at 8+. Tag Assistant + Pixel Helper passes. Side-by-side report delivered.

4Day 5–7

Verify accuracy

Your data flows clean. Within 7 days every signal — Meta, Google, TikTok, Microsoft — is fully accurate. Notion runbook + Loom walkthrough handoff.

Diagnose it honestly

Some Direct traffic is normal. Direct beating paid clicks isn't.

Before anyone rebuilds anything, separate the two things that look identical in a GA4 report: attribution behaving the way it's designed to, and a click ID being physically destroyed on arrival. Only one of them is worth paying to fix.

Normal — not a fault

  • Google Ads clicks outnumber GA4 paid sessions

    Someone taps the ad and leaves before the tag loads. That's a billed click with no session, and a steady gap in that direction is arithmetic. Ads counts clicks; GA4 counts sessions that survived long enough to be counted.

  • Some Direct traffic exists on every account

    Typed URLs, bookmarks, desktop email clients, in-app browsers that strip the referrer, PDFs and QR codes all land as Direct / (none). Direct isn't supposed to be zero, and chasing it to zero wastes a week.

  • gclid disappears from the URL after the first page

    The parameter belongs to the landing URL only. Once Conversion Linker writes `_gcl_aw`, clean URLs on every page after that are the design working. Check the cookie, not the address bar.

  • Auto-tagged paid URLs carry no utm parameters

    Google Ads auto-tagging uses gclid, not utm_source. A paid landing page with a gclid and no UTMs is correctly tagged. Bolting UTMs on top is what usually creates the mismatch people then come to us about.

Actually broken

  • Direct outruns google / cpc on a heavy-spend account

    When Direct / (none) is the largest channel in GA4 while most of the budget goes to Search, the click ID is being destroyed on arrival. That's a redirect or a consent gate, not customer behavior.

  • The gclid is in the ad URL and gone after landing

    Click your own ad and watch the address bar. If `?gclid=` is present on the click and absent once the page paints, a 301, a 302 or a CDN rule stripped the query string before any tag could read it.

  • iOS leads have an empty click-ID field, desktop doesn't

    Desktop leads carry a gclid, iPhone leads carry nothing at all. That is a capture script written to look for the literal string "gclid" and nothing else, so gbraid and wbraid land nowhere.

  • Offline uploads reject rows with "click not found"

    The ID was stored, then truncated by a single-line CRM field or a URL length limit somewhere in the middleware. A gclid that stops mid-string is not a gclid, and Google says so on every row.

Diagnostic sequence

Twenty minutes and one test parameter tells you which hop is guilty

You can run all of this yourself on a live site without touching GTM, and it will usually name the culprit before you call anyone.

  1. 1

    Load your landing page with a fake gclid attached

    Open `https://yoursite.com/your-landing-page?gclid=TEST12345` in a fresh incognito window and watch the address bar settle. If the parameter is gone, a redirect is eating it and nothing downstream can save you.

  2. 2

    curl the URL and read every Location header

    Run `curl -sIL "https://yoursite.com/your-landing-page?gclid=TEST12345"` and look at each hop. The first Location value that has no `gclid=` on it is your culprit, and it's a server config fix, not a tag fix.

  3. 3

    Look for the _gcl_aw cookie in DevTools

    With the test parameter still on the URL, open Application then Cookies. If there's no `_gcl_aw` on your own domain, Conversion Linker either isn't firing on that page or is being held behind ad_storage.

  4. 4

    Submit the form yourself and inspect the payload

    Fill in the form with an obvious test name, then find the POST request in the Network tab. If the hidden click-ID field is empty, or shorter than what was in the URL, the break sits between the page and the form.

  5. 5

    Open that test lead in the CRM and count characters

    Paste the stored click ID into any character counter and compare it to the value from the URL. Truncation is silent at every other layer and only ever becomes visible here.

  6. 6

    Repeat the whole test once on an iPhone

    Same walkthrough with `?gbraid=TEST12345` instead. If desktop stores the value and iOS stores nothing, your capture script predates gbraid and wbraid and is ignoring the traffic Apple sends you.

Source-of-truth validation

How we prove a click ID survives the whole trip

Every claim we make about the click chain gets checked against two records neither of us controls: Google's click data and your own lead records. If they disagree, we say so.

Source of truthGoogle Ads click data · your CRM lead records
  • Click a live ad on desktop and on an iPhone, then follow that exact ID through URL, cookie, form payload and CRM record.
  • Confirm the stored click ID is character-for-character identical to the one in the landing URL, tested with a full-length value.
  • Compare Google Ads clicks to GA4 google / cpc sessions for the same window and confirm the gap is direction-correct and stable.
  • Confirm Direct / (none) drops back to a plausible share once the redirect chain preserves the query string end to end.
  • Match a week of CRM leads to Google Ads click data: every paid lead should carry a gclid, gbraid, wbraid, or a hashed fallback.
  • Run a test offline upload of ten stored click IDs and confirm zero rows come back with click not found.

Straight talk

When capturing the click ID isn't worth engineering

The click ID has to actually travel somewhere before it's worth paying to protect the trip.

  • You're not running Google Ads yet. There is no click ID to capture, and every fix on this page solves a problem you don't have.
  • One domain, no redirects, form on the landing page, conversion in the same session. Check GTM Preview once — you are probably already fine.
  • Your redirect is deliberate and already preserves the query string. If curl shows gclid on every hop, the leak is somewhere else entirely.
  • Every conversion completes in-session and you never upload offline. Auto-tagging plus Enhanced Conversions may already cover you.

Got questions?

The honest answers.

No buzzwords, no upsell. If we don’t know, we say so.

01Can I fix this myself?

Sometimes, and I'd rather you tried first. One domain, one landing page, no redirect, form on the same page: adding the Conversion Linker tag in GTM and a short script that copies gclid, gbraid and wbraid into hidden fields is genuinely an afternoon's work. It stops being a DIY job when the click has to survive a redirect chain, a third-party form in an iframe, a checkout on another host, or a CRM that truncates without telling you. Most of our hours on this go to tracing, not to writing code.

02Why is my paid traffic showing up as Direct in GA4?

Usually a redirect. A server-side 301 or 302 forwards the visitor to the destination without the query string, and depending on the setup it can drop the referrer too. GA4 sees a page load with no gclid, no utm and no referrer, and Direct / (none) is the only bucket left. The fix is either preserving the query string through the redirect or removing the hop entirely.

03Does this mean we're losing revenue?

No, and I want to be precise about that because the distinction matters. The leads and orders still happen. What you've lost is the record of which click caused them. The real cost is downstream: Smart Bidding optimizes against an incomplete picture, you can't tell which campaigns produce customers versus tire-kickers, and offline uploads have nothing to key on.

04What are gbraid and wbraid, and why do I need them?

They're the parameters Google issues instead of gclid when Apple's App Tracking Transparency rules apply — typically iOS clicks that started in an app like YouTube or Search. gbraid is app-to-web, wbraid is web-to-web on iOS. They behave differently from gclid on upload, and a capture script written before 2021 usually ignores both.

05We already run Enhanced Conversions. Isn't that enough?

They solve different problems. Enhanced Conversions helps Google match a conversion it already knows about to a click it recorded, using hashed email and phone. It does not give you a click ID to store on a CRM record and upload three weeks later when the deal closes. If your sales cycle outlives the session, you need both.

06Will this recover the conversions we already lost?

No. Google accepts click conversions inside a 90-day window and only for click IDs that were actually stored somewhere. If the ID was never captured, there's nothing to upload. Everything we build works from the day it goes live forward — the honest framing is that you're stopping the leak, not refilling the tank.

07When do we NOT need this?

If you run a single domain with the form on the landing page, no redirects, and the conversion completes in the same session, your setup probably already works — check it in GTM Preview before you hire anyone. Same if you're spending a few hundred dollars a month on one manual-CPC Search campaign. The click ID has to travel before it's worth engineering the trip.

Still have questions? Book a 30-min call — bring them all.

The call

What happens on your free 30-min call

No pitch deck, no SDR, no upsell pressure. Founder-led. Bring your ad-platform screens and your GCLID not captured setup — we’ll work through it together.

Min 1–5

We get the lay of your store

What you sell, what you spend on ads, who handles dev. Quick context-gathering — no questionnaire upfront.

Min 5–15

We audit your tracking live

Screen-share. We open your Meta Events Manager, GTM, and ad reports. You see exactly which conversions are leaking.

Min 15–25

We map a fix

What needs rebuilding, what stays. The exact GCLID not captured setup we'd ship and what it would recover for you.

Min 25–30

Decide. Or don’t.

If we're a fit, we send a 1-page proposal in writing. If not, you walk away with a free remediation plan you can hand to anyone.

No pitch deckFounder-led, not SDRYou leave with a written planZero commitment
Free · 30 minutes · No commitment

Send me one ad URL and I'll tell you where the click ID dies

No form-fill theater. I'll click your live ad, follow the parameter through the redirect chain, and send back the hop that's eating it — whether or not you hire us for the rebuild.

Free · 30-min consultation · No commitment · Replies in under 2 hours · Available worldwide via WhatsApp

95% guarantee · fixed-fee