pixellint

vendor/doubleverify · ecosystem evidence

DoubleVerify visit.jpg beacons need ctx, cmp, plc, and sid

Google documents ctx, cmp, plc, and sid on the generated FlashTalking and DoubleVerify wrapper. The visit.jpg beacon carries the same names. sid may be a name such as turn, not only digits. event.png quartiles, OMID dvtp_src.js, RTB, and VAST wrappers are not this pack. Amazon-hosted /dv/ hops are vendor/amazon-vfw.

A visit.jpg without ctx is a truncated tag

Google's generated wrapper always sets ctx inside dvparams. Dropping it on visit.jpg is how the impression never attributes.

Rule: vendor.doubleverify.param.ctx.missing

What this pack matches

Hosts
tps.doubleverify.com, tpsc-video-as.doubleverify.com, tpsc-video-eu.doubleverify.com, tpsc-video-ue.doubleverify.com, tpsc-video-uw.doubleverify.com
Paths
/visit.jpg
Vendor docs
support.google.com/displayvideo/answer/2591756

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
ctx required It is the DoubleVerify context or advertiser key. Google documents it on the generated FlashTalking and DoubleVerify wrapper as ctx inside dvparams. The visit.jpg beacon carries the same name. Fix: Copy the generated DoubleVerify tag so visit.jpg carries ctx from dvparams. vendor.doubleverify.param.ctx.missing
vendor.doubleverify.param.ctx.empty
docs
cmp required It is the DoubleVerify campaign key. Google documents it as cmp inside dvparams. Values may be numeric or a DV-prefixed id such as DV064005. Fix: Keep cmp from the generated DoubleVerify tag on the visit.jpg query. vendor.doubleverify.param.cmp.missing
vendor.doubleverify.param.cmp.empty
docs
plc required It is the DoubleVerify placement key. Google documents it as plc inside dvparams. Fix: Keep plc from the generated DoubleVerify tag on the visit.jpg query. vendor.doubleverify.param.plc.missing
vendor.doubleverify.param.plc.empty
docs
sid required It is the DoubleVerify site or supply key. Google documents it as sid inside dvparams. Generated tags sometimes send a name rather than digits. Fix: Keep sid from the generated DoubleVerify tag on the visit.jpg query. vendor.doubleverify.param.sid.missing
vendor.doubleverify.param.sid.empty
docs

Validate a payload

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

Try this failing payload in the playground. DoubleVerify visit.jpg missing ctx.

https://tps.doubleverify.com/visit.jpg?cmp=12345&plc=12345&sid=12345

cargo install pixellint · npm install pixellint