StackAdapt server pixels carry their template headers.
The official template sends sid for audience routes, cid for conversion events and uid for the universal pixel. Server requests marked gtm_ss=1 also carry Revision, X-Forwarded-For and User-Agent headers.
Blank IP and User-Agent fallbacks remain valid. Producer checks are advisory, and custom properties retain their configured values without an invented receiver schema.
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 |
|---|---|---|---|---|
pixel_type |
optional | Route selected by the public template. Presence diagnostic severity: warning. | vendor.stackadapt-pixel.param.pixel_type.empty |
docs |
sid |
recommended | The producer sends this configured identifier for the selected pixel route. No numeric or UUID grammar is imposed. Applies when {"kind":"value_in","param":"pixel_type","values":["rt","drt","lal"]}. Presence diagnostic severity: warning. | vendor.stackadapt-pixel.param.sid.missingvendor.stackadapt-pixel.param.sid.empty |
docs |
cid |
recommended | The producer sends this configured identifier for the selected pixel route. No numeric or UUID grammar is imposed. Applies when {"kind":"value_in","param":"pixel_type","values":["conv"]}. Presence diagnostic severity: warning. | vendor.stackadapt-pixel.param.cid.missingvendor.stackadapt-pixel.param.cid.empty |
docs |
uid |
recommended | The producer sends this configured identifier for the selected pixel route. No numeric or UUID grammar is imposed. Applies when {"kind":"value_in","param":"pixel_type","values":["saq_pxl"]}. Presence diagnostic severity: warning. | vendor.stackadapt-pixel.param.uid.missingvendor.stackadapt-pixel.param.uid.empty |
docs |
args |
optional | Optional JSON serialization of configured properties on non-retargeting transports. | vendor.stackadapt-pixel.param.args.empty |
docs |
gtm_ss |
optional | The pinned server template marks its requests with 1. Ordinary browser pixels may omit it. Presence diagnostic severity: warning. | vendor.stackadapt-pixel.param.gtm_ss.emptyvendor.stackadapt-pixel.param.gtm_ss.invalid |
docs |
ip_fwd |
optional | Optional source-profile IP address. Blank fallback values remain accepted. Presence diagnostic severity: warning. | vendor.stackadapt-pixel.param.ip_fwd.emptyvendor.stackadapt-pixel.param.ip_fwd.invalid |
docs |
url |
optional | Optional source-profile page URL. Blank fallback values remain accepted. Presence diagnostic severity: warning. | vendor.stackadapt-pixel.param.url.emptyvendor.stackadapt-pixel.param.url.invalid |
docs |
root |
optional | The public template serializes a property object. Additional members and their values remain open. Decoded body source: args. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"value_in","param":"pixel_type","values":["drt","lal","conv","saq_pxl"]}. Presence diagnostic severity: warning. Native JSON type: object. | vendor.stackadapt-pixel.body.root.invalid |
docs |
method |
recommended | The pinned template sends GET. This advisory does not claim a server rejection policy. Complete HTTP capture contract. Presence diagnostic severity: warning. | vendor.stackadapt-pixel.http.method.missingvendor.stackadapt-pixel.http.method.emptyvendor.stackadapt-pixel.http.method.invalid |
docs |
query.gtm_ss |
optional | The server template marks the request with gtm_ss=1. Complete HTTP capture contract. | docs | |
headers.x-forwarded-for |
recommended | The official server template supplies this header. Blank IP and User-Agent fallbacks remain accepted. Complete HTTP capture contract. Applies when {"kind":"value_in","param":"query.gtm_ss","values":["1"]}. Presence diagnostic severity: warning. | vendor.stackadapt-pixel.http.headers.x-forwarded-for.missingvendor.stackadapt-pixel.http.headers.x-forwarded-for.emptyvendor.stackadapt-pixel.http.headers.x-forwarded-for.invalid |
docs |
headers.revision |
recommended | The official server template supplies this header. Blank IP and User-Agent fallbacks remain accepted. Complete HTTP capture contract. Applies when {"kind":"value_in","param":"query.gtm_ss","values":["1"]}. Presence diagnostic severity: warning. | vendor.stackadapt-pixel.http.headers.revision.missingvendor.stackadapt-pixel.http.headers.revision.emptyvendor.stackadapt-pixel.http.headers.revision.invalid |
docs |
headers.user-agent |
recommended | The official server template supplies this header. Blank IP and User-Agent fallbacks remain accepted. Complete HTTP capture contract. Applies when {"kind":"value_in","param":"query.gtm_ss","values":["1"]}. Presence diagnostic severity: warning. | vendor.stackadapt-pixel.http.headers.user-agent.missing |
docs |
Validate a payload
pixellint validate request @request.json --rulepack vendor/stackadapt-pixel
Try this failing payload in the playground. A StackAdapt server pixel missing its Revision header.
{"url": "https://tags.srv.stackadapt.com/conv?cid=opaque>m_ss=1", "method": "GET", "headers": {"X-Forwarded-For": "192.0.2.1", "User-Agent": "Synthetic"}}
cargo install pixellint
·
npm install pixellint