The Attribution Problem
When you run campaigns across both Meta Ads and Google Ads, you quickly encounter a fundamental problem: both platforms claim credit for the same conversions.
Meta reports a conversion when a user clicks your ad within 7 days or views it within 1 day before converting. Google reports a conversion when a user clicks your ad within 30 days before converting.
The result? Your combined platform-reported conversions often exceed your actual conversions by 30-60%.
Why Platform Attribution Fails
Double-Counting Is the Default
Consider a typical user journey:
- User sees your Meta ad on Monday (impression)
- User searches your brand on Google on Tuesday (click)
- User converts on Wednesday
Meta reports: 1 view-through conversion
Google reports: 1 click-through conversion
Reality: 1 actual conversion
Different Attribution Windows
| Platform | Click Window | View Window |
|----------|-------------|-------------|
| Meta Ads | 7 days | 1 day |
| Google Ads | 30 days | N/A default |
| GA4 | Last click | N/A |
Each platform uses different rules, making direct comparison impossible.
Building Your Unified Model
Step 1: Establish a Single Source of Truth
Your server-side data (CRM, database, or analytics platform) should be the foundation. This is where actual transactions live.
Key principle: Platform-reported data is directional. Server-side data is factual.
Step 2: Implement UTM Tracking
Consistent UTM parameters across all campaigns allow you to attribute at the session level:
- `utm_source`: meta, google
- `utm_medium`: cpc, paid-social
- `utm_campaign`: campaign name
- `utm_content`: ad creative identifier
Step 3: Build the Reconciliation Layer
Compare platform-reported conversions against server-side data:
- Pull conversion data from Meta Ads API
- Pull conversion data from Google Ads API
- Pull actual conversion data from your server
- Match using timestamps, order IDs, or user identifiers
- Calculate the platform inflation ratio
Formula: Platform Inflation = Platform-Reported Conversions ÷ Actual Conversions
Step 4: Apply Adjusted Attribution
Once you know each platform's inflation ratio, you can calculate true ROAS:
Adjusted ROAS = (Revenue × Deflation Factor) ÷ Ad Spend
This gives you a realistic view of each channel's contribution.
Practical Implementation
Using GA4 as a Bridge
GA4's data-driven attribution model can serve as a useful middle ground:
- It considers all touchpoints in the conversion path
- It uses machine learning to assign fractional credit
- It's free and already connected to your Google account
Limitation: GA4 has limited visibility into Meta Ads impression data.
Server-Side Tracking
For the most accurate attribution:
- Meta Conversions API (CAPI): Send server-side events directly to Meta
- Google Ads Enhanced Conversions: Match first-party data with Google's records
- GA4 Measurement Protocol: Send server-side events to GA4
Benefit: Survives iOS tracking restrictions, ad blockers, and cookie deprecation.
Real-World Example
E-commerce brand running $100K/month across Meta and Google:
Before Unified Attribution:
- Meta reported ROAS: 4.2x
- Google reported ROAS: 3.8x
- Implied total revenue: $800K (impossible—actual revenue was $520K)
After Unified Attribution:
- Meta adjusted ROAS: 2.8x
- Google adjusted ROAS: 2.4x
- Budget reallocation based on true ROAS improved blended ROAS by 22%
Key Takeaways
- Never trust platform-reported conversions at face value
- Establish server-side data as your source of truth
- Implement consistent UTM tracking across all channels
- Calculate and apply platform inflation ratios
- Use GA4 data-driven attribution as a directional guide
Unified attribution isn't about finding the "right" model—it's about building a consistent framework that enables better decision-making.
See your true cross-channel attribution → [Try Prismatics Free](https://www.prismatics.co/signup)