pixellint

Xandr conversion pixels need id and t

Microsoft documents id on every exported conversion pixel, with t=2 for the image pixel and t=1 for JavaScript. value=10 is valid and value=$10 is not. order_id is letters and numbers, at most 36 characters, other is at most 20, and redir is an absolute piggyback pixel URL. seg and remove are comma-separated integer segment IDs when the conversion also adds or removes segments. Cookie sync and RTB on the same hosts are not this pack. Server-side conversion is vendor/xandr-sspx.

t is 1 or 2

Microsoft documents t=1 for JavaScript and t=2 for image. A /px call with t=3 is not an exported conversion pixel.

Rule: vendor.xandr.param.t.invalid

What this pack matches

Hosts
ib.adnxs.com, secure.adnxs.com
Paths
/px
Vendor docs
learn.microsoft.com/en-us/xandr/monetize/conversion-pixels-advanced

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
id required It is the Monetize conversion pixel ID. Microsoft documents id on every exported conversion pixel. Fix: Set id to the conversion pixel ID from Monetize. vendor.xandr.param.id.missing
vendor.xandr.param.id.empty
vendor.xandr.param.id.invalid
docs
t required It is the pixel type. Microsoft documents t=1 for JavaScript and t=2 for image. Fix: Set t=2 on an image pixel, or t=1 on a JavaScript pixel. vendor.xandr.param.t.missing
vendor.xandr.param.t.empty
vendor.xandr.param.t.invalid
docs
order_id optional It is an order ID or SKU. Microsoft documents letters and numbers, with a 36 character limit. Fix: Set order_id to the order or SKU, letters and numbers only, at most 36 characters. vendor.xandr.param.order_id.empty
vendor.xandr.param.order_id.invalid
docs
value optional It is the dynamic revenue. Microsoft documents a purely numerical value, so 10 is valid and $10 is not. Fix: Set value to a number with no currency symbol, such as 10 or 10.50. vendor.xandr.param.value.empty
vendor.xandr.param.value.invalid
docs
consent optional It is binary consent when TCF signals are not available. Microsoft documents 1 for granted and 0 for denied. Fix: Send consent=1 when the user granted consent, or consent=0 when they denied it. vendor.xandr.param.consent.empty
vendor.xandr.param.consent.invalid
docs
other optional It is extra external data on the conversion. Microsoft documents letters and numbers, with a 20 character limit. Fix: Set other to letters and numbers only, at most 20 characters. vendor.xandr.param.other.empty
vendor.xandr.param.other.invalid
docs
redir optional It is a piggyback pixel URL. Microsoft documents redir as the image or JavaScript pixel to notify after conversion. Fix: Set redir to an absolute image or JavaScript pixel URL, matching the host pixel type. vendor.xandr.param.redir.empty
vendor.xandr.param.redir.invalid
docs
seg optional It adds the user to one or more segments when the conversion fires. Microsoft documents comma-separated segment IDs on the same conversion pixel. Fix: Set `seg` to one or more integer segment IDs, comma-separated, such as `12192,12304`. vendor.xandr.param.seg.empty
vendor.xandr.param.seg.invalid
docs
remove optional It removes the user from one or more segments when the conversion fires. Microsoft documents comma-separated segment IDs on the same conversion pixel. Fix: Set `remove` to one or more integer segment IDs, comma-separated, such as `23145`. vendor.xandr.param.remove.empty
vendor.xandr.param.remove.invalid
docs

Validate a payload

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

Try this failing payload in the playground. Xandr conversion pixel with t=3.

https://ib.adnxs.com/px?id=1234&t=3

cargo install pixellint · npm install pixellint