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
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.missingvendor.quantcast-conversions-api.param.a.emptyvendor.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.missingvendor.quantcast-conversions-api.body.name.emptyvendor.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.missingvendor.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.emptyvendor.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.emptyvendor.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.emptyvendor.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.missingvendor.quantcast-conversions-api.http.method.emptyvendor.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.missingvendor.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.missingvendor.quantcast-conversions-api.http.content_type.emptyvendor.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