pixellint

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

Hosts
doubleclick.net
Paths
…activity…
Vendor docs
support.google.com/campaignmanager/answer/2823425

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.missing
vendor.floodlight.param.src.empty
vendor.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.missing
vendor.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.missing
vendor.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.missing
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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