Skip to main content
Back to Blog

Taboola Server-Side Tracking: Complete S2S Setup Guide (2026)

Set up Taboola server-side conversion tracking (S2S postback) with tblci click ID capture. Step-by-step guide for Shopify, WooCommerce, and custom funnels.

10 min read
Taboola Server-Side Tracking: Complete S2S Setup Guide (2026)

Key Takeaways

  • Taboola server-side tracking (S2S) sends conversion data directly from your server to Taboola's actions-handler endpoint, bypassing browser ad blockers and Safari ITP cookie restrictions
  • Taboola S2S relies on the `tblci` (Taboola Click ID) parameter appended to landing page URLs — capturing and persisting `tblci` across user sessions is the foundation of accurate native ad attribution
  • Native advertising campaigns often feature multi-step advertorial or pre-sale funnels where 30–45% of browser pixel events are lost to cross-domain navigation and ad blockers
  • Taboola's SmartBid algorithmic bidding requires accurate purchase value and conversion volume to optimize CPA — feeding clean server-side data directly lowers native ad acquisition costs
  • Filtering bot traffic before sending S2S postbacks prevents fake leads and scrapers from poisoning Taboola campaign optimization models

What is Taboola server-side tracking (S2S)?

Taboola server-side tracking (commonly referred to as Taboola S2S or S2S Postback) is an attribution mechanism that transmits conversion events directly from your backend server or tracking platform to Taboola's servers via an HTTP request. Unlike the browser-based Taboola Pixel, which executes client-side JavaScript in a user's web browser, Taboola S2S communicates server-to-server.

The fundamental mechanic relies on Taboola's proprietary click identifier: tblci. When a visitor clicks your native ad on a publisher site (such as CNBC, Business Insider, or Yahoo), Taboola appends ?tblci={CLICK_ID} to your landing page URL. Your server captures this parameter, stores it against the visitor's session or cart, and sends it back to Taboola when the visitor purchases or completes a lead form.

[Taboola Ad Click] 
       │ (appends ?tblci=GiD_AbC123...)
       ▼
[Landing / Advertorial Page] ──► (Server stores tblci in 1st-party cookie)
       │ (User navigates to checkout)
       ▼
[Order Completed / Lead Submitted]
       │
       ▼
[Your Server / SignalBridge] ──► (HTTP GET Postback with click-id=GiD_AbC123...)
       │
       ▼
[Taboola S2S Endpoint] ──► (HTTP 204 No Content: Conversion Attributed!)

Why native advertisers lose 30–45% of conversions with pixel-only tracking

Native advertising campaigns have unique structural characteristics that make standard browser-based tracking particularly prone to data loss:

ChallengeImpact on Browser PixelTaboola S2S Solution
Advertorial / Pre-sale funnelsUser lands on an editorial domain (brand-review.com) and clicks through to a shop (store.com). Third-party cookies fail across domains.tblci is passed as a URL parameter or preserved via first-party server storage across domains.
Ad blockers & Brave Browser35–42% of native news readers run ad blockers that block trc.taboola.com pixel requests.Server sends postbacks directly from your backend; client ad blockers cannot intercept server requests.
Safari ITP 24-hour cookie limitsSafari truncates JavaScript-set client cookies to 24 hours when tracking URL parameters are detected.Server-set HTTP-only cookies retain the tblci for 30–90 days.
Payment gateways (PayPal, Klarna)Customers complete checkout and close the browser tab before returning to the thank_you page.Server-side webhook triggers upon payment confirmation regardless of browser state.
Bot & scraper contaminationNative inventory encounters click-bots that fill forms and trigger pixel events.Server-side bot filtering blocks non-human sessions before notifying Taboola.

Without server-side tracking, Taboola's SmartBid algorithm operates on incomplete signals. If 35% of your sales are invisible to Taboola, SmartBid artificially suppresses bids on high-performing publishers, incorrectly driving your budget toward cheaper, low-converting placements.


How the Taboola S2S Postback URL works

Taboola's server-to-server tracking contract is one of the cleanest in digital advertising. It does not require complex bearer token handshakes, secret keys, or OAuth flows. Instead, it uses a standardized GET request containing URL parameters.

1. Base endpoint

https://trc.taboola.com/actions-handler/3/s2s-action

2. Supported URL parameters

ParameterTypeRequired?DescriptionExample
click-idStringYesThe exact tblci value captured on the initial ad click.GiD_AbCd12345
nameStringYesThe conversion event rule name defined in Taboola Backstage.make_purchase
revenueNumberOptionalOrder total or lead value (finite float/int).79.99
currencyStringOptional3-letter ISO currency code.USD, GBP, EUR
orderidStringOptionalUnique transaction identifier to prevent duplicate reporting.ORD-98432
quantityIntegerOptionalNumber of items purchased.2

