The performance marketing stack has been running on borrowed time for three years. Third-party cookies are dead in Chrome. Safari's ITP capped first-party JS cookies at seven days in 2023. And yet the default call-tracking setup at most US revenue teams still fires a client-side pixel after a call, crosses its fingers that the attribution matches, and reconciles manually at month-end. We've seen this across 90+ teams. The fix is server-side conversion APIs — and the architecture is more straightforward than most engineers expect.
The three signal types that actually move bid prices
Not every call signal is equal from a bid-learning perspective. Google and Meta's respective algorithms weight conversion signals by recency, reliability, and whether they correlate with revenue outcomes. After instrumenting hundreds of campaigns, we've landed on three signal types that consistently drive bid-price changes:
Latency budgets: the spec sheet no one publishes
Both Google and Meta are opaque about the exact windows, but signal testing across 40+ accounts gives us a practical working spec:
| Signal Type | Google (GEC) | Meta (CAPI) | Impact if late |
|---|---|---|---|
| Call connected | <60 seconds | <90 seconds | Missed impression → bid model degrades |
| Duration threshold | <5 minutes | <10 minutes | Signal discounted by recency algorithm |
| Closed outcome | Up to 90 days | Up to 28 days | Minimal — offline conversions tolerate delay |
The implication: your webhook infrastructure needs to be synchronous on the call-connected signal. A 5-minute batch job will miss the window on the highest-value micro-conversion signal you're sending. We process call-connected signals in under 800ms end-to-end — call platform event → normalization queue → CAPI push.
Architecture: the pipeline that works at scale
The pattern we've standardized across deployments has four stages. Each stage has a clear contract with the next, which means any component can be swapped without touching the rest of the pipeline:
- Event ingestion. Call events arrive via webhook from the telephony platform. We normalize caller ID, GCLID/FBCLID, call duration, and outcome status into a common schema. GCLIDs expire in 90 days — if you're storing them client-side in a cookie with a 7-day ITP cap, you're losing attribution. Store the GCLID server-side on first touch.
- Deduplication. The same call can generate multiple events (answered, qualified, transferred, closed). Your CAPI pipeline must deduplicate on a stable event ID or you'll inflate conversions and confuse the algorithm. We use a composite key of call_sid + event_type + timestamp_floor(5s).
- Signal enrichment. Before pushing to Google or Meta, enrich the event with hashed PII (email, phone for enhanced matching) if you have consent. Enhanced matching improves the match rate by 15–25% in our deployments, directly improving the signal quality score each platform reports.
- Platform push + retry. Push to each platform's API with exponential backoff on transient errors. Both APIs return a match rate estimate — log this per campaign and alert if it drops below your baseline. A drop in match rate before a drop in ROAS is the leading indicator you want.
The CPL tax: what bad attribution actually costs
We can quantify the cost of running without server-side conversion APIs. Across the mortgage and insurance accounts we've migrated, the before/after looks consistent:
The mechanism: when Google and Meta can't see your conversions, Smart Bidding optimizes toward proxy signals — ad clicks, form fills, call attempts — instead of actual revenue events. Campaigns drift toward traffic that looks like it converts but doesn't. Closing the loop pulls the algorithm back toward buyers.
If your platform is already generating call events but you haven't pushed them to your ad platforms server-side, you're paying a CPL tax today. The migration typically takes 2–3 engineering days. The algorithm re-learning takes 3–5 weeks. The math almost always works.
Ready to close the loop on your
revenue stack?
Teldrip Pulse handles call tracking, RTB and attribution. Signal handles telephony, AI voice agents and outbound. Spin up a free trial in minutes.
7-day free trial on Signal · Cancel any time