pixellint

vendor/taboola-s2s-bulk · vendor documented

Taboola bulk S2S conversions need click-id, timestamp, and name

The Account ID rides in the path. Each record needs click-id, timestamp as milliseconds since epoch, and the Realize Event Name. Single GET postbacks are vendor/taboola-s2s.

Bulk records need a millisecond timestamp

The GET postback has no timestamp field. Bulk submit requires timestamp as milliseconds since epoch on every record.

Rule: vendor.taboola-s2s-bulk.body.timestamp.missing

What this pack matches

Hosts
trc.taboola.com
Paths
…/bulk-s2s-action…
Vendor docs
developers.taboola.com/pixel/docs/bulk-submit-s2s-conversions

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
account_id required It is the numeric Taboola Account ID in the path as `/{account-id}/log/3/bulk-s2s-action`. Fix: Put the Realize Account ID in the path, such as `/123456/log/3/bulk-s2s-action`. vendor.taboola-s2s-bulk.param.account_id.missing
vendor.taboola-s2s-bulk.param.account_id.empty
vendor.taboola-s2s-bulk.param.account_id.invalid
docs
actions required Bulk submit requires an `actions` array of conversions. Fix: Send an `actions` array. Taboola documents a limit of 1,000 conversions per request. vendor.taboola-s2s-bulk.body.actions.missing docs
click-id required It is the Taboola Click ID from the landing page. Taboola documents `click-id` as required on every bulk record. Fix: Send `click-id` with the Click ID Taboola appended to the landing page. vendor.taboola-s2s-bulk.body.click-id.missing
vendor.taboola-s2s-bulk.body.click-id.empty
docs
timestamp required It is milliseconds since Unix epoch. Taboola documents `timestamp` as required on bulk records. Fix: Send milliseconds since epoch, such as `1620723457405`. vendor.taboola-s2s-bulk.body.timestamp.missing
vendor.taboola-s2s-bulk.body.timestamp.empty
vendor.taboola-s2s-bulk.body.timestamp.invalid
docs
name required It is the event name as defined in Realize Conversion settings, not the Conversion Name. Fix: Set `name` to the Event Name from Realize, such as `LEAD`. vendor.taboola-s2s-bulk.body.name.missing
vendor.taboola-s2s-bulk.body.name.empty
docs
revenue optional It is the conversion value. Taboola documents a float such as `10` or `9.99`. Fix: Send a number, such as `9.99`. vendor.taboola-s2s-bulk.body.revenue.empty
vendor.taboola-s2s-bulk.body.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-s2s-bulk.body.currency.empty
vendor.taboola-s2s-bulk.body.currency.invalid
docs
quantity optional It is the item quantity for the order. Taboola documents an integer. Fix: Send an integer quantity, such as `3`. vendor.taboola-s2s-bulk.body.quantity.empty
vendor.taboola-s2s-bulk.body.quantity.invalid
docs
orderid optional It is an order ID from the advertiser CRM. Taboola documents it as optional. vendor.taboola-s2s-bulk.body.orderid.empty docs

Validate a payload

pixellint validate json @payload.json --rulepack vendor/taboola-s2s-bulk

Try this failing payload in the playground. Taboola bulk S2S conversion missing click-id.

{"actions":[{"timestamp":1620723457405,"name":"LEAD"}]}

cargo install pixellint · npm install pixellint