pixellint

vendor/google-ads-conversion · vendor documented

Google Ads conversion pixels carry the ID in the path

The conversion ID is a path segment, not a query parameter. Without it the pack cannot tell which conversion fired. label is expected: without it the hit lands on the account rather than a conversion action. value when present is numbers and decimals only, so 20.00 is valid and $20.00 is not.

What this pack matches

Hosts
googleadservices.com, googleads.g.doubleclick.net
Paths
…/pagead/conversion…, …/pagead/viewthroughconversion…
Vendor docs
support.google.com/tagassistant/answer/2947038

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
conversion_id required It is the numeric conversion ID, unique per Google Ads account, and it travels in the path rather than the query. Fix: Copy the conversion ID from the conversion action's tag setup. vendor.google-ads-conversion.param.conversion_id.missing
vendor.google-ads-conversion.param.conversion_id.empty
vendor.google-ads-conversion.param.conversion_id.invalid
docs
label recommended It identifies which conversion action fired. Without it, the hit lands on the account rather than on a specific action. Fix: Add the conversion label from the conversion action's tag setup. vendor.google-ads-conversion.param.label.missing
vendor.google-ads-conversion.param.label.empty
docs
value optional It is the conversion value. Google documents google_conversion_value as numbers and decimals only, with no currency symbol or comma. Fix: Send a number such as 20 or 20.00, not $20.00. vendor.google-ads-conversion.param.value.empty
vendor.google-ads-conversion.param.value.invalid
docs
currency_code optional It is the ISO 4217 currency of `value`. Google documents it on conversion tags as `currency_code`. Fix: Send the three-letter code, such as `USD`. vendor.google-ads-conversion.param.currency_code.empty
vendor.google-ads-conversion.param.currency_code.invalid
docs
ord optional It is the cache buster on the image tag. Google documents a unique `ord` so repeat fires are counted separately. Fix: Emit a fresh `ord` on every fire, or drop the empty pair. vendor.google-ads-conversion.param.ord.empty docs
guid optional The generated image tag sends `guid=ON`. vendor.google-ads-conversion.param.guid.empty
vendor.google-ads-conversion.param.guid.invalid
docs
script optional The image fallback sends `script=0` to say no JavaScript ran. vendor.google-ads-conversion.param.script.empty
vendor.google-ads-conversion.param.script.invalid
docs

Validate a payload

pixellint validate url "$ARTIFACT" --rulepack vendor/google-ads-conversion

Try this failing payload in the playground. Google Ads conversion pixel without a label.

https://www.googleadservices.com/pagead/conversion/?guid=ON&script=0

cargo install pixellint · npm install pixellint