Як виглядає глибокий аудит Meta Ads (Facebook/Instagram) інтернет-магазину від UPLIFY?

A real (anonymized) senior audit of a Meta (Facebook/Instagram) ad account by UPLIFY: INTERIM status, measurement gate, 16 findings, action plan. Prepared by the AI operator Nestor AI; a manager approves it.

Meta AdsFacebook AdsInstagram AdsAdvantage+CAPIROASUPLIFYNestor AI

UPLIFY · Sample deep audit

Senior audit of a Meta
(Facebook / Instagram) ad account

A real audit of a real UPLIFY client — fully anonymized. The niche, brands, domain and all account IDs are hidden; all analysis, methodology, structure and actual figures are kept intact.

Platform: Meta · Advantage+ Catalog Period: 90 days Status: INTERIM Findings: 16 Validation: independent (gpt-5.2)

🔒 Anonymized. Name, domain, niche, brands, founder and IDs (account / Pixel / catalog) removed. This is a real report — figures, geo, account structure and conclusions are real; the product category is masked.

🔴 Report status: INTERIM — the measurement gate is NOT closed

Performance conclusions are presented as directional (not observed) — we do NOT present modeled data as fact while the gates are open. That is the audit's senior honesty:

  • BLOCKER 1 — Measurement: CAPI/server events are effectively not working (browser events only) → possible iOS under-reporting, lower matching, inflated modeled-ROAS.
  • BLOCKER 2 — Business truth: no backend access (CRM / margin / returns / new-vs-returning) → impossible to confirm Meta creates incremental profit rather than attributing demand that would convert anyway.
  • BLOCKER 3 — Catalog API: the catalog inventory isn't readable (rights) → feed/match-rate check only manually in Commerce Manager.
  • Attribution window: default 7d-click / 1d-view (modeled) — all conversions are modeled.

1 Executive summary

The account runs a single catalog strategy (Advantage+ Feed): 3 active campaigns (Prospecting / Lookalike / Remarketing), all CBO at $5/day, OUTCOME_SALES goal, VALUE optimization. Over 90 days: $924.65 spend, 148 purchases, $3,382.74 value, ROAS 3.66, CPA $6.25, AOV $22.86, frequency 4.22.

Main conclusion (directional): the account looks profitable in the dashboard but suffers from systemic self-sabotage of structure and measurement — losing both volume and stability.

1. Learning reset from an unnecessary relaunch

Instead of scaling working campaigns, new ones were created and mature ones paused. Old: ROAS 5.90 / 4.71; new still "learning": 3.86 / 1.75. The relaunch effectively halved ROAS.

2. VALUE optimization at $5/day — infeasible

HIGHEST_VALUE needs a large event volume; at ~3–4 purchases/week (learning threshold ≈50/wk) the system never stabilizes. Minimum to exit learning ≈ CPA×50 ≈ $45/day.

3. CAPI off + empty RM audiences

Site retargeting is empty (~20 people). RM actually serves a warm IG base (~30k) → the lowest ROAS 2.16 and the lowest incrementality (harvesting existing demand).

4. Creative = one auto catalog video

All 8 videos are effectively one Advantage+ Feed template; the hook fails in the 1st second (−43…−50%), 3s-retention ~20%. Creative score 32/100.

5. Starvation + fragmentation + billing

$5/day spread across 3 campaigns; in one — 4 groups on the same audience (internal competition). Account status "flickered" 10×, 2× spend-limit reset → delivery throttling.

Business-truth verdict: incrementality not confirmed (directional). Before scaling budget — close CAPI + a backend reconciliation.

2 Measurement Integrity (GATE)

CheckStateDetails
Pixel alive✅ observedFires, automatic matching ON (11 fields)
Key events sent✅ observedPageView / ViewContent / AddToCart / InitiateCheckout / Purchase present
CAPI / server events🔴 NOT workingBROWSER only; openbridge not configured — no server side
Dedup / EMQ / AEM / domain🟡 manualAPI doesn't return — check in Events Manager
Backend reconciliation🔴 BLOCKERNo data — incrementality can't be confirmed

Remediation priority #1: enable CAPI + event_id dedup, check EMQ and domain verification. Without server events Meta optimizes on an incomplete signal, and reported ROAS is inflated by the modeled part.

3–4 Architecture + full findings table (16)

CampaignOpt goalSpendPurch.ROASState
Prospecting 01.05VALUE$202.75203.86ACTIVE
Remarketing 10.04OFFSITE_CONV$213.03282.16ACTIVE
Lookalike 01.05VALUE$132.5281.75ACTIVE
Prospecting 16.03VALUE$225.96605.90⏸ PAUSED
Lookalike 10.04CONV$102.64284.71⏸ PAUSED

🔴 Mature (better) versions are paused, weaker (new) ones active — the main learning-reset.

