The Business Challenge
Mobile attribution platforms (AppsFlyer, Adjust) and ad platforms (Google Ads, Meta, TikTok) natively optimize on the earliest digital signal: the app install or the lead form submission. However, for a fintech lending app, an install or even an application is a low-fidelity signal. The true business value is realized only when a loan is disbursed, which typically happens 3 to 14 days later after credit checks and underwriting.
Without feeding this offline conversion data back to the ad algorithms, Smart Bidding optimizes for volume of applications rather than quality. With it, we shift the bidding strategy to target actual loan disbursements and pass the real monetary value. The historical difference in Return on Ad Spend (ROAS) is typically 2–4×.

Solution Architecture
To solve this we designed a Server-to-Server (S2S) pipeline. Our core design principle was "one normalization step, three adapters." Instead of building three disparate API connections that extract data from the CRM independently, we built a centralized staging table.
Step-by-Step Implementation
1. Click ID Capture (Client-Side)
Click IDs must be captured at the exact moment of the ad click and stored server-side. Relying solely on client-side storage (cookies, localStorage) leads to data loss for users who switch devices or use browsers with stringent Intelligent Tracking Prevention (ITP) like Safari.
2. Centralized Staging Schema (PostgreSQL)
We built a normalized schema where each row represents a conversion with tracking tokens and boolean flags indicating sync status per network.
3. IIN as the Ultimate Match Key
In Kazakhstan, the IIN (ИИН, 12-digit national ID) represents an exceptionally strong matching key. Every adult possesses one, it remains completely stable, and it is universally collected during loan applications. By hashing the IIN, we process it as a highly reliable external_id for Meta CAPI and TikTok Events API.
4. Airflow Orchestration
We orchestrated the actual synchronization using Apache Airflow. The DAG pulls fresh conversions nightly and fans out the upload parallelly to the three respective APIs. Deduplication is heavily enforced using the loan_id.
Results & Impact
Implementing the S2S pipeline fundamentally shifted our UA strategy. We bypassed the limitations of iOS 14.5+ and ITP by owning the tracking server-side. Within 30 days of algorithm relearning, we recorded:
- A 38% decrease in Cost Per Funded Loan.
- 100% accurate ROAS reporting in ad managers.
- Elimination of manual CSV uploads, saving the analytics team over 10 hours a week.
Further Reading & Deeper Dive
For a broader perspective on Server-Side Tagging and the inevitable shift away from client-side cookies, check out:
- Google’s Official Guide to Offline Conversion Imports (OCI)
- Meta Conversions API (CAPI) Architecture Best Practices
- Why it matters: As third-party cookies are aggressively deprecated by Safari (ITP) and eventually Chrome, relying purely on front-end tracking like pixels will lead to a 30-50% signal loss. Server-Side pipelines like the one detailed here are no longer optional for serious scale.