SpendSignoffSpendSignoff
Deep Dive6 min read··SpendSignoff

Meta ads agency accounts: what AI can actually do

Meta's Business Manager was built for agencies managing dozens of client accounts under one roof. The account hierarchy — agency BM, client BM, ad accounts, pages — creates real complexity that most AI ad tools flatten into a single-account model. SpendSignoff does not.

The agency account structure Meta actually uses

A typical agency setup has the agency's own Business Manager at the top. Client businesses are either direct clients (with their own BM, granting access) or fully managed (where the agency owns the ad accounts). Inside each client there are one or more ad accounts, each with its own spend limit, time zone, and currency.

When you ask an AI to "pause the underperforming campaigns for Client A," the tool needs to know which BM, which ad account, and what access level the authenticated token has for that specific node in the tree. Most tools assume one token, one ad account. That breaks immediately in an agency context.

How SpendSignoff handles multi-BM access

SpendSignoff connects OAuth tokens per-client. When an agency onboards a client, the client grants access through a standard Meta OAuth flow — their token is vaulted on the server, never returned to the AI model. The list_ad_accounts tool surfaces all accessible accounts across all connected BMs.

The AI model then operates on a specific account by passing an account_id. There is no ambient "current account" — every read and every draft is scoped to an explicit account ID in the request.

Token isolation between clients

Each client's OAuth token is stored in isolation. A model session operating on Client A's account cannot read Client B's data even if both tokens are in the vault. Account-scoping is enforced at the API layer, not the prompt layer.

What the AI can do versus what it cannot

Through the mcp.read scope, the model can enumerate campaigns, ad sets, ads, and budgets across all connected client accounts. It can read performance metrics and draft a cross-client comparison. Through mcp.draft, it can stage bid changes, budget adjustments, and creative updates as before→after diffs waiting for approval.

What it cannot do: approve its own drafts, create new Business Manager connections, change BM-level settings (like payment methods or account spending limits), or access Page content outside the ad context. Those require direct Meta Business Manager access by a human.

  • Can read — campaigns, ad sets, budgets, performance metrics, audience definitions.
  • Can draft — bid changes, budget adjustments, creative swaps, pause/resume actions.
  • Cannot do — BM-level settings, payment methods, new OAuth connections, approve its own changes.

The practical workflow for agency teams

The highest-ROI use case for agency Meta accounts is morning triage. Before any human logs in, the always-on loop has already checked every client account for budget pacing, CPA anomalies, and disapproved ads. The drafts are waiting in the approval queue, grouped by client. The account manager reviews, approves the good ones, and escalates the ones that need client input.

That is not replacing the account manager — it is replacing the thirty minutes of clicking around Meta Ads Manager trying to figure out where to look.

FAQ

Does SpendSignoff support Meta's new Advantage+ campaign types?
Read access and draft support for Advantage+ campaigns is available for the campaign and budget level. Ad set and creative-level edits within fully automated Advantage+ placements are limited by what Meta's Marketing API exposes.
Can the AI model see client payment methods?
No. Payment method data is not part of the Meta Marketing API surface SpendSignoff connects to. The model sees spend data (how much has been spent) but not billing credentials.

Connect an account read-only and watch the operator work.

Reads are free on every plan. Nothing spends without your two-step approval.

Book a demo

Related reading

    Meta ads agency accounts: what AI can actually do — SpendSignoff · SpendSignoff