EXPIRED_GCLID
The GCLID has expired because the click is older than 90 days. Learn why GCLIDs expire, how to handle long sales cycles, and alternatives like Enhanced Conversions for Leads.
Common Causes
| # | Cause | Likelihood | Details |
|---|---|---|---|
| 1 | Sales cycle exceeds 90 days | Very Common | For B2B, enterprise, or high-consideration purchases, the time from ad click to closed deal often exceeds 90 days. The GCLID expires before the conversion can be uploaded. |
| 2 | Delayed pipeline processing | Common | Your data pipeline has a backlog or runs infrequently. By the time conversions are processed and uploaded, the 90-day window has passed. Common with manual CSV exports done monthly. |
| 3 | Historical data backfill attempt | Common | You're trying to upload historical conversions from before you started tracking. Any conversion with a click date more than 90 days ago will be rejected. |
| 4 | Timezone miscalculation | Less Common | The 90-day window is calculated from the click timestamp. If your conversion time uses a different timezone than expected, edge cases near the 90-day boundary may fail unexpectedly. |
What It Means (Plain English)
The GCLID you submitted corresponds to a click that happened more than 90 days ago. Google Ads does not accept offline conversions for clicks older than 90 days — the click data has effectively been archived and is no longer available for conversion matching.
This is a hard limit that cannot be overridden. The conversion is permanently unattributable via GCLID.
How to Fix It
Step 1: Filter Expired GCLIDs Before Upload
Add a pre-upload check to your pipeline that calculates the age of each GCLID and excludes any older than 85 days (giving a 5-day safety margin):
click_date = get_click_date_from_record(record)
days_since_click = (today - click_date).days
if days_since_click > 85:
exclude_record("GCLID will expire before processing")
Step 2: Switch to Enhanced Conversions for Long Cycles
For sales cycles approaching or exceeding 90 days, configure Enhanced Conversions for Leads. This uses hashed PII (email, phone) instead of GCLID for matching:
- Enable Enhanced Conversions in Google Ads (Settings → Conversions → Enhanced Conversions)
- Upload hashed PII alongside (or instead of) the GCLID
- Note: ECL has a 63-day lookback window — shorter than GCLID
Step 3: Upload Intermediate Funnel Events
If the final conversion takes 90+ days, upload earlier events that happen within the window:
| Event | Typical Timing | Value |
|---|---|---|
| Form Submitted | Day 0 | $0 (or estimated) |
| Qualified Lead | Day 3-7 | Estimated pipeline value |
| Proposal Sent | Day 14-30 | Proposed contract value |
| Closed Won | Day 60-120 | Actual revenue ← may expire |
Google’s Smart Bidding can optimize using earlier funnel signals even without the final revenue event.
Step 4: Increase Upload Frequency
If you’re running CSV exports monthly, switch to weekly or daily. The more frequently you upload, the less likely conversions are to age out. Automated pipelines (like TUOCA’s scheduled relays) eliminate this risk entirely.
How TUOCA Prevents This
The Upload Offline Conversions App automatically handles GCLID expiration:
- Automatic age filtering — GCLIDs older than 85 days are flagged in the activity log and excluded from the upload batch
- Scheduled relay frequency — Relays can run hourly, daily, or weekly, ensuring conversions are uploaded well within the 90-day window
- Enhanced Conversions fallback — When a GCLID is expired but hashed PII is available, TUOCA automatically uses Enhanced Conversions for matching
- Expiration warnings — Dashboard alerts when GCLIDs in your pipeline are approaching the 90-day limit