Conversions are not attributed
A step-by-step diagnosis when the advertiser reports sales that are missing, rejected or credited to the wrong partner.
Last updated 5 min read
On this page
1. Did the request arrive?#
Open Reporting → Postback log → Received for the time of the conversion and search for the order ID, click ID or the advertiser's IP.
2. The request was refused#
Hover the result to see the exact error.
3. The conversion was stored as rejected#
Open Reports → Conversions, filter Rejected, and read the status reason:
You can approve a rejected conversion manually (Reports → Conversions → select → Approve); duplicates can only be rejected.
4. Nothing in the Received log#
Failed requests are filed under the workspace their token, offer, click ID or tracking domain names, so token problems and malformed requests normally appear in Received too (filter Token missing, Invalid token, Advertiser inactive or Malformed):
- Missing or wrong token — the advertiser gets 401
token required/invalid token. Compare their token with Settings → Postback tokens (or the advertiser's own token). Regenerating a token breaks old integrations instantly. - Paused or inactive advertiser — its token gets 401
advertiser_inactive; set the advertiser active again or use the workspace token. - Malformed request — bad amount (
49,90), bad status, bad click-ID format: 400. - Pixel without click — read the
X-ArcTrack-Conversionheader of the/pxresponse in the browser.
A request that names no token, offer, click or workspace domain of yours is listed only to platform administrators (Admin → Unattributed postbacks). If nothing shows at all, the request probably never left the advertiser's system: ask for their outgoing log (URL, time, HTTP status received).
Test the advertiser's URL yourself with test=1:
curl -s "https://trackcrown.com/pb?click_id=PASTE_CLICK_ID&amount=10&token=PASTE_TOKEN&test=1"5. Credited to the wrong partner#
- Last touch (default) credits the click ID the conversion carries. If a visitor clicked partner A, then partner B, B gets it. The SDK always replaces the stored click when a new click ID arrives in the URL.
- First touch (Settings → Conversion rules) credits the SDK's
first_click_idwhen present. - Coupons: with Coupon codes win over click ids on, a valid coupon credits the coupon's partner even when a click exists.
- Organic: an organic click stored earlier is replaced by any later partner click.
- E-mail ownership: a click-less postback with
email(and noaff_id) is credited to the partner who first converted that address on the offer.
6. Pixels and cookies#
Pixels lose conversions when the browser blocks the request or the click ID is not on the thank-you page:
- Install the landing-page SDK on the advertiser's site so the click ID is stored on their own domain.
- Use the JavaScript pixel (
/px.js): it reads the SDK's stored click ID automatically. - Prefer an S2S postback for anything that matters.
- If you renamed Click ID parameter name in Settings → Workspace, set
data-paramon the SDK tag to the same name.
7. Google Ads parallel tracking#
With parallel tracking the visitor's browser goes straight to the final URL; Google calls the tracker in the
background. The browser never passes through the tracker's redirect, so our click ID is not in the landing-page
URL — Append the click ID to transparent redirects only helps when the redirect runs in the browser (sequential
tracking). Join by gclid instead: install the SDK (it calls /lp with the gclid and stores the click ID) or send
gclid on the postback.