Reported ROAS
1.70x
Total revenue / total spend
Click-only ROAS
1.25x
Click revenue / total spend
View-only ROAS
0.44x
View revenue / total spend
Total Revenue
€45,301
Click: €33,410 / View: €11,892
Total Purchases
922
Click: 719 / View: 203
Avg CPA
€28.99
€26,726.27 / 922 purchases
ROAS Calculation Tree
ROAS CALCULATION
├── Total Spend: €26,726.27 (API field: spend)
├── Purchase Value (Total): €45,301.27 (API field: action_values where action_type=purchase)
├── Purchase Value (Click): €33,409.61 (API field: action_values, attribution=7d_click)
├── Purchase Value (View): €11,891.66 (= Total - Click)
├── Reported ROAS: 1.70x (= Total Purchase Value / Spend)
├── Click-Only ROAS: 1.25x (= Click Purchase Value / Spend)
├── Purchases (Total): 922 (API field: actions where action_type=purchase)
├── Purchases (Click): 719 (API field: actions, attribution=7d_click)
├── Purchases (View): 203 (= Total - Click)
├── Implied AOV: €49.13 (= Total Purchase Value / Total Purchases)
└── AOV Sanity Check: PASS (expected EUR 30-80 for cosmetics)
ROAS by Campaign (Reported vs Click-Only)
Attribution Split (Purchases)
Campaign ROAS Detail
| Campaign ▲▼ |
Spend ▲▼ |
Purch. Total ▲▼ |
Purch. Click ▲▼ |
Purch. View ▲▼ |
Rev. Total ▲▼ |
Rev. Click ▲▼ |
Rev. View ▲▼ |
ROAS Total ▲▼ |
ROAS Click ▲▼ |
Account Structure & Budget
Active Campaigns
6
Out of 66 total campaigns
CBO Adoption
67%
4/6 campaigns use CBO
Avg Daily Budget
€21.67
Per ad set (all above €10)
Budget Adequacy CPA
€54.47
6/6 ad sets budget < 2x CPA
Overlapping Ad Sets
7 pairs
7/7 pairs share similar targeting - self-competition in auction.
Misaligned Objectives
3
3 campaigns use LINK_CLICKS instead of sales objective.
Budget Utilization
55%
5 ad sets below 60%. Audiences may be too narrow.
Attribution Setting
70%
7/10 use recommended 7d/1d. Standardize the rest.
Budget Utilization Bars
Average utilization: 55% — 5 ad sets below 60% threshold
Misaligned Objectives
| Campaign | Objective | Issue |
| Publication Instagram: CONCOURS EXCLUSIF LES... | LINK_CLICKS | Should use CONVERSIONS / SALES for purchase optimization |
| Instagram Post | LINK_CLICKS | Should use CONVERSIONS / SALES for purchase optimization |
| Publication Instagram: CONCOURS EXCLUSIF 5... | LINK_CLICKS | Should use CONVERSIONS / SALES for purchase optimization |
Raw Data Cross-Reference & Verification
Data Cross-Reference
| Metric |
Report Value |
Raw API Value |
Match |
How to Verify |
API Source |
| Spend |
€26,726.27 |
€26,726.27 |
MATCH |
Ads Manager > Account Overview > Amount Spent |
API field: spend |
| Revenue |
€45,301.27 |
€45,301.27 |
MATCH |
Ads Manager > Purchase Conversion Value |
API: action_values where action_type=purchase |
| ROAS |
1.70x |
1.6950 |
MATCH |
Ads Manager > Purchase ROAS column |
API: purchase_roas |
| Purchases |
922 |
922 |
MATCH |
Ads Manager > Purchases column |
API: actions where action_type=purchase |
| AOV |
€49.13 |
€49.13 |
PASS |
Calculated: Revenue / Purchases (sanity: €30-80 cosmetics) |
Calculated field |
| Campaign Spend Sum |
€26,726.27 |
€26,726.27 |
MATCH |
Sum of all campaign spend = account spend (diff €0.00) |
Sum of campaign spend fields |
Known Data Gaps
| Data Point | Status | Where to Check | Why It Matters |
| EMQ Scores |
NOT AVAILABLE |
Events Manager > Data Sources |
Event Match Quality affects attribution accuracy. Target: ≥8.0 |
| CAPI Dedup Rate |
NOT AVAILABLE |
Events Manager > Overview tab |
Without dedup, conversions may be double-counted |
| Learning Phase Status |
NOT AVAILABLE |
Ads Manager > Delivery column |
Ad sets in learning phase have volatile performance |
| Pixel Installation |
NOT AVAILABLE |
Events Manager > Pixel tab |
Core tracking infrastructure verification |
| Domain Verification |
NOT AVAILABLE |
Business Manager > Brand Safety |
Required for AEM / iOS 14+ tracking |
| Video Hook Rate |
NOT AVAILABLE |
Ads Manager > Video engagement breakdown |
3-second retention critical for Reels/Stories |
| UGC Classification |
NOT AVAILABLE |
Manual creative review |
UGC typically outperforms corporate content. Target: ≥30% |
| Custom Audience Data |
NOT AVAILABLE |
Audiences > Custom Audiences |
Freshness and source quality affect retargeting |
| UTM Parameters |
NOT AVAILABLE |
Ad preview URLs / URL templates |
Required for GA4 cross-platform attribution |
| A/B Testing Activity |
NOT AVAILABLE |
Experiments tool in Ads Manager |
Structured tests improve decision-making |
ROAS Sanity Calculator
ROAS SANITY CHECK (Full Math)
=============================================================================
1. SPEND VERIFICATION
API account spend: €26,726.27
Sum of campaign spend: €26,726.27
Difference: €0.00 ---- MATCH
2. REVENUE VERIFICATION
Total purchase value: €45,301.27 (action_values: purchase)
Click purchase value: €33,409.61 (7d_click attribution)
View purchase value: €11,891.66 (1d_view attribution = Total - Click)
Click + View: €45,301.27 ---- MATCH
3. ROAS CALCULATION
Reported ROAS: €45,301.27 / €26,726.27 = 1.6950x
API purchase_roas: 1.695009x
Rounding check: 1.70x (2dp) ---- MATCH
Click-only ROAS: €33,409.61 / €26,726.27 = 1.2501x
4. PURCHASE COUNT
Total purchases: 922
Click purchases: 719
View purchases: 203
Click + View: 922 ---- MATCH
5. AOV SANITY
Implied AOV: €45,301.27 / 922 = €49.13
Expected range (cosmetics): €30 - €80
Result: PASS (within range)
6. CPA CHECK
Avg CPA: €26,726.27 / 922 = €28.99
Industry range: €15 - €60
Result: PASS (within range)
=============================================================================
ALL SANITY CHECKS: PASS