Atribu
Settings

Attribution Windows

Configure how far back Atribu looks when attributing conversions to touchpoints

Attribution windows define the maximum time between a marketing touchpoint (like an ad click) and a conversion (like a payment) for the touchpoint to receive credit.

Default windows

WindowDefaultRangeWhat it controls
Click window30 days1-365 daysHow long after an ad click can a conversion be attributed
View-through window24 hours1-168 hoursHow long after seeing an ad (without clicking) can a conversion be attributed
First-touch window90 days1-365 daysMaximum lookback period for the first-touch attribution model

How windows work

When a customer converts (e.g., makes a payment), Atribu looks back in time for touchpoints:

  • If the customer clicked an ad within the click window (default 30 days), the touchpoint gets credit
  • If the customer saw an ad within the view-through window (default 24 hours) but didn't click, the impression may get credit
  • For first-touch attribution, Atribu looks as far back as the first-touch window (default 90 days) to find the original discovery touchpoint

Example

Your click window is 30 days. A customer clicks your Facebook ad on March 1, browses your site, leaves, and comes back on March 25 to buy. The purchase IS attributed to the Facebook ad (25 days < 30-day window). If they buy on April 5, it's NOT attributed (35 days > 30-day window).

Configuring windows

Go to Settings > General (or Settings > Tracking)

Find the Attribution Windows section

Adjust the values for your business:

  • Short sales cycle (e-commerce): 7-14 day click window
  • Medium sales cycle (SaaS, services): 30 day click window (default)
  • Long sales cycle (B2B, high-ticket): 60-90 day click window

Click Save. Changes apply to future attribution calculations.

Changing windows affects ROAS

Wider windows = more conversions attributed = higher apparent ROAS. Narrower windows = fewer attributions = more conservative ROAS. Choose based on your actual sales cycle, not the number you want to see.

Best practices

  • Match your sales cycle: If most customers buy within 2 weeks, a 14-day window is more accurate than 90 days
  • Be consistent: Changing windows frequently makes period-over-period comparisons unreliable
  • Use view-through conservatively: A 24-hour view-through window means someone who saw (but didn't click) your ad yesterday gets credit if they buy today. This can inflate attribution.

Recommendation from your sales cycle

For every customer whose first payment landed in the last 12 months, Atribu measures how many days passed from their first ad to that payment. With 10 or more measured customers it recommends:

  • First touch: a window covering 80% of those customers (at most 365 days).
  • Click: a window covering the median (at most 90 days). A year-long click window would let an old click take credit from the click that closed the sale; the long tail is the first-touch window's job.

The recommendation never shortens a window. It shows above the fields with an «Apply recommendation» button, which saves exactly like «Save» and recomputes your numbers. GET /api/v1/profile/attribution-settings/recommendation returns the same measurement (scope analytics:read).

Cash window

For high-ticket sales that close long after the ad click, cash_window_days overrides the click/first-touch windows for cash conversions only. Leads and appointments always use the normal windows above; only a cash conversion checks this wider window when it is set. Leave it unset (null, the default) to use the normal windows for cash too.

API

GET / PATCH /api/v1/profile/attribution-settings read and write the same four windows this page configures. Scope: analytics:read for the GET, goals:write for the PATCH.

Get the current windows

Endpoint
GET /api/v1/profile/attribution-settings
cURL
curl -H "Authorization: Bearer atb_live_YOUR_KEY" \
  "https://www.atribu.app/api/v1/profile/attribution-settings"
JavaScript
import { AtribuClient } from "@atribu/node";

const client = new AtribuClient({ apiKey: "atb_live_YOUR_KEY" });
const settings = await client.profile.attributionSettings();
Response (200 OK)
{
  "data": {
    "click_window_days": 30,
    "view_window_hours": 24,
    "first_touch_window_days": 90,
    "cash_window_days": null
  },
  "meta": { "profile_id": "..." }
}

A profile with no attribution-settings row yet returns these same defaults — there is nothing to configure before your first change.

Update the windows

Endpoint
PATCH /api/v1/profile/attribution-settings

A partial update — send only the fields you want to change; an omitted key is left untouched. Send "cash_window_days": null to clear the override.

Every successful call queues a full-profile attribution replay, since a window change redefines which touches attach to which conversion retroactively — reported back as replay_queued (and replay_error when the replay could not be queued; the setting itself is still saved).

cURL
curl -X PATCH \
  -H "Authorization: Bearer atb_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"click_window_days": 14}' \
  "https://www.atribu.app/api/v1/profile/attribution-settings"
JavaScript
const result = await client.profile.updateAttributionSettings({
  click_window_days: 14,
});
Response (200 OK)
{
  "data": {
    "click_window_days": 14,
    "view_window_hours": 24,
    "first_touch_window_days": 90,
    "cash_window_days": null,
    "replay_queued": true,
    "replay_error": null
  },
  "meta": { "profile_id": "..." }
}

An out-of-range value answers 400 invalid_parameter, naming the field:

Response (400 Bad Request)
{
  "error": {
    "code": "invalid_parameter",
    "message": "click_window_days must be an integer between 1 and 365",
    "status": 400,
    "request_id": "..."
  }
}

Session/enrichment settings are not here

This endpoint publishes only the four windows above. Session timeout, geo/ device enrichment, channel classification, and export destinations are configured in Settings > Tracking and have no /api/v1 surface yet.

On this page