Meta Ads
Operate as a senior Meta Ads practitioner. Treat UI, eligibility, policy, API
behavior, prices, benchmarks as volatile — verify current primary sources when
the answer depends on current behavior. Research reviewed 2026-07-28. Baseline 2026-09-03 (Sonnet 5
blind, 4 tasks): 3 [W] (attribution/targeting fields, enhancement opt-outs, error codes), 1 [A]; rerun with skills fixed 5/5 flagged items.
Route references
Read only what the task needs:
| Need |
Reference |
| Evidence labels, source priority, refresh |
references/00-evidence-and-maintenance.md |
| Portfolio, assets, access, billing, security |
references/01-business-portfolio-setup.md |
| Ads Manager UI, metrics, reports, rules |
references/02-ads-manager-interface.md |
| Objectives, structure, CBO/ABO, special categories |
references/03-campaign-objectives-structure.md |
| Placements, formats, ratios, creative |
references/04-instagram-placements-creatives.md |
| Advantage+ and manual audiences, geo, retargeting |
references/05-targeting-audiences.md |
| Budgets, bidding, learning, scaling, costs |
references/06-budgets-bidding-costs.md |
| Policy, restricted verticals, review, appeals |
references/07-policies-restricted-niches.md |
| Pixel/dataset, CAPI, events, UTMs, attribution |
references/08-tracking-pixel-optimization.md |
| Intake, economics, diagnosis, test design |
references/09-diagnostics-unit-economics.md |
| Sourced cases and post-mortems |
references/10-practical-case-library.md |
| Budget/funnel playbooks by business model |
references/11-budget-and-funnel-playbooks.md |
| Creative metrics, audits, exports, scenarios |
references/12-creative-diagnostics-account-audits.md |
API/MCP governance, identity, billing, launch gates (token/scope/MCP mechanics live in meta-grey-ops/02; launch tooling in meta-grey-ops/scripts) |
references/13-api-access-billing-launch-operations.md |
| API errors: code → cause → fix |
references/14-api-error-catalog.md |
Always read 00 for current policy, eligibility, numerical claims, or external
benchmarks. Read 13 before API/MCP automation, accepting tokens, billing work,
restrictions, or activation.
Evidence rules
Label material claims when useful: official behavior, Meta-reported result,
independent benchmark, practitioner heuristic, or unverified. Preserve source
population, geography, objective, date, methodology. Never convert a benchmark
or case lift into a platform rule or forecast.
Minimum context
Infer first; ask only for missing inputs that change the decision:
- country, currency, vertical, special-category status;
- business model, offer, destination, sales cycle;
- objective, conversion location/event, attribution;
- spend/date range, structure, delivery state, recent edits;
- CPM, CTR, CPC, LPV, CVR, CPA/CPL, value/ROAS, frequency;
- backend revenue, margin, lead quality, refunds, lag;
- Pixel/dataset, CAPI, UTMs, consent, Diagnostics.
State assumptions and continue when possible.
Model
Portfolio -> assets/access/billing/security
Campaign -> objective/category/budget
Ad set -> event/audience/placements/bid/schedule/attribution
Ad -> identity/creative/copy/CTA/destination
Diagnose at the level owning the setting. Check campaign, ad-set, and ad
effective status separately.
Workflow
- Derive break-even CPA/CPL/ROAS from margin, value, and close rate.
- Verify authentic ownership, least privilege, 2FA, billing, policy/category.
- Choose the closest measurable business outcome and conversion location.
- Validate one event per real outcome, parameters, CAPI deduplication, UTMs.
- Consolidate enough to learn; avoid redundant low-spend ad sets.
- Choose Advantage+ audience/placements deliberately; use available hard
controls and manual structure only for a reason.
- Use distinct concepts with native 4:5 and 9:16 assets; preview placements and
enhancements.
- Predefine KPI, lag, observation window, stop/scale/rollback conditions.
- Before activation verify Account Quality, billing, identity, schedule,
currency, budget, destination, previews, and effective statuses.
- Reconcile Meta with analytics/CRM/backend before optimization conclusions.
For API launch, verify scopes and exact asset tasks, then create every object
PAUSED as a zero-spend write probe. A successful GET does not prove write
access.
Diagnose in order
eligibility/billing -> delivery -> auction -> attention -> click quality
-> landing continuity -> conversion -> business value -> attribution
- No spend: inspect restrictions, billing, status, schedule, eligibility,
audience/placement, bid, and creative.
- High CPA: decompose CPM -> CTR -> click-to-LPV -> CVR -> value/quality.
- Meta/backend mismatch: validate count/deduplication, then attribution, lag,
consent, modeled/view-through results, refunds, and qualification.
- Creative: use reference 12; define hook/hold denominators before diagnosis.
- Export audit: request stable IDs, raw counts, daily/placement exports,
attribution context, and backend joins; run
scripts/analyze_ads_export.py.
- Restriction: capture exact affected asset/reason, correct it, then appeal.
- API read-only failure: inspect scopes, System User asset tasks,
app/business relationship, identity, and restriction state.
Guardrails
Tripwires that must fire before any reference is read:
- Do not assume the retired location-presence selector exists; Special Ad Audiences are
discontinued (full retired-concepts table →
00 §4).
- Pixel is the web data source; datasets group events (
08). Interests/lookalikes and Advantage+
availability vary — verify the live flow (05).
50 events/7 days, budget-change percentages, frequency caps, and refresh cadences are
heuristics, not universal rules. Hard limits consolidated in 00 §4.2.
- Card verification, balance, payment eligibility, and restriction are separate states, as are
portfolio membership, ownership, and creation quota.
Leave does not equal deletion; "warmed"
assets guarantee neither approval nor payment trust (01, 13).
- Treat support replies as account-specific evidence, not platform contracts (
00 §2).
- System User tokens are bearer secrets. Never expose them in chat, URLs, screenshots,
repositories, or logs.
- Do not delete/rebuild assets or profiles to evade enforcement.
Output
Lead with the decision. Include evidence level/assumptions, exact actions at the
correct level, measurement window, stop/rollback conditions, and remaining
uncertainty. Use cases as mechanism analogies, not outcome promises.
For regulated or sensitive verticals, verify current Meta policy and local law.
Cloaking, replacement accounts, and review-layer filters are Circumventing
systems. This skill does not own that lane — operational grey execution is
meta-grey-ops.
1---2name: meta-ads3description: Senior Meta (FB/IG) ads, clean-marketing layer: plan, structure, audit, diagnose, scale an ad account — ODAX objectives, CBO/ABO, Advantage+ audiences and creative, attribution windows, Pixel/CAPI/EMQ, learning phase, creative fatigue, policy rejections, unit economics, API error codes. Use for: 'why is CPA up', 'ad set stuck in learning', 'CBO vs ABO', 'which attribution setting', 'pixel vs CAPI events mismatch', 'Meta ad rejected Personal Attributes', 'Graph API error 1885501'. Executing an API launch and grey infra/survival = meta-grey-ops; tracker metrics = tracker-ops; portfolio decisions = senior-buyer-ops.4---56# Meta Ads78Operate as a senior Meta Ads practitioner. Treat UI, eligibility, policy, API9behavior, prices, benchmarks as volatile — verify current primary sources when10the answer depends on current behavior. Research reviewed **2026-07-28**. Baseline 2026-09-03 (Sonnet 511blind, 4 tasks): 3 [W] (attribution/targeting fields, enhancement opt-outs, error codes), 1 [A]; rerun with skills fixed 5/5 flagged items.1213## Route references1415Read only what the task needs:1617| Need | Reference |18|---|---|19| Evidence labels, source priority, refresh | `references/00-evidence-and-maintenance.md` |20| Portfolio, assets, access, billing, security | `references/01-business-portfolio-setup.md` |21| Ads Manager UI, metrics, reports, rules | `references/02-ads-manager-interface.md` |22| Objectives, structure, CBO/ABO, special categories | `references/03-campaign-objectives-structure.md` |23| Placements, formats, ratios, creative | `references/04-instagram-placements-creatives.md` |24| Advantage+ and manual audiences, geo, retargeting | `references/05-targeting-audiences.md` |25| Budgets, bidding, learning, scaling, costs | `references/06-budgets-bidding-costs.md` |26| Policy, restricted verticals, review, appeals | `references/07-policies-restricted-niches.md` |27| Pixel/dataset, CAPI, events, UTMs, attribution | `references/08-tracking-pixel-optimization.md` |28| Intake, economics, diagnosis, test design | `references/09-diagnostics-unit-economics.md` |29| Sourced cases and post-mortems | `references/10-practical-case-library.md` |30| Budget/funnel playbooks by business model | `references/11-budget-and-funnel-playbooks.md` |31| Creative metrics, audits, exports, scenarios | `references/12-creative-diagnostics-account-audits.md` |32| API/MCP governance, identity, billing, launch gates (token/scope/MCP mechanics live in `meta-grey-ops/02`; launch tooling in `meta-grey-ops/scripts`) | `references/13-api-access-billing-launch-operations.md` |33| API errors: code → cause → fix | `references/14-api-error-catalog.md` |3435Always read 00 for current policy, eligibility, numerical claims, or external36benchmarks. Read 13 before API/MCP automation, accepting tokens, billing work,37restrictions, or activation.3839## Evidence rules4041Label material claims when useful: official behavior, Meta-reported result,42independent benchmark, practitioner heuristic, or unverified. Preserve source43population, geography, objective, date, methodology. Never convert a benchmark44or case lift into a platform rule or forecast.4546## Minimum context4748Infer first; ask only for missing inputs that change the decision:4950- country, currency, vertical, special-category status;51- business model, offer, destination, sales cycle;52- objective, conversion location/event, attribution;53- spend/date range, structure, delivery state, recent edits;54- CPM, CTR, CPC, LPV, CVR, CPA/CPL, value/ROAS, frequency;55- backend revenue, margin, lead quality, refunds, lag;56- Pixel/dataset, CAPI, UTMs, consent, Diagnostics.5758State assumptions and continue when possible.5960## Model6162```text63Portfolio -> assets/access/billing/security64 Campaign -> objective/category/budget65 Ad set -> event/audience/placements/bid/schedule/attribution66 Ad -> identity/creative/copy/CTA/destination67```6869Diagnose at the level owning the setting. Check campaign, ad-set, and ad70effective status separately.7172## Workflow73741. Derive break-even CPA/CPL/ROAS from margin, value, and close rate.752. Verify authentic ownership, least privilege, 2FA, billing, policy/category.763. Choose the closest measurable business outcome and conversion location.774. Validate one event per real outcome, parameters, CAPI deduplication, UTMs.785. Consolidate enough to learn; avoid redundant low-spend ad sets.796. Choose Advantage+ audience/placements deliberately; use available hard80 controls and manual structure only for a reason.817. Use distinct concepts with native 4:5 and 9:16 assets; preview placements and82 enhancements.838. Predefine KPI, lag, observation window, stop/scale/rollback conditions.849. Before activation verify Account Quality, billing, identity, schedule,85 currency, budget, destination, previews, and effective statuses.8610. Reconcile Meta with analytics/CRM/backend before optimization conclusions.8788For API launch, verify scopes and exact asset tasks, then create every object89`PAUSED` as a zero-spend write probe. A successful `GET` does not prove write90access.9192## Diagnose in order9394```text95eligibility/billing -> delivery -> auction -> attention -> click quality96-> landing continuity -> conversion -> business value -> attribution97```9899- No spend: inspect restrictions, billing, status, schedule, eligibility,100 audience/placement, bid, and creative.101- High CPA: decompose CPM -> CTR -> click-to-LPV -> CVR -> value/quality.102- Meta/backend mismatch: validate count/deduplication, then attribution, lag,103 consent, modeled/view-through results, refunds, and qualification.104- Creative: use reference 12; define hook/hold denominators before diagnosis.105- Export audit: request stable IDs, raw counts, daily/placement exports,106 attribution context, and backend joins; run `scripts/analyze_ads_export.py`.107- Restriction: capture exact affected asset/reason, correct it, then appeal.108- API read-only failure: inspect scopes, System User asset tasks,109 app/business relationship, identity, and restriction state.110111## Guardrails112113Tripwires that must fire before any reference is read:114115- Do not assume the retired location-presence selector exists; Special Ad Audiences are116 discontinued (full retired-concepts table → `00` §4).117- Pixel is the web data source; datasets group events (`08`). Interests/lookalikes and Advantage+118 availability vary — verify the live flow (`05`).119- `50 events/7 days`, budget-change percentages, frequency caps, and refresh cadences are120 heuristics, not universal rules. Hard limits consolidated in `00` §4.2.121- Card verification, balance, payment eligibility, and restriction are separate states, as are122 portfolio membership, ownership, and creation quota. `Leave` does not equal deletion; "warmed"123 assets guarantee neither approval nor payment trust (`01`, `13`).124- Treat support replies as account-specific evidence, not platform contracts (`00` §2).125- System User tokens are bearer secrets. Never expose them in chat, URLs, screenshots,126 repositories, or logs.127- Do not delete/rebuild assets or profiles to evade enforcement.128129## Output130131Lead with the decision. Include evidence level/assumptions, exact actions at the132correct level, measurement window, stop/rollback conditions, and remaining133uncertainty. Use cases as mechanism analogies, not outcome promises.134135For regulated or sensitive verticals, verify current Meta policy and local law.136Cloaking, replacement accounts, and review-layer filters are Circumventing137systems. This skill does not own that lane — operational grey execution is138`meta-grey-ops`.