pixellint

Kevel event multipliers follow their documented numeric ranges.

Kevel accepts event multipliers from negative 100 million through negative one, or one through 100 million. Advice catches zero, fractions below one in magnitude and values beyond those bounds with exact decimal comparisons.

Negative and fractional multipliers inside either interval remain valid. Bare noredirect flags and revenue overrides retain their behavior. The separate conversion API, signature authenticity, event delivery and revenue calculations require further context.

What this pack matches

Hosts
adzerk.net
Paths
/i.gif, /e.gif, /r
Vendor docs
dev.kevel.com/docs/proxying-impressions-through-your-own-server

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
e required It is the base64 encoded event shim. Kevel documents e as unique to the event. Fix: Send e from the Decision API impressionUrl or events[].url. Do not invent it. vendor.kevel.param.e.missing
vendor.kevel.param.e.empty
docs
s required It is the signature that verifies the shim. Kevel documents s on every tracking pixel. Fix: Send s from the same Decision API URL as e. vendor.kevel.param.s.missing
vendor.kevel.param.s.empty
docs
override optional Kevel documents override as a monetary numeric event value. vendor.kevel.param.override.empty
vendor.kevel.param.override.invalid
docs
additional optional Kevel documents additional as a monetary numeric event value. vendor.kevel.param.additional.empty
vendor.kevel.param.additional.invalid
docs
gmv optional Kevel documents gmv as a monetary numeric event value. vendor.kevel.param.gmv.empty
vendor.kevel.param.gmv.invalid
docs
productId optional Kevel allows one to ten comma-separated productId strings on impression and custom-event URLs. vendor.kevel.param.productId.empty
vendor.kevel.param.productId.invalid
docs
component optional Kevel allows one to ten comma-separated component strings on impression and custom-event URLs. vendor.kevel.param.component.empty
vendor.kevel.param.component.invalid
docs
position optional Kevel allows one to ten comma-separated position strings on impression and custom-event URLs. vendor.kevel.param.position.empty
vendor.kevel.param.position.invalid
docs
tracking_route optional The concrete URL path distinguishes click redirects from impression and custom-event pixels. docs
eventMultiplier optional Kevel documents the inclusive ranges [-100000000, -1] and [1, 100000000]. Numeric comparisons preserve boundary precision. The source does not explicitly restrict URL multipliers to integers. New advice accepts JSON decimal and exponent spelling; receiver spelling is not certified. Placement override and revenue multiplication need external context. Presence diagnostic severity: warning. vendor.kevel.param.eventMultiplier.empty
vendor.kevel.param.eventMultiplier.invalid
docs
query_too_long required Kevel limits the complete event URL query string to 1024 characters. vendor.kevel.query_too_long docs
click.productId.single required Kevel click URLs accept only one productId value. vendor.kevel.click.productId.single docs
click.component.single required Kevel click URLs accept only one component value. vendor.kevel.click.component.single docs
click.position.single required Kevel click URLs accept only one position value. vendor.kevel.click.position.single docs
path optional The published /i.gif impression and /r click endpoints support GET or POST. Complete HTTP capture contract. docs
method required Kevel documents GET or POST for impression and click tracking URLs. Complete HTTP capture contract. Applies when {"kind":"value_in","param":"path","values":["/i.gif","/r"]}. vendor.kevel.http.method.missing
vendor.kevel.http.method.empty
vendor.kevel.http.method.invalid
docs
headers.user-agent optional For server-to-server event forwarding, Kevel instructs publishers to send the end-user User-Agent for bot filtering. Browser/server integration context is not inferred from method alone. Complete HTTP capture contract. vendor.kevel.http.headers.user-agent.empty docs

Validate a payload

pixellint validate url "$ARTIFACT" --rulepack vendor/kevel

Try this failing payload in the playground. A Kevel impression with a zero event multiplier.

https://e-1234.adzerk.net/i.gif?e=synthetic&s=synthetic&eventMultiplier=0

cargo install pixellint · npm install pixellint