The bread and butter of campaigns is user data. And for a long time, data and marketing teams could rely on pixel-based tracking to understand their audience. That worked well — until privacy regulations and cookie restrictions made that approach increasingly unreliable. That’s why ad platforms introduced Conversion APIs, or CAPIs, and we think it’s one of the most underappreciated yet powerful ways to improve your campaign performance.
How CAPI works
Conversion APIs allow you to share data with ad platforms directly from your data warehouse to the ad platform's server, so user events get shared through a secure API rather than the user's browser. The ad platforms use this data to measure your campaigns' performance and power their AI algorithms, which drive targeting and creative optimization, dynamic bidding, and automated budget allocation. These platforms make automated decisions based on the data you send — and the better the data, the better the outcomes. You can think of your data as their training fuel: It teaches the system to make better decisions.
But the challenge is that the data schema requirements aren't universal across platforms. Each has different nuances, making every Conversion API implementation unique. That means every new setup can feel like starting from scratch, with data teams spending extra time mapping events and attributes to fit slightly different rules. The result is slower launches, more complexity to manage, and more opportunities for errors.
The path to better implementation
A better approach is to use a universal schema, which is a single structure that can be reused across platforms. Instead of designing separate schemas for each ad channel, you define your events and attributes once and deploy them everywhere. This dramatically simplifies implementation and management while meeting each platform’s unique requirements behind the scenes.
To put this universal schema approach into practice, we’ve created a comprehensive reference that combines everything together. It covers:
- All accepted attributes and identifiers
- The relative importance of these identifiers, measured by their impact on match quality
- Schema requirements for every major ad platform
With this resource, you don’t need to start from scratch or juggle multiple documentation sets. Instead, you can align your data once and reuse it everywhere.
| Priority | Attribute | Google Ads | Facebook Ads | LinkedIn Ads | Bing Ads | Reddit Ads | Notes |
|---|---|---|---|---|---|---|---|
| ✅ Required | Conversion Identifier (ID / Rule / Label) | ✅ | ✅ | ✅ | N/A | ✅ | Defines which conversion type or goal is being tracked |
| ✅ Required | Event Name / Type | N/A | ✅ | ✅ | ✅ | ✅ | Google uses predefined actions, others use event names |
| ✅ Required | Event Time (Timestamp) | ✅ | ✅ | ✅ | ✅ | ✅ | Essential for matching and attribution |
| ✅ Required | Action Source | N/A | ✅ | N/A | ❌ | ✅ | Required for Facebook and Reddit |
| ✅ Required | Event Source URL (if web) | N/A | ✅ (if website) | N/A | ✅ (web) | ✅ | For website-based events |
| ✅ Required | Client User Agent | N/A | ✅ (if website) | N/A | N/A | ✅ | Used to strengthen web attribution |
| ✅ Required | Offline Dataset / Integration ID | ✅ (offline) | ✅ (offline) | ✅ (offline) | ✅ (offline) | ❌ | Used for offline conversion uploads |
| ✅ Required | User Identifier (at least one of) | At least one | At least one | At least one | At least one | At least one | Email, phone, name + location, or click ID |
| ⚡ High | GCLID / Click ID (GCLID, FBCLID, etc.) | ✅ | ✅ (if available) | N/A | MSCLKID | External ID | Platform-specific click IDs improve attribution |
| ⚡ High | Email (SHA-256) | ✅ | ✅ | ✅ | ✅ | ✅ | Most effective match key across all platforms |
| ⚡ High | Phone (SHA-256) | ✅ | ✅ | ❌ | ✅ | ❌ | Not supported on LinkedIn or Reddit |
| ⚡ High | Conversion Value | ✅ | ✅ | ✅ | ✅ | ✅ | Used for revenue tracking and ROAS |
| ⚡ High | Currency Code | ✅ | ✅ | ✅ | ✅ | ✅ | Accompanies conversion value |
| ⚡ High | Deduplication ID (Order/Event ID) | ✅ | ✅ | ✅ (web only) | ✅ | ✅ | Avoids double-counting when event is duplicated across sources |
| 📈 Medium | First Name (hashed or plain text) | ✅ (optional) | ✅ (optional) | ✅ (required if no email) | ✅ (optional) | ❌ | Used for advanced matching in some platforms |
| 📈 Medium | Last Name (hashed or plain text) | ✅ (optional) | ✅ (optional) | ✅ (required if no email) | ✅ (optional) | ❌ | Same as above |
| 📈 Medium | Country (plain or hashed) | ✅ (optional) | ✅ (optional) | ✅ | ✅ | ✅ | Used for location-based matching |
| 📈 Medium | ZIP / Postal Code | ✅ (optional) | ✅ (optional) | ❌ | ✅ | ❌ | Part of address-based identifiers |
| 📈 Medium | State / Region | ✅ (optional) | ✅ (optional) | ❌ | ✅ | ❌ | Helps refine attribution on some platforms |
| 📈 Medium | City | ✅ (optional) | ✅ (optional) | ❌ | ✅ | ❌ | Used in some advanced matching routines |
| 🧊 Low | Browser ID (FBP Cookie) | ❌ | ✅ (optional) | ❌ | ❌ | ❌ | Supplemental Facebook-only identifier |
| 🧊 Low | IP Address | ❌ | ✅ (optional) | ❌ | ✅ | ✅ | Used only if other match keys are weak |
| 🧊 Low | Consent Flag / Legal Basis | ✅ (if PII used) | ❌ | ❌ | ✅ (optional) | ❌ | Required if user data is uploaded in regulated regions |
The document can be viewed here. For more about conversion APIs, check out our definitive guide.















