pixellint

Taboola events carry account paths and engagement metrics.

Taboola account-scoped collectors validate event clocks, engagement metrics and subscription markers. The SDK logger form and beacon methods receive the same field checks as URL requests.

Custom event names, opaque session strings and literal null referrers remain accepted. New producer checks are advisory. Other logger paths and S2S protocols retain separate contracts.

What this pack matches

Hosts
taboola.com
Paths
Full path expression: ^/[^/]+/log/3/unip/?$
Vendor docs
developers.taboola.com/pixel/docs/verification-network-traffic

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
en recommended Taboola documents en on conversion event requests and says other unip requests are internal traffic. Because the endpoint matcher includes both, absence is a warning rather than an asserted transport failure. Fix: Send `en` with the Realize event name, such as `page_view` or `purchase`. vendor.taboola-unip.param.en.missing
vendor.taboola-unip.param.en.empty
docs
revenue optional It is the conversion value. Taboola documents an integer or decimal number, with no commas. Page views omit it. Fix: Send a number, such as `9.99`, or drop the pair on a page view. vendor.taboola-unip.param.revenue.empty
vendor.taboola-unip.param.revenue.invalid
docs
currency optional It is the revenue currency. Taboola documents a fixed list of three-letter codes, case-sensitive. Omit it to use the account default. Fix: Use a documented code such as `USD`. vendor.taboola-unip.param.currency.empty
vendor.taboola-unip.param.currency.invalid
docs
quantity optional It is the item quantity in the order. Taboola documents an integer. Fix: Send an integer quantity, such as `3`. vendor.taboola-unip.param.quantity.empty
vendor.taboola-unip.param.quantity.invalid
docs
orderid optional It is an order ID from the advertiser CRM. Taboola documents it as optional. Purchase fires often send it. Fix: Set orderid to the CRM order ID, or drop the pair. vendor.taboola-unip.param.orderid.empty docs
publisher_id recommended The SDK routes events through a numeric account path. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.publisher_id.missing
vendor.taboola-unip.param.publisher_id.empty
vendor.taboola-unip.param.publisher_id.invalid
docs
tim optional Generated event time in Unix milliseconds. No freshness window is inferred. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.tim.empty
vendor.taboola-unip.param.tim.invalid
docs
tos optional Generated visible time on site in milliseconds. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.tos.empty
vendor.taboola-unip.param.tos.invalid
docs
ssd optional Observed site-depth counter. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.ssd.empty
vendor.taboola-unip.param.ssd.invalid
docs
scd optional Maximum scroll percentage; no unstated 100 percent ceiling is imposed. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.scd.empty
vendor.taboola-unip.param.scd.invalid
docs
est optional Generated session-start milliseconds. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.est.empty
vendor.taboola-unip.param.est.invalid
docs
msa optional Generated maximum scrollable amount. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.msa.empty
vendor.taboola-unip.param.msa.invalid
docs
ce optional Pinned producer marker. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.ce.empty
vendor.taboola-unip.param.ce.invalid
docs
psb optional Pinned producer marker. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.psb.empty
vendor.taboola-unip.param.psb.invalid
docs
cis optional Pinned producer marker. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.cis.empty
vendor.taboola-unip.param.cis.invalid
docs
ga optional Pinned producer marker. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.ga.empty
vendor.taboola-unip.param.ga.invalid
docs
isls optional Pinned producer marker. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.isls.empty
vendor.taboola-unip.param.isls.invalid
docs
item-url optional Optional page-location override. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.item-url.empty
vendor.taboola-unip.param.item-url.invalid
docs
surl optional Optional page-location override. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.param.surl.empty
vendor.taboola-unip.param.surl.invalid
docs
method recommended Pinned producer transport. Complete HTTP capture contract. Presence diagnostic severity: warning. Evidence: vendor template. vendor.taboola-unip.http.method.missing
vendor.taboola-unip.http.method.empty
vendor.taboola-unip.http.method.invalid
docs

Validate a payload

pixellint validate url "$ARTIFACT" --rulepack vendor/taboola-unip

Try this failing payload in the playground. A Taboola event with a malformed clock.

https://trc.taboola.com/1234567/log/3/unip?en=Custom&tim=clock

cargo install pixellint · npm install pixellint