Keitaro tracker + CAPI: attribution 62% → 96% and ROAS +18%
Performance agency with in-house media-buying team and $400-900k/mo media budget. Six buyers worked blind: after iOS 17.4 and SKAdNetwork v5, attribution dropped to 62%. Deployed server-side Keitaro + CAPI across three platforms, restored attribution, and eliminated morning manual reporting.
Buyers optimize blind, ROAS at 36-48 hr lag
Performance agency with in-house media-buying team: six buyers on a multi-vertical funnel, $400-900k/mo media budget. Buying runs on FB, TikTok, Yandex.Direct simultaneously — each platform with its own attribution quirks.
After Apple rolled out iOS 17.4 and FB hard-switched to SKAdNetwork v5, about 38% of conversions stopped reaching Ads Manager — partly lost to Safari cookie blocking, partly to shared signal loss. Buyers saw one picture in the ad account, another in Metrika / GA, and a third in CRM.
Every morning each buyer spent 2-2.5 hours manually reconciling data: FB account → Excel → join with Metrika → join with CRM → decision on what to kill / what to scale. Across the team — 15+ hours of daily reporting. Meanwhile, ROAS arrived with a 36-48 hour lag after spend — meaning a killer creative ran for another day and a half after going negative.
Keitaro + server-side CAPI fan-out across all 3 platforms
Architecture — "server-side single source of truth". Keitaro receives all clicks and conversions, attaches a unified event_id, and via an nginx+Lua proxy layer fans out to three platforms' CAPIs with proper deduplication. Metabase reads Keitaro directly — real-time ROAS without manual exports.
Selectel + KingsHost VPS 32GB. 1.2M clicks/day, subdomain masks, anti-bot.
Server-to-server postback from landing / CRM / payment provider. Single event_id.
Dedup by event_id, enrichment with fbclid/ttclid/yclid, building payloads per CAPI.
FB CAPI Gateway + TikTok Events API + Yandex Measurement Protocol — in parallel.
Real-time ROAS dashboard per buyer / GEO / connection. Telegram alerts on spend > X without conversions.
Keitaro as single source of truth
All clicks from all platforms pass through Keitaro: each click gets a unique event_id, sticky cookie + IP fingerprint, bound to campaign / adset / creative. Selectel VPS 32GB handles peak 1.2M clicks per day, KingsHost is the backup edge node for geo distribution and failover.
Server-side CAPI fan-out
A conversion from landing / CRM / PSP arrives at Keitaro via server-to-server postback with the same event_id. The nginx+Lua layer dedups (FB likes to send the same events via pixel — they must be marked as duplicate), enriches fbclid / ttclid / yclid and builds three parallel payloads per platform. FB CAPI Gateway, TikTok Events API, Yandex Measurement Protocol — all return server-side signals to the platform.
Metabase: real-time ROAS without exports
Keitaro writes to PostgreSQL, Metabase reads directly. Dashboards per buyer: ROAS by campaign connection over the last 6 / 24 / 72 hours, breakdown by GEO, creative, placement. Morning manual reporting is no longer needed — the buyer opens the dashboard and sees what they would have spent 2.5 hours assembling in Excel.
Telegram alerts: killer creatives 36 hr → 4 hr
A scheduled job every 30 minutes reads Keitaro and checks: if spend > $X without conversions or CPL rose > Y% vs the rolling window — a Telegram alert fires to the buyer. Average time-to-decision on killing an unprofitable creative dropped from 36-48 hours to 4 hours.
Server-side all the way
Single source of truth: clicks, conversions, event_id, anti-bot, campaigns
Server-side Conversions API for FB Ads with auto-dedupe against pixel
Server-side events for TikTok Ads, enriched with ttclid and hashed PII
Server-side offline conversions to Yandex.Direct / Metrika without JS
Proxy layer: dedup, enrichment, parallel payload fan-out
Keitaro click/conversion storage — base for Metabase queries
Real-time ROAS dashboard per buyer / GEO / connection without manual exports
Primary Keitaro node — handles 1.2M clicks/day
Backup edge for geo distribution and peak failover
Buyer alerts: spend > X without conversions, CPL up Y% vs baseline
What changed in 60 days
conversions return to platforms via CAPI
from unprofitable budget to killing the creative
over 60 days at the same media budget
per buyer — Metabase shows real-time view
setup + recurring (hosting + maintenance)
The +18% ROAS effect isn't attribution magic, it's the sum of two secondary effects: (1) platforms optimize lookalike audiences on complete data and outperform on their own; (2) buyers kill unprofitable creatives 9× faster. The sum is +18% over 60 days.
Bonus — a closed data perimeter. After SKAdNetwork v5 many buyers moved to "blind" aggregated event measurement; here the team sees conversions per creative-id with a minute's delay. That's a qualitatively different operating model.
When you need a server-side tracker
Universal pattern — "media budget > $50k/mo and attribution has started to leak". Wherever iOS 17.4 / SKAdNetwork v5 / Safari ITP / Chrome 3rd-party cookie deprecation have broken classic pixel schemes:
- → Performance agencies / affiliate teams — typical ICP for Keitaro+CAPI
- → E-com brands with in-house media buying — FB + TikTok + Yandex simultaneously
- → Sub-affiliates / nutra / dating — where platform shadow-banning requires server-side data
- → SaaS with a complex funnel — where conversion = trial → paid in 14-30 days (cookies died long ago)
- → App developers — FB + TikTok on iOS/Android, SKAd v5 doesn't cover 100% of cases
- → Lead-gen funnels — where conversion = call center call (2-7 days after click)
- Keitaro deployment with anti-bot + subdomain masking
- FB CAPI Gateway + TikTok Events API + Yandex MP connection
- nginx+Lua proxy layer with event_id deduplication
- Metabase dashboards for real-time ROAS per buyer / GEO / connection
- Telegram alerts: kill-creative / scale-creative triggers
- Team training + runbook for typical failover incidents
If media budget is > $50k/mo and attribution is leaking — server-side fixes it
780k setup + 38k/mo maintenance. By week 6 buyers have real-time ROAS, by day 60 — measurable uplift. Suitable for in-house media-buying teams + performance agencies. Guaranteed > +12% to attribution even on conservative funnels.
Аудит за 5 000 ₽ — с конкретным отчётом и сметой
Расскажу что внедрить в вашем бизнесе в первую очередь, какая будет окупаемость, и нужен ли вообще AI для вашей задачи (иногда — нет).
Или просто напишите свой вопрос — отвечу в течение 2 часов