pixellint

Stored Innovid pixels are s.innovid.com, not the servedby packs

Short answer

The logo points here because the sample host and the rulepack host are both Innovid, and they are not the same endpoint.

Validate a pixel Open the rulepack

What the stored tags were

s.innovid.com is the Innovid host in the sample table, on the order of seventy rows from mid-September into early October 2026, plus a smaller set on rtr.innovid.com. The s.innovid.com artifact is a 1x1.gif with query names that included project_hash, client_id, video_id, channel_id, publisher_id, placement_tag_id, and project_state. rtr.innovid.com is a different host on the same directory entry.

Those query names are what one family of stored tags carried. They are not a required list. A later tag can omit one of them and still be a legal Innovid pixel until a published contract says otherwise.

What the servedby packs cover

The legacy impression pack recognizes the Tag Assistant 1.1.5 tuple on servedby.innovid.com/imp/. The legacy state pack recognizes the five-part /state/ tuple on the same host. Both treat missing tuple positions as template completeness warnings. Both say opaque tokens, account state, unlisted variants, and the ad-events transport are outside the pack.

Use those packs when the URL you copied is actually servedby.innovid.com. The pack pages are the field tables. This page exists so a 1x1 on s.innovid.com is not debugged against a servedby path pattern it will never match.

What s.innovid.com gets today

pixellint validate url on https://s.innovid.com/1x1.gif will not select vendor/innovid-legacy-impression. Core checks still apply: scheme, host, insecure transport, privacy macros. Directory attribution can still print Innovid. Read the coverage line. Core only means no Innovid field rule ran.

rtr.innovid.com is in the same situation. It is listed on the directory entry and it is not the servedby match host. Validate it as its own artifact. Do not rewrite the host to servedby to make the pack light up.

What this page does not claim

project_hash, client_id, and the other query names above are not a contract. The Tag Assistant guide is the source for the servedby tuples, and that guide is already cited on those pack pages. It does not, by itself, define the 1x1.gif query on s.innovid.com.

Pixellint is not affiliated with Innovid. The logo links here rather than to innovid.com so the servedby packs and the stored 1x1 host stay distinct.

How to lint one tag

Branch on the host before you pick a flag. servedby plus /imp/ uses vendor/innovid-legacy-impression. servedby plus /state/ uses vendor/innovid-legacy-state. s.innovid.com and rtr.innovid.com use pixellint validate url with no vendor flag. A VAST response can contain all three. Three fixtures, three reports.

If Innovid publishes the 1x1 query grammar, the next pack should cite that page and this note should start pointing at the pack. Until then, a green core report is only a statement about the URL, not about the Innovid account behind project_hash.

pixellint validate url @innovid-imp.txt --rulepack vendor/innovid-legacy-impression
pixellint validate url @innovid-1x1.txt

Questions

Which Innovid host do the packs check?

vendor/innovid-legacy-impression matches servedby.innovid.com/imp/. vendor/innovid-legacy-state matches servedby.innovid.com/state/. Neither matches s.innovid.com/1x1.gif.

Does the directory know s.innovid.com?

Yes. The Innovid directory entry lists s.innovid.com, rtr.innovid.com, and servedby.innovid.com, and it points the vendor at the legacy impression pack. Listing a host is not the same as selecting that pack.

Sources

Check the artifact

Paste the pixel URL or JSON body into the playground. Same engine as pixellint validate. Artifacts you test may be stored; see privacy.