Skip to content

Server-side events · Platform reference

Outbrain server-to-server (S2S) postback checker

Outbrain's S2S tracking is a GET postback to tr.outbrain.com/unifiedPixel. It carries the Outbrain click ID you stored from the landing URL and the name of an event-based conversion created in the Outbrain dashboard. Outbrain fills the click ID through the {{ob_click_id}} macro in the campaign's Track box. Postbacks most often fail to count because the macro was never added (so there is no click ID), the name doesn't match the case-sensitive event name, or a space in the name wasn't encoded.

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 Outbrain postback you paste: that ob_click_id and name are present, that your tracker's click ID macro is filled in rather than left literal (double-brace vs single-brace mismatches), and that values like a spaced event name are URL-encoded (%20). It can't confirm the name matches the event-based conversion in your Outbrain account, and it doesn't fire postbacks or read Outbrain reporting.

Open the Postback URL Tester

Endpoint and authentication

GET https://tr.outbrain.com/unifiedPixel?ob_click_id={stored click id}&name={event-based conversion name}

None. The postback URL carries no credentials. Attribution relies on the ob_click_id value

Event names

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

EventUse it for
Name of an Event-Based Conversion you createdThere is no fixed standard list. Create it under Pixels > Conversions > Add Conversion and choose Event-Based Conversion, not URL-Based. Event names are case-sensitive, and the dashboard doesn't accept the _ symbol

Required and recommended fields

FieldWhat it needs
ob_click_idRequired, reserved key. The click ID you stored for the converting user
nameRequired, reserved key. The event-based conversion name, case-sensitive. Encode spaces as %20 (e.g. Lead%20Generation)
orderValueOptional conversion value. Use a period as the decimal separator (4.99, not 4,99). Overrides the default value set on the conversion
currencyOptional currency code. Listed codes: USD, CAD, EUR, GBP, ILS, AUD, MXN, BRL, SEK, SGD, RUB, NZD, INR, JPY, PHP, CHF, MYR
orderIdOptional order identifier. Pass it so that two separate conversions from the same user within a short time are both counted
timestampOptional. Accepted formats include MM/dd/yyyy HH:mm:ss, yyyy-MM-dd HH:mm:ss, yyyy-MM-ddTHH:mm:ss, yyyy-MM-ddTHH:mm:ssZ and yyyy-MM-ddTHH:mm:ss zzzz

Click ids

Click idWhere it comes from
{{ob_click_id}}Outbrain's dynamic macro, with double curly braces. Add OutbrainClickId={{ob_click_id}} to the campaign's Track box. Outbrain then appends the user's click ID to your landing URL as that query parameter. Leave {{ob_click_id}} exactly as written
ob_click_idThe reserved parameter name for sending the stored click ID back in the postback

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