pixellint

vendor/awin · vendor documented

Awin conversion pixels need merchant, amount, and ref

The fall-back image is /sread.img with tt=ns. Server-to-server is /sread.php with tt=ss and needs cks. merchant is the advertiser ID. amount is a float with a dot decimal. parts is the commission group plus amount, and multiple groups are pipe-delimited. Product-level rows are bd[n] in the AW:P shape. customeracquisition is NEW or RETURNING. basket.php is vendor/awin-basket. The MasterTag on www.dwin1.com is vendor/awin-mastertag.

Server-to-server reads need cks

tt=ss without the stored awc click checksum does not attribute. Replay it as cks on /sread.php.

Rule: vendor.awin.s2s_requires_cks

What this pack matches

Hosts
www.awin1.com
Paths
/sread.img, /sread.php
Vendor docs
help.awin.com/developers/docs/fall-back-conversion-pixel

Rules

Codes are stable. A finding in CI, MCP, or the playground lands on the same id.

Field Required What it checks Rule ids Source
merchant required It is the numeric Awin advertiser ID. The published pixel template requires it. Fix: Set `merchant` to the Advertiser ID from the Awin UI. vendor.awin.param.merchant.missing
vendor.awin.param.merchant.empty
vendor.awin.param.merchant.invalid
docs
tt required It is the tracking type. The image pixel sends `ns`; server-to-server sends `ss`. Fix: Use `tt=ns` on the image pixel and `tt=ss` on the S2S read. vendor.awin.param.tt.missing
vendor.awin.param.tt.empty
vendor.awin.param.tt.invalid
docs
tv required It is the tracking version. The published template sends `tv=2`. Fix: Set `tv=2`. vendor.awin.param.tv.missing
vendor.awin.param.tv.empty
vendor.awin.param.tv.invalid
docs
amount required It is the sale subtotal after discounts, excluding tax and shipping. Awin documents a float with a dot decimal and no thousands separator. Fix: Set `amount` to the order subtotal, such as `1083.29`. vendor.awin.param.amount.missing
vendor.awin.param.amount.empty
vendor.awin.param.amount.invalid
docs
ch required It names the last-click channel. Awin documents `aw` for Awin traffic. Fix: Set `ch=aw` for Awin last-click, or the documented channel for that conversion. vendor.awin.param.ch.missing
vendor.awin.param.ch.empty
docs
parts required It is the commission group code plus amount, such as `DEFAULT:8.33`. Multiple groups are pipe-delimited, such as `CD:11.10|DVD:14.99`. Awin documents `{group}:{amount}` as required. Fix: Set `parts` to `{group}:{amount}`, using `DEFAULT` when no group is configured. vendor.awin.param.parts.missing
vendor.awin.param.parts.empty
vendor.awin.param.parts.invalid
docs
ref required It is the unique order reference. Awin documents it as required and unique per conversion. Fix: Set `ref` to a unique, URL-encoded order identifier. vendor.awin.param.ref.missing
vendor.awin.param.ref.empty
docs
cr recommended It is the ISO 4217 currency code. The published template includes it. Fix: Set `cr` to a three-letter currency code such as `GBP`. vendor.awin.param.cr.missing
vendor.awin.param.cr.empty
vendor.awin.param.cr.invalid
docs
testmode optional Awin documents `0` for live conversions and `1` to skip processing. vendor.awin.param.testmode.empty
vendor.awin.param.testmode.invalid
docs
vc optional It is the voucher code when a discount was used. Awin documents returning the pair even when the value is empty. vendor.awin.param.vc.empty docs
cks optional It is the Awin click identifier (`awc`) on server-to-server reads. Awin documents it as required when `tt=ss`. Fix: Replay the stored `awc` value as `cks` on `/sread.php`. vendor.awin.param.cks.empty docs
customeracquisition optional It names the customer type. Awin documents `NEW` or `RETURNING` on the fall-back pixel. Fix: Set `customeracquisition` to `NEW` or `RETURNING`. vendor.awin.param.customeracquisition.empty
vendor.awin.param.customeracquisition.invalid
docs
bd[0]… optional It is one product-level tracking row on the fall-back pixel or S2S read. Awin documents `bd[n]` as `AW:P|{advertiserId}|{orderReference}|{productId}|{productName}|{productItemPrice}|{productQuantity}|{productSku}|{commissionGroupCode}|{productCategory}`. Price is a float with a dot decimal. Quantity is a positive integer. SKU and category may be blank. Fix: Send `bd[n]=AW:P|{advertiserId}|{orderReference}|{productId}|{productName}|{price}|{quantity}|{sku}|{group}|{category}`. vendor.awin.param.bd[0].empty
vendor.awin.param.bd[0].invalid
docs
p1… optional It is a custom parameter on the fall-back pixel. Awin documents `p1` through `pN` as URL-encoded GET keys. Fix: URL-encode the custom value, or drop the empty pair. vendor.awin.param.p1.empty docs
s2s_requires_cks required A server-to-server read has no `cks`. Awin documents the Awin click checksum as required when `tt=ss`. Fix: Replay the landing-page `awc` value as `cks`. vendor.awin.s2s_requires_cks docs

Validate a payload

pixellint validate url "$ARTIFACT" --rulepack vendor/awin

Try this failing payload in the playground. Awin S2S conversion missing cks.

https://www.awin1.com/sread.php?tt=ss&tv=2&merchant=1001&amount=8.33&ch=aw&parts=DEFAULT:8.33&ref=AA000001&cr=GBP&testmode=0

cargo install pixellint · npm install pixellint