3. Example S2S postback request

GET /actions-handler/3/s2s-action?click-id=GiD_AbCd12345&name=make_purchase&revenue=124.50&currency=USD&orderid=10492 HTTP/1.1
Host: trc.taboola.com
User-Agent: SignalBridge-S2S/1.0

4. Expected response status codes

  • 204 No ContentSuccess. Taboola accepted the conversion event and attributed it to the campaign associated with that click-id.
  • 408 / 429Timeout / Rate Limited. The request should be requeued and retried with exponential backoff.
  • 500 / 502 / 503Temporary Server Error. Taboola's ingestion layer is degraded; retry with backoff.
  • 400 Bad RequestUnrecoverable. Malformed click ID, missing required parameter, or invalid format.

Taboola standard event name mapping

Taboola allows custom conversion names, but using standardized conventions ensures seamless reporting and alignment across your multi-platform tracking stack:

SignalBridge / Universal EventTaboola Standard Event NameTypical Use Case
PageViewpage_viewAdvertorial / article reading
ViewContentview_contentProduct detail page view
AddToCartadd_to_cartAdding item to shopping bag
InitiateCheckoutinitiate_checkoutEntering checkout steps
Purchasemake_purchaseCompleted e-commerce order
LeadleadForm submission, consultation inquiry
CompleteRegistrationcomplete_registrationAccount creation, newsletter signup
SubscribesubscribeMonthly recurring subscription

Step-by-step setup guide: Implementing Taboola S2S

Step 1: Ensure tblci tracking is enabled in Taboola Backstage

By default, Taboola appends tblci automatically to campaign tracking. However, you should confirm this in your account settings:

  1. Log in to Taboola Backstage (backstage.taboola.com).
  2. Navigate to Campaign Management.
  3. Under your campaign settings, check the Tracking Code section.
  4. Ensure your destination URL template does not strip query parameters, or explicitly include:
    ?utm_source=taboola&utm_medium=native&tblci={click_id}
    
    (Note: Taboola dynamically replaces {click_id} with the unique visitor click ID).

Step 2: Capture and persist the tblci parameter

When a visitor lands on your website, you must capture the tblci query parameter immediately and store it in a first-party cookie or server session.

Here is a lightweight JavaScript snippet to persist tblci for 30 days:

// Capture and persist Taboola Click ID (tblci)
(function() {
  const urlParams = new URLSearchParams(window.location.search);
  const tblci = urlParams.get('tblci');
  
  if (tblci && tblci.trim().length > 0) {
    const expires = new Date(Date.now() + 30 * 864e5).toUTCString();
    document.cookie = `sb_tblci=${encodeURIComponent(tblci)}; expires=${expires}; path=/; SameSite=Lax; Secure`;
  }
})();

For advertorial-to-store funnels, ensure your outbound links to your Shopify or WooCommerce store append the stored tblci:

// Append tblci to outbound shop links
document.querySelectorAll('a[href*="yourshop.com"]').forEach(link => {
  const tblci = getCookie('sb_tblci');
  if (tblci) {
    const url = new URL(link.href);
    url.searchParams.set('tblci', tblci);
    link.href = url.toString();
  }
});

Step 3: Dispatch the S2S conversion postback upon purchase

When your server processes a checkout completion (e.g., via a Shopify webhook, Stripe charge, or WooCommerce action), construct and execute the S2S GET request:

// Node.js / TypeScript Example
async function sendTaboolaConversion(event: {
  clickId: string;
  eventName: string;
  revenue: number;
  currency: string;
  orderId: string;
}): Promise<boolean> {
  const endpoint = new URL('https://trc.taboola.com/actions-handler/3/s2s-action');
  endpoint.searchParams.set('click-id', event.clickId);
  endpoint.searchParams.set('name', event.eventName);
  endpoint.searchParams.set('revenue', event.revenue.toFixed(2));
  endpoint.searchParams.set('currency', event.currency);
  endpoint.searchParams.set('orderid', event.orderId);

  try {
    const response = await fetch(endpoint.toString(), {
      method: 'GET',
      headers: {
        'User-Agent': 'SignalBridge-S2S/1.0',
      },
    });

    // Taboola returns 204 No Content on success
    return response.status === 204;
  } catch (error) {
    console.error('Failed to dispatch Taboola S2S postback:', error);
    return false;
  }
}

Step 4: Configure the conversion rule in Taboola Backstage

