Skip to content

Server-side events · Platform reference

Taboola S2S postback URL and bulk S2S submit checker

Taboola's server-to-server tracking takes a GET postback to trc.taboola.com, or a bulk JSON POST, that carries the Taboola click ID and the Event Name of a conversion you created in Realize. Taboola puts the click ID on your landing URL as tblci (or your own parameter via the {click_id} macro), and your server has to store it and send it back. Postbacks most often return 204 but never attribute because the parameter wasn't named click-id, the name was the Conversion Name instead of the Event Name, or the click ID was truncated along the way.

Read from the official documentation on 9 November 2026. Sources are listed at the end.

Check your own setup

Our postback URL tester checks the Taboola postback you paste: that the click ID parameter is spelled click-id, that your tracker's click ID macro is filled in rather than left as a literal (Taboola's landing macro is {click_id} with single braces, unlike Outbrain's {{ob_click_id}}), that name is present, and that values are URL-encoded. It can't tell whether name matches the Event Name in your Realize account, and it doesn't send conversions or read Realize reporting.

Open the Postback URL Tester

Endpoint and authentication

GET https://trc.taboola.com/actions-handler/log/3/s2s-action?click-id={stored click id}&name={Event Name} (bulk: POST https://trc.taboola.com/{account-id}/log/3/bulk-s2s-action)

None. The postback URL carries no credentials, and Taboola's bulk submit page says no authentication is passed. The click ID ties the event to your account

Event names

Taboola has no fixed list: you name each conversion yourself, and what you send must match that name exactly.

EventUse it for
Event Name of an EVENT conversion created in RealizeThere are no fixed standard event names for S2S. In Realize go to Tracking > New Conversion > 'Create conversions using code', set the Event Name, and send exactly that value (case-sensitive) in name. Use the Event Name field, not the Conversion Name

Required and recommended fields

FieldWhat it needs
click-idRequired. The Taboola click ID exactly as received, case-sensitive. The parameter must be spelled click-id with a hyphen, or no conversions are recorded
nameRequired. The case-sensitive Event Name from the conversion settings in Realize
revenueOptional integer or decimal. Taboola recommends sending revenue, currency and quantity
currencyOptional 3-letter, case-sensitive code. If omitted, the account default currency is used. Supported: AUD, BRL, CAD, CNY, EUR, GBP, HKD, ILS, INR, JPY, KRW, MXN, NZD, RUB, SGD, THB, TRY, USD, ZAR
quantityOptional integer, number of items in the order
orderidOptional string, e.g. your CRM order ID. Mainly for purchase events
timestamp (bulk only)Required in bulk submit: milliseconds since the Unix epoch, inside each item of the actions array

Click ids

Click idWhere it comes from
tblciTaboola appends tblci={click_id} to all ad URLs by default. Your landing page reads it and stores the value
{click_id} macroOptional custom parameter, e.g. &tbl_click_id={click_id}, set in the campaign's Tracking query string or in the ad URL. Single curly braces. You can rename the parameter, but your system must read that same name
click-idThe name of the parameter you send back to Taboola. It isn't the same as the landing-page parameter (tblci or your custom name)

Deduplication

Time limits and batch sizes

How to test before you trust it

Why events arrive but don't attribute

Sources

Platforms change these rules without notice. If a source says something different from this page, the source wins.

Other platforms

All platforms