The two settings
| Setting | Controls | Values |
|---|---|---|
creativeApproval | Buyer-submitted creatives (sync_creatives) | auto or manual (default manual) |
mediaBuyApproval | Buyer-submitted media buys (create_media_buy) | auto or manual (default manual) |
PUT /api/v2/storefront. The mode (auto
vs manual) is separate from what your acceptance policy says — the policy
is the content you judge against; the setting is whether a human judges at all.
Approval settings apply only to ad-server-backed storefronts (your Google Ad
Manager, FreeWheel, or SpringServe inventory). Storefronts that route to an
external sales agent or a linked storefront pass through — there’s no review
queue in front of someone else’s agent.
The lowest-risk posture: review everything
The safest setup — and the default — is both settingsmanual: nothing a buyer
submits reaches your ad server until you’ve approved it. The approval gate runs
before any ad-server write, so no order or line item is created upstream while
an item is pending.
One honest nuance:
creativeApproval: manualholds every creative. Each one lands in your queue aspending_review.mediaBuyApproval: manualis policy-gated, not a blanket hold. A media buy the evaluator judges clearly on-policy is auto-forwarded; everything else queues. So if you want a human to see every buy, keep itmanualand make sure your acceptance policy doesn’t pre-clear buys you’d want to eyeball. Until you’ve written an acceptance policy,manualis the right default.
How you review what’s queued
Pending items wait for your decision —approved forwards the item to the
underlying sales agent; rejected carries your reason back to the buyer. You act on
the queue three ways:
- The Approvals widget in chat — your main work surface. It shows both queues (creatives and media buys) with a pre-screen verdict, and you approve or reject inline. Its Approval routing section lets admins choose a primary approver and optional escalation roles or users, email/Slack delivery, and reminder/escalation timing. The queue includes Mine, Team, Overdue, and Unowned views, and admins can reassign open work to an eligible approver. If routing settings cannot load, the section stays visible with a retry action; non-admins see that a customer admin must manage it. Ask Murph to open the widget (“show me what’s waiting on me”).
- Seller Setup with Murph — if a managed storefront needs manual approval but has no approver, the go-live checklist blocks that queue and asks Murph to walk an admin through the decision. Murph explains the choices, then opens the same Approvals widget for configuration.
- Ask Murph — “what needs my approval?” lists the pending media buys and creatives; Murph pulls the details before any decision.
- REST —
GET /api/v2/storefront/media-buy-approvals?status=pendingandGET /api/v2/storefront/creative-reviews?status=pending, decided via their respective decide endpoints.
How you find out something is waiting
When a buyer submits a creative or media buy for review, it appears in your Approvals widget and Murph’s pending list right away, and you also get a notification the moment it lands. In-app delivery always goes to the current approval audience. Email goes only to that audience when enabled on the routing rule. Slack posts once to your configured customer channel when both the rule and the Slack event filter enable it.If the primary owner becomes inactive, the item moves immediately to the
configured escalation audience. If there is no separate escalation audience,
the primary audience remains responsible after the deadline. If no eligible
approver remains active, the item appears as Unowned for admins to reassign. A
reminder is sent before the deadline. Expiry never broadcasts the task to every
user and never auto-approves media spend or creative.
Trusting a specific buyer (per-buyer auto-approve)
You can keepmediaBuyApproval: manual for everyone but opt one trusted buyer
into automatic approval for their media buys — “auto-approve buyers I trust, review
the rest.” It’s a relax-only, media-buy-only carve-out:
- While enabled, that buyer’s media buys skip both your review queue and the acceptance-policy screen and forward straight to your ad server. Trust here means trust — their buys are not policy-checked, so only opt in a buyer whose buys you’d approve unseen.
- It affects media buys only. That buyer’s creatives still follow your
creativeApprovalsetting — creative review is a separate gate and is untouched. - It only relaxes. It takes effect only while
mediaBuyApprovalismanual; it can never put a buyer under review when the storefront isauto. - The buyer must be one that has submitted a media buy to your storefront — you can’t pre-arm a stranger.
PUT /api/v2/storefront/buyer-auto-approvals/{buyerCustomerId}. Disable it the same
way (enabled: false) — the record is kept for your audit trail, not deleted. See
Per-buyer auto-approve.
What’s not configurable yet
Beyond the per-buyer media-buy carve-out above, selective approval is still storefront-wide auto-or-manual: dollar thresholds, per-buyer creative auto-approval, and forcing a single buyer under review (inverse “tighten”) are not available yet. The agent also helps you find candidates for the per-buyer carve-out above: it flags buyers whose media buys consistently clear your review — when the buys from one buyer that came to you for review have all cleared and forwarded with no rejections, you’ll see alearned_auto_approve suggestion in
seller analytics
pointing you at per-buyer auto-approve for that buyer. It is suggest-only: the
agent recommends and you decide — it never changes an approval gate on its own.
Related
Per-buyer auto-approve
Opt a trusted buyer into auto-approve for media buys
Media-buy approvals
The pending media-buy queue and decide endpoints
Creative reviews
The pending creative queue and decide endpoints
Ad-server access
What reaches your ad server — and how approval gates it
Notifications
What does (and doesn’t) generate a notification