AreaFindingSev.
MeasurementCAPI off — browser events only; modeled conversions, inflated ROASP0
StructureLearning-reset: mature campaigns paused, new ones "learning" → ROAS halvedP1
StructureVALUE optimization at ~5 purchases/wk unachievable (threshold ≈50/wk)P1
StructureFragmentation: 4 groups on the same audience at $5/day → internal competitionP2
TargetingRM is fake: website pools ~20 people; actually serves a warm IG (~30k)P1
TargetingProspecting doesn't exclude purchasers (the client base is usable now)P2
Geo / complianceServing into non-controlled districts of 2 regions (~1.2% budget) — add exclusionsP2
PlacementsIG Stories — 25.6% budget at ROAS 2.71 (below blended); the video isn't built for verticalP2
DemographicsThe 45-64 segment converts best (ROAS 4.93 / 5.83) but gets 13.6% of budgetP2
Creative1 auto template, hook fails at 1s, 0 format diversity — score 32/100P1
FunnelMain drop ATC → InitiateCheckout (24.8%) — cart/checkout, not creativeP2
BillingAccount status flickered 10×, 2× reset spend-limit → delivery throttlingP2
ChangesExcessive manual intervention (relaunches, opt-goal/bid changes, duplicates) — the main cause of unstable CPAP2
IncrementalityNo holdout/lift test; ROAS is attribution-based, not incrementalP2
Hygiene6 "ACTIVE" 2024 traffic campaigns with a past stop_time — junk → PAUSEDP3
Catalog (ASC)smart_pse off; check product_set coverage of bestsellers (Catalog API blocked)P3

5 Placements + demographics

Placement% spendROASVerdict
Facebook Feed43.8%4.15carries the account — protect
Instagram Stories25.6%2.71biggest inefficiency
Instagram Feed20.7%3.78ok
Facebook Reels3.1%6.89under-served
Threads2.9%4.71under-served
Age (f)% spendROASCPA
25-3444.1%3.30$7.55
35-4431.5%3.49$6.33
45-548.3%4.93$4.25
55-645.3%5.83$4.89

Pattern: the older 45-64 segment converts best (lowest CPA) but gets only 13.6% of budget — an underrated reserve.

6 Creative system

32/100
All 8 videos are one auto catalog template. The hook fails in the 1st second (−43…−50%), 3s-retention ~20% (below the 25% benchmark). Zero diversity: no statics, UGC, carousel, founder content or social proof.

Testing framework (route → the "Creatives" tab): customer pain (UGC), social proof (review carousel), offer/price (promo creative), founder talking-head, demo texture — with a strong 0-1s hook.

7 Funnel

StepConversionAssessment
Impr → link click2.72%normal for a catalog
Link click → LPV82%✅ strong (site speed ok)
LPV → ATC12.8%acceptable
ATC → InitiateCheckout24.8%🔴 main funnel drop
IC → Purchase~92%✅ strong

CTR and LPV are healthy → the problem isn't the creative but the cart/offer/checkout (friction, price/delivery at the step, a phone-based order model). Check the cart UX + whether the InitiateCheckout event fires correctly.

8 Creative — prompt cards for new concepts

Ready to paste into a generator to go beyond the auto catalog. Draft concepts, need brand/legal review. Product masked.

1) UGC hook "customer pain"

9:16 vertical · Stories/Reels · strong 0-1s hook, face in frame

"Authentic UGC-style vertical video, a real customer holding the product at home, natural phone-camera look, strong emotional hook in first 1s (close-up + face), warm domestic light, Ukrainian middle-class home. NO studio polish, NO logos, NO on-screen text in first second. Aspect 9:16."

2) Social-proof carousel

1:1 · Warm/RM · reviews + bestsellers

"Clean carousel slide template combining a hero product shot with a stylized customer-review quote card, cohesive brand palette, premium e-commerce look, trustworthy mood. NO real names, NO competitor branding, NO fake ratings. Aspect 1:1."

3) Founder talking-head (brand-trust)

9:16 · Cold · brand representative

"Vertical talking-head video of a brand representative speaking warmly to camera in a tidy workspace, soft natural light, authentic and trustworthy, strong first-second eye contact hook. NO teleprompter stiffness, NO logos overlay, NO on-image text. Aspect 9:16."

9 Action plan (with Winner-Protection)

Fixes 1–2 wks
(do-no-harm)
Enable CAPI + dedup (priority #1); freeze the cascade of manual edits for 7–10 days; exclude non-controlled districts; remove 6 stale campaigns; exclude the client base from prospecting.
Restructure
30 days
Consolidate 4 groups → 1–2 (more events per group); VALUE → CONVERSIONS on small budgets; raise 1 winning campaign +20–30% (not a wholesale swap). ⛔ Blocked until margin/target-ROAS.
Creative
3–5 new concepts beyond the auto catalog (UGC pain, founder, social proof, demo) with a strong 0-1s hook; separate vertical versions for Stories/Reels.
Winner-protection
Do NOT touch FB Feed delivery or the 45-64 segment (ROAS 4.93–5.83). Don't enable paused versions next to active ones (overlap) — first pick one and let it mature without edits.

10 Appendix — coverage

  • Coverage: all 7 campaigns with spend (top-5 = 98%); 16 groups (top-10 = 95%); all 13 placements; all age cuts; all 23 regions with spend; all 8 videos with retention curves.
  • Findings classification: measurement (3) · structural (5) · creative (2) · scaling/targeting (6).
  • Independent validation (gpt-5.2): PASS with reservations — coverage 90 · depth 80 · rigor 78 · client-safety 88. All key Meta "red flags" verified; performance conclusions stay directional until the gates close (CAPI + backend).