3 client slots open —     
hello@native-advertising.net
native-advertising.net

▸ Implementation · 2026 edition

Native ads server-side tracking.
Reconcile your reports.

Pixel-based attribution lost 18–35% of native conversions in 2025. Privacy Sandbox killed the rest in October. S2S is the way the auction now expects you to report — and the operators who shipped it in time saw their cost-per-action drop on paper without changing anything in the campaign.

▸ Why this matters now

Three things broke at the same time.

01

ITP + ad-blockers

Safari's Intelligent Tracking Prevention caps client-side cookies at 7 days. uBlock-class extensions strip native pixel calls outright. Combined hit on browser-only attribution: 18–25% loss.

02

Privacy Sandbox deprecation

Google removed the Topics API and most third-party-cookie surface in October 2025. Any tracking that depended on cross-site identifiers stopped working overnight.

03

Platform auctions punish blind spend

Native networks bid against their own conversion data. If you under-report, their optimization engines bid you down — even when the campaign is profitable. Reporting accurately literally makes the auction cheaper for you.

▸ Per network

S2S coverage across the 7-network stack.

NetworkS2S endpointClick ID paramMaturity
TaboolaConversions API (S2S)tblci Mature
Outbrain / TeadsOBClickID Postbackobclid Mature
MGIDS2S Postback URLclick_id Solid
Yahoo NativeDOT Server-side APIdotpid Solid
NewsbreakCAPI v2nb_clid Solid
MediagoS2S Postback URLclick_id Early
RevContentS2S Postback URLrev_id Solid

▸ Walk-through

Ship S2S in 5 steps.

Below is the exact sequence we run when onboarding a new client at native-advertising.net. The whole pipeline ships in 2–4 working days, and the moment it’s live the in-platform CPA numbers drop by the amount that was previously missing from the report.

  1. STEP 01~30 min

    Capture every click ID at landing

    Add a single first-party script (or your tag-manager equivalent) that reads tblci, obclid, mgid_id, dotpid, nb_clid, click_id, rev_id from the URL on landing-page load and writes each one to a first-party cookie + your session/order context.

  2. STEP 02~1 day

    Persist click IDs into your order/lead record

    When the user converts (Shopify checkout, lead form, etc.), write every captured click ID into the database row alongside the conversion. This is the bit most operators skip — and it's why their S2S accuracy stays bad.

  3. STEP 03~1 day

    Build the S2S sender (one job per network)

    A queue worker that listens for new conversion events and POSTs each one to the matching network's S2S endpoint with click ID + value + timestamp. Retries on 5xx. Dedupes on order ID to survive replay.

  4. STEP 04~half day

    Reconcile in-platform vs ground truth

    Pull each platform's reported conversions for the last 30 days, compare to your shipped-orders table by click ID. Discrepancy over 5%? You have a bug. We typically hit sub-2% match within the first reconciliation pass.

  5. STEP 05~5 min per campaign

    Switch optimization bids onto the S2S signal

    Inside each platform, switch the campaign's optimization goal from the pixel event to the S2S event. From this point onwards the platform's bidder is optimizing against your real conversions, not the under-reported pixel ones — which is when in-platform CPA drops cleanly.

Want us to ship it for you?

60-min call. We map your stack, identify the gaps, and quote a fixed scope to get every network onto S2S. Most accounts go live in under a week.