Bulk submit S2S conversions

Overview

When manually integrating server to server tracking, you have 2 options:

  1. Use the postback URL to submit each conversion separately.
  2. Use the bulk-s2s-action endpoint (described on this page) to submit a batch of S2S conversions in a single POST request.

📘

A quick comparison

Postback URL:

https://trc.taboola.com/actions-handler/log/3/s2s-action?click-id=CLICK_ID&name=EVENT_NAME...

Invoke once for each conversion (using a simple GET request).

Bulk submit endpoint:

POST https://trc.taboola.com/{account-id}/log/3/bulk-s2s-action

Invoke via a POST request, passing a batch of conversions as a JSON object. (See the example below).

First steps

Before you can invoke the bulk-s2s-action endpoint, you need to perform the relevant set-up in Realize, just as you would for the regular postback URL.

For more information, see: S2S Manual Integration > Realize

The endpoint

POST https://trc.taboola.com/{account-id}/log/3/bulk-s2s-action
Content-Type: application/json

Path param

NameModifiersTypeDescription
account-idRequiredLongYour numeric Taboola Account ID - e.g. 123456.

📘

Guidelines

  1. Submit a request body with a JSON object (see the example below).
  2. No authentication is passed.

📘

The network account

You can pass your Taboola Network Account ID. In that case, the request body should contain conversions across your various sub-accounts.

Request body

The request body contains a JSON object with a single actions property, containing an array of objects. Each object in the array contains the following fields:

Fields

NameModifiersTypeDescription
click-idRequiredString (Case-sensitive)The Taboola Click ID, as passed by Taboola to your landing page.

(A sample Click ID value is provided below.)
timestampRequiredLongMilliseconds since Unix Epoch - e.g. 1620723457405.
nameRequiredString (Case-sensitive)The event name, as defined in Realize.

(Refer to the Event Name field under the Conversion settings - not the Conversion Name.)
revenueOptionalFloatThe revenue amount - e.g. 10, 9.99, etc.
currencyOptionalString (Case-sensitive)The revenue currency. (If omitted, the account default is used.)

A list of supported values is provided below.
quantityOptionalIntegerThe item quantity for the order - e.g. 3.
orderidOptionalStringAn Order ID - e.g. an Order ID assigned by your CRM for this conversion.

A sample Click ID

GiDxLZcEVjwEqkGfKQMQndUYMIeZXFHmZ0DrHIJhGS6kKiDzkGUos9GzkpqG-YHQATCwxlQ

Supported currencies

AUD
BRL
CAD
CNY
EUR
GBP
HKD
ILS
INR
JPY
KRW
MXN
NZD
RUB
SGD
THB
TRY
USD
ZAR

An example

POST https://trc.taboola.com/123456/log/3/bulk-s2s-action
Content-Type: application/json
{
   "actions": [
      {
         "timestamp": 1620723457405,
         "click-id": "GiCsfhikbv6Ov6YdzFR8_JyZp76Rxqey1Lu0AQ",
         "name": "LEAD"
      },
      {
         "timestamp": 1620723457410,
         "click-id": "GiCsfhikbv6Ov6YdzFR8_JyZp76Rxqey1Lu0AQ",
         "name": "PURCHASE"
      }
   ]
}

📘

Content-Type is application/json. No authentication is passed.

204 No Content

The response

📘

Each request returns 204 with an empty body. This indicates only that Taboola received the request and is processing it. (It does not indicate that valid data was received.)

📘

Processing occurs asynchronously, and no further response is sent by the server. If a given record fails, processing resumes with the next record. If invalid data was submitted (e.g. badly-formed JSON), no action is taken.

🚧

At this time, the param values in bulk submit requests are not validated.