To see conversions report against your campaigns:

  1. In Taboola Backstage, go to TrackingConversions.
  2. Click New Conversion.
  3. Choose Event TypeServer-to-Server (S2S).
  4. Set the Event Name to match the exact string you send in the name parameter (e.g., make_purchase).
  5. Set the Category to Purchase or Lead.
  6. Select your Attribution Window (e.g., 30-day post-click).
  7. Save the rule. Once the first postback is received, the conversion status will turn from No Activity to Active.

High-volume advertisers: Taboola bulk S2S postback

If your store processes thousands of transactions per day, making individual HTTP requests can cause queue bottlenecks. Taboola provides an account-specific Bulk S2S endpoint:

https://trc.taboola.com/{numeric_account_id}/3/bulk-s2s-action

Unlike the single GET postback, the bulk endpoint accepts an HTTP POST with a JSON array of up to 1,000 events per batch:

[
  {
    "click_id": "GiD_11111",
    "name": "make_purchase",
    "revenue": 54.00,
    "currency": "USD",
    "order_id": "ORD-101",
    "timestamp": 1726300800000
  },
  {
    "click_id": "GiD_22222",
    "name": "make_purchase",
    "revenue": 112.50,
    "currency": "USD",
    "order_id": "ORD-102",
    "timestamp": 1726300815000
  }
]

SignalBridge uses this bulk architecture automatically for enterprise e-commerce merchants, buffering and delivering events in resilient background batches.


Why Taboola advertisers must filter bot traffic before S2S dispatch

Native ad publishers frequently experience non-human traffic from web crawlers, competitive intelligence bots, and click farms. If a bot completes a form or triggers a checkout event, sending that event to Taboola creates a dangerous feedback loop:

  1. SmartBid receives a conversion signal from a bot session.
  2. The algorithm flags that publisher placement and audience demographic as "high-converting."
  3. Taboola allocates more ad budget to that exact placement.
  4. Your CPA climbs while genuine human sales stagnate.

By utilizing bot filtering prior to dispatching your Taboola postback, fake conversions are stripped at the server level. Taboola only receives verified human transactions, keeping your campaign optimization models clean.


How Taboola S2S feeds into assisted conversions and multi-touch attribution

Native advertising is rarely a single-touch direct response channel. A consumer reading an article on an online newspaper typically discovers your product on Taboola, researches it on Google Search two days later, and eventually purchases via an email retargeting link.

Under standard last-click models, Taboola receives zero attribution credit, leading marketers to prematurely turn off profitable campaigns.

When you implement server-side tracking, your attribution platform records Taboola as the crucial assisted conversion touchpoint. By preserving the initial tblci and stitching it to the customer journey via first-party server data, you calculate true Return on Ad Spend (ROAS) across the entire funnel.


Automating Taboola S2S with SignalBridge

Setting up server-side postbacks manually requires configuring serverless endpoints, database storage for click IDs, cookie persistence logic, and retry outboxes.

SignalBridge automates Taboola S2S in under 5 minutes:

  • 1-Click Native Integration — Toggle Taboola on in your SignalBridge dashboard.
  • Automatic tblci Capture — SignalBridge's lightweight tag records the Taboola click ID and binds it to the visitor session.
  • Shopify & WooCommerce Webhooks — Real purchases automatically trigger Taboola S2S postbacks with order ID, revenue, and currency.
  • Resilient Retry Outbox — If Taboola's API experiences downtime, SignalBridge queues and retries with exponential backoff so zero conversions are dropped.
  • Built-in Bot Protection — Non-human traffic is blocked from triggering conversion postbacks.
  • Ad Spend Synchronization — Pull Taboola ad spend automatically alongside Meta, Google, and TikTok for real-time blended ROAS and MER reporting.

Key takeaways

  1. Taboola S2S bypasses browser signal loss — recovers 30–45% of conversions lost to ad blockers, cross-domain advertorial hops, and Safari ITP.
  2. The tblci click ID is the foundation — capture and persist this URL parameter across all pre-sale and checkout steps.
  3. No authentication keys required — postbacks rely on deterministic click ID attribution via HTTP GET to https://trc.taboola.com/actions-handler/3/s2s-action.
  4. SmartBid requires clean revenue data — passing order totals and order IDs enables automated Target ROAS optimization.
  5. Filter bots before postback — protect your algorithmic bid models from spending budget on non-human clicks.
  6. Value Taboola as an assist channel — evaluate native ads with multi-touch attribution, not last-click alone.

Ready to recover more conversions?

Start tracking what your pixels miss. Set up in 5 minutes, no credit card required.

Start Free Trial