Meta Ads Manager
Meta Ads Manager with Built-In Attribution
Run Facebook and Instagram campaigns with revenue attribution, CAPI match rate, and cohort LTV built into every view.
Admaxxer is a DTC analytics platform with built-in Meta + Google ad ops. The Meta Ads Manager inside Admaxxer is not a reporting tab bolted onto a dashboard — it is a full read-and-write surface for Meta Marketing API v21.0 that sits on top of first-party pixel data, Tinybird analytics pipes, and an AI agent that can act on what it sees. You get Meta campaign management next to blended MER, cohort LTV, and CAPI match rate, so the numbers you plan against are the numbers you actually spent to hit.
## What it does
- Reads campaigns, ad sets, ads, and insights for every connected Meta ad account through Meta Marketing API v21.0.
- Pauses, scales, and launches Meta campaigns from inside Admaxxer with explicit confirmation — no context switch into Ads Manager.
- Joins Meta spend with first-party pixel revenue to produce a cohort-aware ROAS, not a view-through-inflated one.
- Exposes CAPI match rate per ad account so you can see when deduplication, email hashing, or pixel fires are costing you signal.
- Feeds every Meta row into Tinybird for blended MER across Meta, Google, organic, and email — the same numbers your CFO looks at.
## How it works
Connections are paste-token by default: drop a long-lived Meta user access token into the connections screen and Admaxxer encrypts it with AES-256-GCM before it ever hits Postgres. OAuth is available for teams that want rotating tokens. Either way, the credential is stored against a workspace, never a user — so when someone leaves the team, the account keeps working.
Under the hood every Meta call goes through `server/ads/MetaAdsService.ts`, which wraps the Marketing API v21.0 and enforces a conservative ceiling beneath Meta's ~200 calls/hour/user-token budget. Ad account safety is the number one priority: we would rather return a cached response than trip Meta's rate limiter. Insight reads are cached for fifteen minutes in `adSyncLogs` so dashboards stay fast without hammering Meta.
Writes — pauses, budget changes, creative launches — go through the same service, but only when invoked by a human or by the Claude agent with explicit `confirmed: true`. The agent's `update_campaign` tool refuses to execute without that flag. That is deliberate: destructive ad-ops actions should require a typed yes, not a one-word prompt.
Attribution runs downstream. The first-party pixel fires client-side events to our ingestion endpoint, which forwards them to Tinybird via Conversions API. Tinybird pipes compute CAPI match rate, cohort LTV at 7, 30, and 90 days, blended MER across channels, and 1-day and 7-day click windows — all queryable by slug. You can pivot Meta performance by creative, by cohort, by landing page, or by LTV band without waiting for nightly rollups.
## Why it matters
Meta's native reporting is tuned to make Meta look good. It counts view-throughs, it counts cross-device, it counts last-touch clicks inside the Meta graph. That is fine for a media buyer inside a platform team. It is not fine for a DTC brand that needs to know whether a $15 CPA actually paid rent this month.
Admaxxer answers the harder question. By joining Meta's reported spend to first-party pixel revenue with your actual CAPI dedupe keys, you see which ad sets produced paying customers rather than clicks. By layering cohort LTV on top, you see which creatives bring high-retention buyers, not just first-purchase conversions. That is the difference between scaling a top-of-funnel hook and scaling a loss leader.
The safety story matters too. Because writes are gated behind explicit confirmation — including for AI agent actions — you do not wake up to a doubled budget or a paused top performer because someone misread a chart. A flagged ad account is one of the hardest things to recover in DTC, and we take that risk seriously at every layer.
Finally, the data is yours. Every campaign, ad, and insight row is stored in your Postgres instance, not ours. When you leave Admaxxer, you leave with your data.
## Who it's for
DTC brands with $500k to $50M in annual revenue who already run Meta in-house and are tired of reconciling three dashboards before standup. Agencies managing five to fifty client accounts who need a consistent attribution layer across brands. Operators who want to own the first-party data under their attribution instead of renting it from an attribution vendor.
## Setup in 5 minutes
Paste your Meta long-lived user access token, pick the ad accounts you want Admaxxer to read, and you are live. Install the pixel with a single script tag to activate attribution. Full walkthrough in the [install guide](/documentation/install), with platform-specific notes in the [Meta connection guide](/guides/connect-meta-ads) and the [Google connection guide](/guides/connect-google-ads). If you want to see how Meta ops and Google ops compose into blended MER, read [AI Ads Agent](/features/ai-ads-agent) and [Self-Hosted Ads Analytics](/features/self-hosted-ads-analytics).
## Pricing
Starter is $9/month, Pro is $79/month, Scale is $199/month. Every plan starts with a 7-day free trial and no credit card is required. See [pricing](/pricing) for quota details and agency multi-workspace terms.
## FAQs
**Do I need to go through Meta App Review?** No. Admaxxer ships with a paste-token model for v1, which means you can be live with your own long-lived user access token in under five minutes. App Review is on the roadmap for teams that prefer OAuth.
**Will this get my ad account flagged?** No. Admaxxer respects Meta's ~200 calls/hour/user-token rate limit and caches insight reads for 15 minutes. Ad account safety is the top priority — we will slow down before we push you over.
**Can the AI agent change my campaigns without me?** No. Every destructive action — pause, scale, launch — requires explicit `confirmed: true` from you. The agent can read and recommend freely, but it cannot touch budgets or status without your typed confirmation.
Key Benefits
- Attribution that matches your books — First-party pixel revenue joined to Meta spend, not view-through-inflated ROAS.
- CAPI match rate visibility — See deduplication and signal loss per ad account, not hidden behind Meta's UI.
- Cohort LTV at 7, 30, 90 days — Scale the creatives that bring back repeat buyers, not just first-purchase clicks.
- Safe writes by default — Every pause, scale, and launch requires explicit confirmation — including from the AI agent.
- Rate-limit aware — Conservative ceilings under Meta's ~200 calls/hour/user-token budget keep ad accounts healthy.
- Blended MER out of the box — Meta, Google, organic, and email spend compose into a single MER you can actually defend.
Frequently Asked Questions
Do I need to go through Meta App Review?
No. Admaxxer ships with a paste-token model for v1, which means you can be live with your own long-lived user access token in under five minutes. App Review is on the roadmap for teams that prefer OAuth.
Will this get my ad account flagged?
No. Admaxxer respects Meta's ~200 calls/hour/user-token rate limit and caches insight reads for 15 minutes. Ad account safety is the top priority — we will slow down before we push you over.
Can the AI agent change my campaigns without me?
No. Every destructive action — pause, scale, launch — requires explicit confirmed: true from you. The agent can read and recommend freely, but it cannot touch budgets or status without your typed confirmation.