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
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.missingvendor.ispot.param.tracking_code.emptyvendor.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.emptyvendor.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.emptyvendor.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.emptyvendor.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.emptyvendor.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.emptyvendor.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.emptyvendor.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.emptyvendor.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.missingvendor.ispot.param.placementid.emptyvendor.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.emptyvendor.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.missingvendor.ispot.param.platform.emptyvendor.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.missingvendor.ispot.param.publisher.emptyvendor.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.emptyvendor.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.emptyvendor.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.emptyvendor.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