DATA PROVENANCE — Melvita Meta Ads Audit ========================================== Account: MELVITA FR (act_754841788201379) Currency: EUR Timezone: Europe/Paris 3-LAYER ANALYSIS: Layer 1 (Scoring): 2025-12-02 to 2026-03-02 (3 months) Layer 2 (Trends): 2025-09-02 to 2026-03-02 (6 months, monthly) Layer 3 (YoY): 2024-09-02 to 2026-03-02 (18 months, monthly) API: Meta Marketing API v21.0 Pull method: Insights-based entity discovery (spend > 0 filter) — 30 API calls in 73 seconds (vs 200+ with old approach) Pull timestamp: 2026-03-03 ~16:02 UTC+1 LAYER 1 DATA (Scoring — 3 months): Account-level insights (default + 7d_click attribution) 10 campaigns with spend > 0 (batch metadata via ?ids=) 35 ad sets with spend > 0 (batch metadata with targeting) 383 ads with spend > 0 (batch metadata) 303 unique creatives 91 daily insight rows 23 placement breakdown rows 3 pixels LAYER 2 DATA (Trends — 6 months monthly): 7 account-level monthly rows 46 campaign-level monthly rows LAYER 3 DATA (YoY — 18 months monthly): 19 account-level monthly rows ROAS CALCULATION: Source field: action_values where action_type = "purchase" Formula: purchase_value / spend NEVER used: total action_values (includes non-purchase actions) Cross-check: purchase_roas field from API (match: 0.0000 diff) ATTRIBUTION: Default: 7d_click + 1d_view (Meta default) Click-only: action_attribution_windows: ["7d_click"] View derived: Default total - Click only Post-view: 34.3% of purchases are view-through SANITY CHECKS (all passed): 1. ROAS field validation: PASS (API 0.5855x = Manual 0.5855x) 2. AOV check: PASS (EUR 62.07, expected EUR 40-90) 3. Spend reconciliation: PASS (campaign sum = account total, diff EUR 0.00) 4. Attribution split: 34.3% post-view (warning territory) 5. False retargeting: 0 flagged, 3 valid RTG campaigns SCORING: Engine: 55-check weighted scoring (V3) Overall: 55.5/100 (Grade D — Poor) Categories: Pixel/CAPI: 37.5/100 (F) [LIMITED DATA — 2/10 evaluated] Creative: 50.0/100 (D) [10/15 evaluated] Structure: 65.0/100 (C) [12/18 evaluated] Audience: 66.7/100 (C) [4/8 evaluated] Funnel: 56.2/100 (D) [4/4 evaluated] KEY FINANCIAL METRICS: Spend: EUR 63,608.76 Revenue: EUR 37,242.75 ROAS: 0.59x (BELOW BREAKEVEN) Click-only ROAS: 0.39x Purchases: 600 AOV: EUR 62.07 CPA: EUR 106.01 YOY CONTEXT: Q4 2024 vs Q4 2025: Spend +59.9%, ROAS -44.1%, CPA +66.4% Q1 2025 vs Q1 2026: Spend -21.8%, ROAS -24.6%, CPA +19.3% Bug fixes applied (from Eclo audit): - funnel.py M-AT1: Fixed double-counting (use 7d_click sub-field, not value) - funnel.py M-FA1: ASC campaigns excluded from false RTG flags - funnel.py: Only count purchase action_type (not omni_purchase) Data pull optimization applied: - Use insights endpoint to discover entities with spend > 0 - Batch-fetch metadata via ?ids= endpoint (50 IDs per call) - Reduced API calls from 200+ to 30