Adform tags need banner number bn
Video tags are /videoad/?bn=. Click and impression tags put the same ID on /C/ and /adfserve/. a2 is Americas, track is EMEA, a1 is global, asia is APAC. Semicolon-delimited consent pairs may follow the number. s2.adform.net verification scripts are attributed, not contracted.
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 |
|---|---|---|---|---|
bn |
required | It is the numeric Adform banner ID. Adform documents video tags as `{region}.adform.net/videoad/?bn=` plus that ID. a2 is the Americas tracking domain, track is EMEA, a1 is global, asia is APAC. Fix: Set `bn` to the banner ID from the Adform tag. | vendor.adform.param.bn.missingvendor.adform.param.bn.emptyvendor.adform.param.bn.invalid |
docs |
C |
optional | It is the click index Adform writes on multi-click banners. Adform documents clicktrackers as `C=1`, `C=2`, and so on. Single-click tags omit it. Fix: Set `C` to the click index from the Adform tag, or drop the pair on a single-click tag. | vendor.adform.param.C.emptyvendor.adform.param.C.invalid |
docs |
cpdir |
optional | Adform documents cpdir as the absolute replacement landing page URL. | vendor.adform.param.cpdir.emptyvendor.adform.param.cpdir.invalid |
docs |
urlappend |
optional | Adform appends query data to the landing page. Its supported __ADFSEP__ macro resolves to ? or & depending on the destination query. | vendor.adform.param.urlappend.emptyvendor.adform.param.urlappend.invalid |
docs |
Validate a payload
pixellint validate url "$ARTIFACT" --rulepack vendor/adform
Try this failing payload in the playground. Adform video tag missing banner number bn.
https://track.adform.net/videoad/?autoplay=0
cargo install pixellint
·
npm install pixellint