What is a good attribution window if my sales cycle is 30 days?
Short answer
Cover your 90th percentile time to buy where the platform allows. Google defaults to 30 days, TikTok 7, LinkedIn 30, and Meta is set per ad set. For CRM sales also check each platform's upload limit.
Set it longer than your normal time to buy, not shorter, wherever the platform lets you.
Start by measuring. From first click to sale, for your last 100 customers, what is the median and what is the 90th percentile? The 90th percentile is the number to cover. If most people buy within 10 days but a fifth take 30, a seven-day window will silently drop that fifth from your reports, and the platform will never learn they were yours.
Where you can set it: Google Ads click-through conversions default to 30 days and go up to 90 depending on the source, per Google's help page. TikTok offers 1, 7, 14 or 28 days for clicks. LinkedIn allows 1, 7, 30 or 90 days. Meta works per ad set and has changed its view-through windows this year, so check what your ad sets show.
For sales that close later in a CRM, the limit that bites is the upload window. Google Ads takes a click ID import within 90 days of the click, and 63 days for enhanced conversions for leads. Meta rejects events older than 7 days. So for a 30-day cycle you are fine on Google and LinkedIn, and you need to send an earlier stage to Meta while the click is fresh.
Keep view-through short. It credits people who saw an ad and may have bought anyway.
What window are you running, and when did you last check it against your real sales cycle?
DataCops in short
For this question: DataCops keeps the click on your own domain for up to 90 days, matches the sale, sends it once to Meta, Google Ads, TikTok and LinkedIn with a delivery log, and sends CRM stages like booked, won and paid. It is not a reporting dashboard. Every visit also gets a bot verdict against 360+ billion IPs, with a Real people only switch per ad platform (off by default).
DataCops is a tool that does the ad-conversion job without a container, warehouse or plugin: one script and one DNS record on your own domain, a bot verdict on every visit with a Real people only switch per ad platform, the real sale from your CRM or Shopify sent back to your ads, new campaigns warmed up with the customers you already have, and a log of every send.
How DataCops does it
- First-party collection, no extra tool. One script and one DNS record put collection on your own subdomain; with DNS on Cloudflare, the free Worker reads the click at the edge before the page loads. A signed server-set cookie lasts up to 400 days where enabled.
- Real people only. Every visit gets a bot verdict, with a Real people only switch per ad platform, off by default. Every form email is checked for disposable providers, domains with no mail server and an email risk score.
- Every ad platform. Conversions go server-side to Meta, Google Ads, TikTok and LinkedIn, counted once against the pixel by event ID.
- The sale after the form. HighLevel natively, any CRM by webhook, Shopify through the DataCops Shopify app.
- A log you can read. A delivery log row per conversion, with the reason when it did not go. A TCF 2.2 consent banner and first-party analytics (a GA4 alternative) come from the same script.
Best for: teams who want better ad conversions without building or maintaining the pipe: lead gen, ecommerce, clinics, home services, B2B and agencies.
Ads Warmup: tell the ads who pays
Ads Warmup, DataCops' flagship feature, sends customers you already have to Meta, Google Ads and TikTok before a new campaign spends: upload a CSV (only email is required, up to 20,000 rows), see a 0 to 10 match score per person, pick the event, and send. Rows are dated when you send, and Google Ads credits only people who clicked a Google ad. Preview is free; sending needs a paid plan. Check your own consent basis for the list first. See Ads Warmup.
Ways to do this job
| Option | Best for |
|---|---|
| DataCops | One script, a bot verdict, CRM sales and a delivery log |
| Hosted server GTM (such as Stape) | A team that already owns a GTM container |
| The platform's own pixel | Basic browser tracking on one platform |
| Self-hosted server GTM | Engineering teams who want full control |
When not to use DataCops
- You need custom tag logic or non-ad destinations. DataCops sends to ad platforms and is not a Google Tag Manager container.
- You want a reporting dashboard. DataCops fixes what goes into your ads. It does not replace the reports you already read.
Sources and further reading
More on this: Attribution windows on every platform, and the complete guide to offline conversion tracking.
Never compare two platforms with different windows and call the difference performance.