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.
What this pack matches
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.missingvendor.awin.param.merchant.emptyvendor.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.missingvendor.awin.param.tt.emptyvendor.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.missingvendor.awin.param.tv.emptyvendor.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.missingvendor.awin.param.amount.emptyvendor.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.missingvendor.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.missingvendor.awin.param.parts.emptyvendor.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.missingvendor.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.missingvendor.awin.param.cr.emptyvendor.awin.param.cr.invalid |
docs |
testmode |
optional | Awin documents `0` for live conversions and `1` to skip processing. | vendor.awin.param.testmode.emptyvendor.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.emptyvendor.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].emptyvendor.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