pixellint

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. Quartile event.png hops are vendor/doubleverify-event. 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
vstevt optional It is the viewability event code on generated video visit.jpg tags. Google documents ctx, cmp, plc, and sid as dvparams, not this name. Generated tpsc-video visit.jpg hops send it, so an empty pair is a truncated wrapper. Quartile event.png hops are vendor/doubleverify-event. Fix: Keep vstevt from the generated video visit.jpg tag, or drop the empty pair. vendor.doubleverify.param.vstevt.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