pixellint

Quantcast conversion batches require event and user identity.

Quantcast conversion requests use POST /conversion?a=p-… and a JSON array. Each conversion needs an event name and a user with a populated token or external_id.

Optional timestamps accept seconds and milliseconds. Revenue uses the account billing currency. Account enablement and token authenticity require external evidence.

What this pack matches

Hosts
pixel.quantserve.com
Paths
/conversion
Vendor docs
help.quantcast.com/v1/docs/sending-conversion-events

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
a required The endpoint requires the Quantcast account ID starting with p-. vendor.quantcast-conversions-api.param.a.missing
vendor.quantcast-conversions-api.param.a.empty
vendor.quantcast-conversions-api.param.a.invalid
docs
root optional The documented request is a JSON array of conversions. Native JSON type: array. vendor.quantcast-conversions-api.body.root.invalid docs
root optional Each conversion is an object. Body scope: []. Native JSON type: object. vendor.quantcast-conversions-api.body.root.invalid docs
name required The documented event name is required and remains open. Body scope: []. Native JSON type: string. vendor.quantcast-conversions-api.body.name.missing
vendor.quantcast-conversions-api.body.name.empty
vendor.quantcast-conversions-api.body.name.invalid
docs
user required Every conversion requires user identity. Body scope: []. Native JSON type: object. vendor.quantcast-conversions-api.body.user.missing
vendor.quantcast-conversions-api.body.user.invalid
docs
user.token optional Opaque browser token. Either this or external_id is required. Body scope: []. Native JSON type: string. vendor.quantcast-conversions-api.body.user.token.invalid docs
user.external_id optional Caller identity. Either this or token is required. Body scope: []. Native JSON type: string. vendor.quantcast-conversions-api.body.user.external_id.invalid docs
user.client_user_agent optional Optional source user agent. Body scope: []. Native JSON type: string. vendor.quantcast-conversions-api.body.user.client_user_agent.invalid docs
user.client_ip optional Optional source IP literal. Body scope: []. Native JSON type: string. vendor.quantcast-conversions-api.body.user.client_ip.empty
vendor.quantcast-conversions-api.body.user.client_ip.invalid
docs
time optional Optional Unix epoch seconds or milliseconds. Neither unit nor a freshness window is guessed. Body scope: []. Native JSON type: integer. vendor.quantcast-conversions-api.body.time.invalid docs
url optional Optional source page URL. Body scope: []. Native JSON type: string. vendor.quantcast-conversions-api.body.url.empty
vendor.quantcast-conversions-api.body.url.invalid
docs
referer optional Optional referring page URL. Body scope: []. Native JSON type: string. vendor.quantcast-conversions-api.body.referer.empty
vendor.quantcast-conversions-api.body.referer.invalid
docs
event optional Optional conversion metadata. Body scope: []. Native JSON type: object. vendor.quantcast-conversions-api.body.event.invalid docs
event.labels optional Labels are an open string array. Body scope: []. Native JSON type: array. vendor.quantcast-conversions-api.body.event.labels.invalid docs
event.labels[] optional Each event label is a string. Body scope: []. Native JSON type: string. vendor.quantcast-conversions-api.body.event.labels[].invalid docs
event.order_id optional Optional order identity. Body scope: []. Native JSON type: string. vendor.quantcast-conversions-api.body.event.order_id.invalid docs
event.revenue optional Revenue is a JSON number in the account billing currency. Body scope: []. Native JSON type: number. vendor.quantcast-conversions-api.body.event.revenue.invalid docs
event.product_category optional Optional category string. Body scope: []. Native JSON type: string. vendor.quantcast-conversions-api.body.event.product_category.invalid docs
body.user_identity required Provide a populated user token or external_id. Body scope: []. vendor.quantcast-conversions-api.body.user_identity docs
method required The documented transport uses these methods. Complete HTTP capture contract. vendor.quantcast-conversions-api.http.method.missing
vendor.quantcast-conversions-api.http.method.empty
vendor.quantcast-conversions-api.http.method.invalid
docs
body required The captured entity uses this root shape. Complete HTTP capture contract. Native JSON type: array. vendor.quantcast-conversions-api.http.body.missing
vendor.quantcast-conversions-api.http.body.invalid
docs
content_type recommended The published JSON transport uses application/json. Complete HTTP capture contract. Presence diagnostic severity: warning. vendor.quantcast-conversions-api.http.content_type.missing
vendor.quantcast-conversions-api.http.content_type.empty
vendor.quantcast-conversions-api.http.content_type.invalid
docs

Validate a payload

pixellint validate request @request.json --rulepack vendor/quantcast-conversions-api

Try this failing payload in the playground. A Quantcast conversion without user identity.

{"url": "https://pixel.quantserve.com/conversion?a=p-synthetic", "method": "POST", "headers": {"Content-Type": "application/json"}, "body": "[{\"name\": \"Purchase\", \"user\": {}}]"}

cargo install pixellint · npm install pixellint