# Adepta Launch Starter

Version 1.1 · 6 October 2026 · https://adepta.cc/start

## What you have

An editable workflow brief, recipe specifications, a business context template and a review checklist. This is not executable software. It does not connect to Meta or implement any guardrail by itself. Use Claude, Cursor or ChatGPT to prepare a plan or analyze supplied data. Implementation and execution also need a coding environment or suitable authorized tools. Review the code and current API documentation before use.

## Your first outcome

Prepare a launch plan from a creative folder. Do not upload or create any live objects in the initial run.

## Agent instructions

1. Read the whole document. Treat recipe thresholds as examples, not universal rules. Do not infer permission to act from a recipe.
2. Ask for missing business context. Never invent identifiers, account access, test results, metrics or completed actions.
3. Keep the initial run read-only and local. No ad writes, uploads, budget changes, external messages or scheduled execution.
4. Use authorized API access only. Keep secrets in the user's environment or secret store; never in this document.
5. Check currency, account timezone, reporting dates, attribution window, reporting grain, pagination, data completeness and freshness. Missing data is unknown, not zero. Do not compare unequal cohorts as if they were comparable.
6. Show a plan, requirements and implementation gaps. Explain how each guardrail will be enforced.
7. If implementing, pin a supported Meta API version, handle rate limits and errors, and avoid blindly retrying writes. A request timeout does not prove the write failed: reconcile object IDs before retrying.
8. Generate a dry-run report before any live action. Live changes need separate, explicit human approval for the exact account, objects, budget and operation.
9. For any approved launch implementation, create campaign, ad sets and ads PAUSED; re-read every object and effective status. Re-check account, pixel, Page, destination URL, countries and budgets. Never activate implicitly.
10. Stop on ambiguity. Report what is known, what is missing and what needs a human decision.

## Business context template

Fill only what your chosen workflow needs. Leave unknown values blank. Never paste credentials.

```yaml
business:
  name: ""
accounts:
  ad_account_id: ""
  page_id: ""
  instagram_id: ""
  currency: ""
  timezone: ""
conversion:
  pixel_id: ""
  optimization_event: ""
  attribution_window: ""
targeting:
  allowed_countries: []
  excluded_countries: []
  special_ad_categories: []
budget:
  daily_limit_in_account_currency: null
  portfolio_limit_in_account_currency: null
  approval_owner: ""
reporting:
  source: ""
  start_date: ""
  end_date: ""
  data_freshness_requirement: ""
  target_cpa_in_account_currency: null
  business_roas_definition: ""
creative:
  folder: ""
  naming_rules: ""
  approved_copy: ""
credentials:
  reference: "env:META_TOKEN" # Reference only. Never put the token here.
execution:
  mode: "dry-run"
  allow_writes: false
```

## Review checklist

- [ ] Every account and object ID is explicit and verified.
- [ ] Currency and budget-field units are verified for the selected API version.
- [ ] Attribution window, timezone, report period and data source are shown.
- [ ] Incomplete, delayed or inaccessible data cannot silently become zero.
- [ ] Business thresholds have an owner and an explicit rationale.
- [ ] Tests cover missing data, partial API failure and repeated execution.
- [ ] Dry run lists proposed changes without applying them.
- [ ] Any write requires separate authorization and a read-back check.
- [ ] No credentials are in logs, exported files or agent prompts.
- [ ] A human has reviewed the implementation and knows how to stop it.

## Expected dry-run report

1. Goal and scope.
2. Accounts, dates, currency, attribution and source freshness.
3. Checks: pass, fail or unknown, with evidence.
4. Proposed outcome and exact changes, if any.
5. Missing inputs and assumptions.
6. Next step requiring approval.

## Recipe: Drive → Campaign Launcher

Reference: https://adepta.cc/recipes/drive-to-campaign
Version: 1.0.0 · Specification tier: pro · Action class: draft

Building a campaign by hand in Ads Manager takes an hour per launch and invites mistakes in pixel, page and geo.

### Intended outcome
A complete campaign (campaign, ad sets, ads) created PAUSED from a Drive folder, with language and funnel detected automatically.

### Inputs
- Drive folder
- Budget
- Structure
- Account

### Workflow
1. Pick a creative folder
2. Detect language and funnel from file names
3. Choose CBO/ABO and structure (1-25-1, 1-5-5, 1-1-25)
4. Set budget, account and page
5. Review the summary screen
6. Upload media in batches
7. Create campaign → ad sets → ads, all PAUSED
8. Re-read and verify every object

### Required context
- Ad accounts (accounts) — required: Each account with page, Instagram, DSA, timezone.
- Pixel routing rule (pixels.routing) — required: Which pixel each funnel uses. Exact match only, no default.
- Campaign name template (naming.campaign) — required: Pattern with machine-readable tags.
- Copy library (copy.library) — required: Link, headline, text per funnel × language.
- Geo exclusion layers (targeting.geo_layers) — required: Global, per funnel, per language, fraud lists.
- Creative storage root (creatives.root) — required: Folder with creative packs.
- Default attribution (targeting.attribution) — required: 1-day click is not 7-day click. Copy from donor.

### Guardrails to implement
- Creates everything PAUSED
- Shows a summary (name, pixel, audience, creatives, budget) before any write
- Money-routing fields (pixel, page, link, account) use exact match or fail loudly
- Video and static never share an ad set
- Operator choices are stored in the launch record, so a restart can't swap the page
- Reads each object before and after writing; reports the fact, not 'success'

### Expected outputs
- Paused campaign
- Launch record

### Dependencies
meta, gdrive, telegram


## Recipe: Tracking Health

Reference: https://adepta.cc/recipes/tracking-health
Version: 1.0.0 · Specification tier: free · Action class: read

A broken pixel or landing page burns budget for hours before anyone sees it.

### Intended outcome
Alerts within ~2 hours of a tracking drop, a flatline or a dead landing page.

### Inputs


### Workflow
1. GET pixel stats hourly, split web vs server
2. Baseline = median of same hour over 7 days
3. Soft: 2h below 30%; Hard: flatline; Purchase silent 6h
4. HTTP-check every landing link

### Required context
- Pixel routing rule (pixels.routing) — required: Which pixel each funnel uses. Exact match only, no default.
- Copy library (copy.library) — required: Link, headline, text per funnel × language.
- Alert channel (notifications.channel) — required: Where alerts and buttons go.

### Guardrails to implement
- Alerts on transitions only
- Recovery at 70%
- ≤ 10 alerts/day
- 3-day warm-up

### Expected outputs


### Dependencies
meta, telegram, slack


## Field notes to review

### Money-routing fields: exact match or error
No defaults for pixel, page, link, event, language, account.
https://adepta.cc/pitfalls/pixel-fallback

### 'Couldn't read' is not 'zero'
Postpone decisions on unreadable objects; keep the loop going.
https://adepta.cc/pitfalls/unknown-is-not-zero

### spend_cap: dollars in, cents out
Check units on every money field; re-read after writing.
https://adepta.cc/pitfalls/spend-cap-units

## Scope and availability

The online library currently provides specifications and local profile tools. Subscription billing, ready-to-run recipe source delivery and the hosted Adepta MCP service are in development. This free document is useful without an Adepta subscription; your AI tool and third-party services may have their own costs. No performance outcome is guaranteed.

## Primary technical references

Verify current behavior and permissions before implementation:
- https://developers.facebook.com/docs/marketing-api/
- https://github.com/facebook/facebook-python-business-sdk

Adepta is an independent product and is not affiliated with or endorsed by Meta.
