pixellint

Quora Conversion API events need account_id and a PixelCategory name

Quora documents POST /ads/v0/conversion on api.quora.com. account_id is the Ads account. conversion.event_name is one of the PixelCategory names such as Purchase or Generic.

conversion.click_id is the qclid from the landing URL. Events without it are accepted but cannot be attributed to a click. Browser pixels on q.quora.com have no published query table, so they stay directory-only.

account_id is required on the Conversion API request

Quora documents account_id as required. A payload that only carries conversion.event_name is incomplete.

Rule: vendor.quora-conversions-api.body.account_id.missing

What this pack matches

Hosts
api.quora.com
Paths
…/ads/v0/conversion…
Vendor docs
quoraadsupport.zendesk.com/hc/en-us/articles/23065751885069-Conversion-API-Overview

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
account_id required It is the Quora Ads account id. Quora documents it as required on the Conversion API request. Evidence: vendor template. Native JSON type: number. Fix: Set `account_id` to the Ads account id from Quora Ads Manager. vendor.quora-conversions-api.body.account_id.missing
vendor.quora-conversions-api.body.account_id.empty
vendor.quora-conversions-api.body.account_id.invalid
docs
conversion.event_name required It is the conversion event name. Quora documents a fixed PixelCategory set on the Conversion API. Native JSON type: string. Fix: Use a documented name such as `Purchase` or `Generic`. vendor.quora-conversions-api.body.conversion.event_name.missing
vendor.quora-conversions-api.body.conversion.event_name.empty
vendor.quora-conversions-api.body.conversion.event_name.invalid
docs
conversion.click_id recommended The official server-side template documents that events without qclid are accepted but cannot be attributed to an ad click. Native JSON type: string. Fix: Send `conversion.click_id` as the `qclid` from the landing-page URL or `quora_qclid` cookie. vendor.quora-conversions-api.body.conversion.click_id.missing
vendor.quora-conversions-api.body.conversion.click_id.empty
vendor.quora-conversions-api.body.conversion.click_id.invalid
docs
conversion.event_id optional It identifies the event so Pixel and CAPI can deduplicate. Quora documents sharing the same `event_id` across both. Native JSON type: string. Fix: Send a stable `conversion.event_id` on both the pixel and the Conversion API call. vendor.quora-conversions-api.body.conversion.event_id.empty
vendor.quora-conversions-api.body.conversion.event_id.invalid
docs
conversion.value optional It is the conversion value. Quora's Conversion API tag sends it as a number. Evidence: vendor template. Native JSON type: number. Fix: Send a number such as `129.99`, with no currency symbol. vendor.quora-conversions-api.body.conversion.value.invalid docs
conversion.timestamp optional It is the event time. Quora's Conversion API tag sends microseconds since epoch. Native JSON type: integer. Fix: Send an integer timestamp. The official tag uses microseconds. vendor.quora-conversions-api.body.conversion.timestamp.empty
vendor.quora-conversions-api.body.conversion.timestamp.invalid
docs
device.user_agent optional It is the device user agent. Quora's Conversion API tag sends it unhashed when the client provides it. Native JSON type: string. Fix: Send `device.user_agent`, or drop the empty pair. vendor.quora-conversions-api.body.device.user_agent.empty
vendor.quora-conversions-api.body.device.user_agent.invalid
docs
device.referer optional It is the page referrer. Quora's Conversion API tag uses the `referer` spelling. Native JSON type: string. Fix: Send `device.referer`, or drop the empty pair. vendor.quora-conversions-api.body.device.referer.empty
vendor.quora-conversions-api.body.device.referer.invalid
docs
device.language optional It is the device language. Quora's Conversion API tag sends it when the client provides it. Native JSON type: string. Fix: Send `device.language`, or drop the empty pair. vendor.quora-conversions-api.body.device.language.empty
vendor.quora-conversions-api.body.device.language.invalid
docs
device.mobile_device_id optional It is the mobile advertising id. Quora's Conversion API tag sends it when the client provides it. Native JSON type: string. Fix: Send `device.mobile_device_id`, or drop the empty pair. vendor.quora-conversions-api.body.device.mobile_device_id.empty
vendor.quora-conversions-api.body.device.mobile_device_id.invalid
docs
optional Each event is a JSON object, rather than a scalar or list. Native JSON type: object. vendor.quora-conversions-api.body..invalid docs
conversion optional The current official vendor reference documents this field. Evidence: vendor template. Native JSON type: object. vendor.quora-conversions-api.body.conversion.invalid docs
device optional The current official vendor reference documents this field. Evidence: vendor template. Native JSON type: object. vendor.quora-conversions-api.body.device.invalid docs
user required The official Quora server-side template identifies user as a required object and sends an empty object when no user data is mapped. Evidence: vendor template. Native JSON type: object. vendor.quora-conversions-api.body.user.missing
vendor.quora-conversions-api.body.user.invalid
docs

Validate a payload

pixellint validate json @payload.json --rulepack vendor/quora-conversions-api

Try this failing payload in the playground. Quora Conversion API missing account_id.

{"conversion":{"event_name":"Purchase","click_id":"qclid-example-1"},"user":{}}

cargo install pixellint · npm install pixellint