pixellint

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

Hosts
tags.srv.stackadapt.com
Paths
/rt, /drt, /lal, /conv, /saq_pxl
Vendor docs
github.com/StackAdapt/stackadapt-gtm-server-side-pixel/blob/e718d8607317024ccc83234c58d975672dfd4ffe/template.tpl

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.missing
vendor.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.missing
vendor.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.missing
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.missing
vendor.stackadapt-pixel.http.method.empty
vendor.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.missing
vendor.stackadapt-pixel.http.headers.x-forwarded-for.empty
vendor.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.missing
vendor.stackadapt-pixel.http.headers.revision.empty
vendor.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&gtm_ss=1", "method": "GET", "headers": {"X-Forwarded-For": "192.0.2.1", "User-Agent": "Synthetic"}}

cargo install pixellint · npm install pixellint