pixellint

Amazon Firefly DV hops need vstevt

Amazon DSP hosts DoubleVerify measurement on vfw.amazon-adsystem.com/dv/. Generated event.png and proxy tags always send vstevt, so a missing value is a truncated wrapper. Generated /dv/proxy tags also send ctx, cmp, plc, and sid from the same dvparams Google documents on DoubleVerify wrappers. IAS /ias/ hops stay directory-only. The Ad Tag loader is vendor/amazon-ads.

What this pack matches

Hosts
vfw.amazon-adsystem.com
Paths
…/dv/…
Vendor docs
advertising.amazon.com/resources/ad-policy/approved-3p-ad-servers

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
vstevt required It is the Firefly viewability event code on Amazon-hosted DoubleVerify hops. Amazon documents DSP third-party verification with DoubleVerify, not this query; generated /dv/event.png and /dv/proxy tags always send vstevt, so an empty or missing value is a truncated wrapper. Fix: Export the Firefly VAST again from Amazon DSP so vstevt is present on the /dv/ hop. vendor.amazon-vfw.param.vstevt.missing
vendor.amazon-vfw.param.vstevt.empty
docs
ctx optional It is the DoubleVerify context or advertiser key. Google documents it as ctx inside dvparams. Generated /dv/proxy tags carry the same name. Quartile /dv/event.png hops often omit it. Fix: Keep ctx from the generated Firefly /dv/proxy tag, or drop the empty pair. vendor.amazon-vfw.param.ctx.empty docs
cmp optional It is the DoubleVerify campaign key. Google documents it as cmp inside dvparams. Generated /dv/proxy tags carry the same name. Fix: Keep cmp from the generated Firefly /dv/proxy tag, or drop the empty pair. vendor.amazon-vfw.param.cmp.empty docs
plc optional It is the DoubleVerify placement key. Google documents it as plc inside dvparams. Generated /dv/proxy tags carry the same name. Fix: Keep plc from the generated Firefly /dv/proxy tag, or drop the empty pair. vendor.amazon-vfw.param.plc.empty docs
sid optional It is the DoubleVerify site or supply key. Google documents it as sid inside dvparams. Generated /dv/proxy tags carry the same name. Values may be a name rather than digits. Fix: Keep sid from the generated Firefly /dv/proxy tag, or drop the empty pair. vendor.amazon-vfw.param.sid.empty docs

Validate a payload

pixellint validate url "$ARTIFACT" --rulepack vendor/amazon-vfw

Try this failing payload in the playground. Amazon Firefly DV hop missing vstevt.

https://vfw.amazon-adsystem.com/dv/event.png?dup=CJmCexample

cargo install pixellint · npm install pixellint