Ads
Read and write across Meta, TikTok, and Apple Search Ads — campaigns, ad sets, ads, creatives, budgets, optimizer triggers, pending queue, audit log, and metrics. BYO ad accounts; the customer's bucket-mode authority gate is the source of truth on every write.
The ads surface mirrors what the customer can do in the Layers app, swapped for partner authentication. Reads are on ads:read. Writes use fine-grained sub-scopes (ads:write:campaigns, :budgets, :creative, :lifecycle, :policy, :optimizer_trigger, :pending, :capi, plus the legacy ads:write:connect/:override).
Every write routes through the bucket-mode authority gate — the customer's per-campaign and per-layer policy is authoritative. Partner-issued writes show up as actor_type: "partner" rows in the audit log.
BYO-only. Partners do not transact platform spend — the customer's connected ad accounts are the source of money and consent. There is no Layers wallet that funds ad spend, and no aggregated billing.
Cents universally. All budget, bid, and money fields on the partner contract are integers in cents (per LOCK 2). Layers translates at the proxy boundary for each platform.
In this section
Read
Write — campaign
Create campaign (simplified)
Headline endpoint. Customer picks budget + outcome + management mode + creative mode. Layers handles the rest.
Patch campaign budget
Pause / resume campaign
Delete campaign
Get / Patch authority
Write — adset / adgroup
Patch adset budget
Patch adset targeting
Patch adset schedule
Pause / resume adset
Delete adset
Apple keyword bulk
Write — ad / creative
Write — optimizer + lifecycle
Trigger optimizer run
Optimizer write-class flags
List pending actions
Approve / reject pending
Content refresh
Disable underperformers
Reviews / disapproval
See also
- Ads write model — bucket-mode authority, kill-switch contract, scope vocabulary
- Run ads as partner — end-to-end guide
- Audit log — every write event with
actor_type: "partner"