pixellint

iSpot impression pixels check supplied client IPs without requiring forwarding.

Impression fields retain their source-specific limits and reporting advice. Optional IP overrides accept IPv4 and IPv6. The source allows both address families, so the pack does not impose an IPv4-only requirement.

Image request methods and supplied IP syntax receive advice. Browser requests do not need server forwarding headers. Original-client provenance, trusted proxies, household matching and delivery require external evidence.

What this pack matches

Hosts
pi.ispot.tv, staging-pi.ispot.tv
Paths
Full path expression: ^/v2/[^/]*\.gif$
Vendor docs
developer.ispot.tv/sites/default/files/Impression%20Pixel%20Implementation%20Guide_0.pdf

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
tracking_code required It is the client-specific tracking code. iSpot documents the impression pixel path as /v2/TC-####-#.gif. Fix: Put the tracking code from iSpot in the path so it reads /v2/TC-{account}-{pixel}.gif. vendor.ispot.param.tracking_code.missing
vendor.ispot.param.tracking_code.empty
vendor.ispot.param.tracking_code.invalid
docs
campaignid optional iSpot documents campaignid as a string with at most 64 characters. Maximum decoded characters: 64. vendor.ispot.param.campaignid.empty
vendor.ispot.param.campaignid.invalid
docs
channel optional iSpot documents channel as a string with at most 16 characters. Maximum decoded characters: 16. vendor.ispot.param.channel.empty
vendor.ispot.param.channel.invalid
docs
cid optional iSpot documents cid as a string with at most 128 characters. Maximum decoded characters: 128. vendor.ispot.param.cid.empty
vendor.ispot.param.cid.invalid
docs
creativeid optional iSpot documents creativeid as a string with at most 64 characters. Maximum decoded characters: 64. vendor.ispot.param.creativeid.empty
vendor.ispot.param.creativeid.invalid
docs
creativename optional iSpot documents creativename as a string with at most 64 characters. Maximum decoded characters: 64. vendor.ispot.param.creativename.empty
vendor.ispot.param.creativename.invalid
docs
customdata optional iSpot documents customdata as a string with at most 256 characters. Maximum decoded characters: 256. vendor.ispot.param.customdata.empty
vendor.ispot.param.customdata.invalid
docs
devicetype optional iSpot documents devicetype as a string with at most 16 characters. Maximum decoded characters: 16. vendor.ispot.param.devicetype.empty
vendor.ispot.param.devicetype.invalid
docs
placementid required iSpot documents placementid as a string with at most 64 characters. Required for the documented reporting contract; the guide also permits a bare base pixel. Presence diagnostic severity: warning. Maximum decoded characters: 64. vendor.ispot.param.placementid.missing
vendor.ispot.param.placementid.empty
vendor.ispot.param.placementid.invalid
docs
placementtype optional iSpot documents placementtype as a string with at most 32 characters. Maximum decoded characters: 32. vendor.ispot.param.placementtype.empty
vendor.ispot.param.placementtype.invalid
docs
platform required iSpot documents platform as a string with at most 7 characters. Required for the documented reporting contract; the guide also permits a bare base pixel. Presence diagnostic severity: warning. Maximum decoded characters: 7. vendor.ispot.param.platform.missing
vendor.ispot.param.platform.empty
vendor.ispot.param.platform.invalid
docs
publisher required iSpot documents publisher as a string with at most 64 characters. Required for the documented reporting contract; the guide also permits a bare base pixel. Presence diagnostic severity: warning. Maximum decoded characters: 64. vendor.ispot.param.publisher.missing
vendor.ispot.param.publisher.empty
vendor.ispot.param.publisher.invalid
docs
segment optional iSpot documents segment as a string with at most 128 characters. Maximum decoded characters: 128. vendor.ispot.param.segment.empty
vendor.ispot.param.segment.invalid
docs
ip optional The impression guide allows an IP query override when the original client address is obscured. It explicitly accepts IPv4 and IPv6 impressions. Address ownership and household matching require external evidence. Presence diagnostic severity: warning. vendor.ispot.param.ip.empty
vendor.ispot.param.ip.invalid
docs
method optional The published impression template loads an image using GET. Complete HTTP capture contract. Presence diagnostic severity: warning. vendor.ispot.http.method.empty
vendor.ispot.http.method.invalid
docs

Validate a payload

pixellint validate url "$ARTIFACT" --rulepack vendor/ispot

Try this failing payload in the playground. An iSpot impression with an invalid client IP override.

https://pi.ispot.tv/v2/TC-1234-1.gif?platform=ott&publisher=synthetic&placementid=123&ip=999.2.3.4

cargo install pixellint · npm install pixellint