vendor/floodlight · vendor documented
DART Floodlight tags put src, type, cat on the path
DART Floodlight tags are not a query string. /ddm/activity/src=123;type=conv;cat=purch;ord=1 is the shape. DART was DoubleClick's ad server; Campaign Manager still serves the same Floodlight activity. src is the numeric configuration ID. type is the activity group. cat is the activity. ord is the cache buster. Unique counting also needs num alongside ord. qty on a sales tag is an integer of 1 or more, cost is a number, and a tag with only one of them is incomplete. dc_lat is 0 or 1. u1-u20 are custom variables; empty pairs are dropped. Impression and click tracking ads (/trackimp, /trackclk) are vendor/cm360-tracking-ad. googlesyndication dc_oe VAST events are vendor/cm360-vast-event.
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 |
|---|---|---|---|---|
src |
required | It is the numeric Floodlight configuration ID for the advertiser. Fix: Set `src` to the advertiser's Floodlight configuration ID. | vendor.floodlight.param.src.missingvendor.floodlight.param.src.emptyvendor.floodlight.param.src.invalid |
docs |
type |
required | It is the activity group tag string. Fix: Copy `type` from the Floodlight activity in Campaign Manager. | vendor.floodlight.param.type.missingvendor.floodlight.param.type.empty |
docs |
cat |
required | It is the activity tag string. Fix: Copy `cat` from the Floodlight activity in Campaign Manager. | vendor.floodlight.param.cat.missingvendor.floodlight.param.cat.empty |
docs |
ord |
required | It is the cache buster, so every fire is counted separately. Fix: Emit a fresh random value for `ord` on every fire, or `ord=1` with `num` for unique counting. | vendor.floodlight.param.ord.missingvendor.floodlight.param.ord.empty |
docs |
num |
optional | Unique counting sends `ord=1` alongside a random `num`. | vendor.floodlight.param.num.empty |
docs |
qty |
optional | It is the quantity of items on a sales tag. Campaign Manager documents qty as an integer greater than zero. Counter tags omit it. Fix: Set `qty` to the item count as a whole number of 1 or more, or drop the pair on a counter tag. | vendor.floodlight.param.qty.emptyvendor.floodlight.param.qty.invalid |
docs |
cost |
optional | It is the revenue amount on a sales tag. Campaign Manager documents cost as a number with no commas or currency symbols. Counter tags omit it. Fix: Set `cost` to the order value as a number, such as 19.99, or drop the pair on a counter tag. | vendor.floodlight.param.cost.emptyvendor.floodlight.param.cost.invalid |
docs |
dc_lat |
optional | It is the limited-ads signal. Campaign Manager documents `dc_lat=1` when the user has limited ad tracking enabled. Fix: Send `dc_lat=1` when limited ad tracking applies, otherwise `0` or omit it. | vendor.floodlight.param.dc_lat.emptyvendor.floodlight.param.dc_lat.invalid |
docs |
npa |
optional | It is the restricted-processing signal. Campaign Manager documents `npa=1` when the user opts out of remarketing. Exported tags leave it empty until a CMP fills it. Fix: Send `npa=1` when the user opts out of remarketing, otherwise `0` or omit it. | vendor.floodlight.param.npa.emptyvendor.floodlight.param.npa.invalid |
docs |
tfua |
optional | It is the under-age signal. Campaign Manager documents `tfua=1` when the request may come from a user under 16. Exported tags leave it empty until a CMP fills it. Fix: Send `tfua=1` when the request may come from a user under 16, otherwise `0` or omit it. | vendor.floodlight.param.tfua.emptyvendor.floodlight.param.tfua.invalid |
docs |
dc_rdid |
optional | It is the resettable device ID. Campaign Manager documents dc_rdid as the unhashed IDFA or Android advertising ID on in-app Floodlight tags. Generated tags leave the slot empty until the app fills it. Fix: Send the unhashed IDFA or AdID over HTTPS, or leave the generated empty slot on a web tag. | vendor.floodlight.param.dc_rdid.emptyvendor.floodlight.param.dc_rdid.invalid |
docs |
tag_for_child_directed_treatment |
optional | It is the COPPA signal. Campaign Manager documents tag_for_child_directed_treatment=1 when the request may come from a user under 13. Generated tags leave the slot empty until the publisher fills it. Fix: Send tag_for_child_directed_treatment=1 for COPPA traffic, 0 otherwise, or leave the generated empty slot. | vendor.floodlight.param.tag_for_child_directed_treatment.emptyvendor.floodlight.param.tag_for_child_directed_treatment.invalid |
docs |
u1… |
optional | It is a Floodlight custom variable. Campaign Manager documents u1-u100 on the activity tag. Fix: Fill the custom variable, or drop the empty pair from the tag. | vendor.floodlight.param.u1.empty |
docs |
counting.unique_requires_ord |
required | The tag counts unique users with `num` but omits `ord`. Unique counting sends `ord=1` together with a random `num`. Fix: Add `ord=1` next to the random `num` value. | vendor.floodlight.counting.unique_requires_ord |
docs |
sales.qty_requires_cost |
required | The tag sends `qty` without `cost`. Campaign Manager documents both on sales conversion tags. Fix: Add `cost` as the revenue amount, with no currency symbol, or drop `qty` on a counter tag. | vendor.floodlight.sales.qty_requires_cost |
docs |
sales.cost_requires_qty |
required | The tag sends `cost` without `qty`. Campaign Manager documents both on sales conversion tags. Fix: Add `qty` as an integer of 1 or more, or drop `cost` on a counter tag. | vendor.floodlight.sales.cost_requires_qty |
docs |
Validate a payload
pixellint validate url "$ARTIFACT" --rulepack vendor/floodlight
Try this failing payload in the playground. Floodlight activity missing src.
https://ad.doubleclick.net/ddm/activity/type=conv;cat=purch;gdpr=1;ord=8675309?
cargo install pixellint
·
npm install pixellint