In short
Muze is an AI advertising operator for DTC brands. One OAuth connection puts Meta Ads, Google Ads, Amazon Ads and Shopify into ChatGPT, Claude or any MCP client, so total ad spend can be compared against actual Shopify order revenue instead of each platform’s own attributed number. It does not stop at reporting: it can pause an ad set, move budget and build campaigns. Every write returns a preview first, and new campaigns are created paused.
The order that gets sold twice
A customer sees your Meta ad on Tuesday, searches your brand name on Thursday, clicks the Google ad sitting above your own organic result, and buys. Meta counts that order. Google counts that order. You got one order. This is not a bug in either platform. Each is answering a question about its own channel using its own attribution window and its own view-through rules, and neither has any reason to mention the other. The result is the state most operators live in: four tabs open and three of them disagree about what yesterday was worth. The fix is not a better attribution argument, because you will not win that argument against two companies who write their own scorecards. The fix is putting spend from every channel next to the one number nobody can double count, which is the order sitting in your store.
Blended ROAS from the store, not from the platform
Blended ROAS is total revenue divided by total ad spend. It is boring precisely because nothing can inflate it. Muze reads it directly. get_blended_performance returns total spend across Meta, Google and Amazon against Shopify revenue, with blended MER, ROAS and ACoS, in one call. get_shopify_revenue reads order revenue straight out of the store. When a store transacted in more than one currency inside the window, that tool returns null rather than a converted guess, which is the correct behaviour and worth knowing before you build a report on top of it.
Platform-reported ROAS is still useful. It is a fine way to judge one creative against another creative inside the same account, because the bias is at least consistent. It is a bad number for judging the business. Keep both, and be clear which question each one answers.
The Monday morning this replaces
Most brands run the same routine. Export Meta. Export Google. Export the Shopify sales report. Paste into the sheet that broke last quarter. Reconcile three revenue figures, give up, pick one, write four bullets in Slack, start actually working at midday on Tuesday.
Muze does the retrieval and the arithmetic inside a conversation. Ask for last week against the week before and it calls compare_meta_performance and compare_google_performance, both of which return this period against the previous one by default, then sets the pair against Shopify revenue for the same window. What comes back is the summary you would have assembled by hand, built from numbers pulled at the moment you asked rather than whenever you last exported a CSV. Then you can act in the same conversation instead of switching to Ads Manager to do it.
It acts. It does not just narrate.
An agent that only reports is a nicer spreadsheet. The valuable part, and the risky part, is acting: pausing the ad set that has spent for eleven days without a purchase, shifting budget toward the campaign carrying the blended number, building the next test. Muze has 149 tools across the four platforms and the write coverage is real. Meta alone has 37, split 16 read and 21 write, including create_meta_campaign_flow, which builds campaign, ad set, creative and ad in a single call with every layer created paused.
What the loop looked like for heyNoah
heyNoah.ai went from $2K to $60K in revenue over three months on Meta Ads with Muze. The mechanism is the part worth copying. Muze analysed over 100 creative elements to find what was actually driving performance, and two findings held: openings built around “You’re not alone” drove 2.1x higher CTR, and calm face-to-camera video beat text-heavy creative by 38%. It then studied the angles working for adjacent apps and produced 40+ concepts across static, short-form creator-style video and carousel, so the team could test faster without adding production bottlenecks. Analyse, learn, generate, test, repeat. That is one customer, on one channel, and we are not going to present it as a benchmark.
What you would actually type
These are plain questions, not commands with syntax. Muze resolves account ids itself with get_my_accounts rather than asking you to paste them.
- “What was our blended ROAS last week against actual Shopify revenue?”
- “Meta and Google both claim conversions this month. Show me total spend across both against real store orders.”
- “Which ad sets spent over $500 in the last 14 days with no purchases? Pause them, and show me the list first.”
- “Which products drove the most revenue last month, and are we advertising them?”
- “Compare this month to last month on Meta and Google, then tell me which one explains the change.”
Nothing spends until you say so
- Every write previews first. You see the exact change before it runs, and nothing executes until you confirm it.
- Campaigns are created paused. create_meta_campaign_flow and launch_google_search both force paused status server side. A misread prompt costs you a click, not a weekend of budget.
- Pausing live spend is treated as destructive. Those tools require an explicit confirmation flag, not a confidently worded request.
- OAuth, scoped, revocable. Access covers the accounts you authorize and nothing else, and you can revoke it from the platform side without involving us.
What it costs
The free tier is 25 read-only tool calls per month. That is enough to connect your accounts, ask the blended ROAS question a few times, and decide whether you believe the answer before paying for the ability to act. Write actions require a paid plan.
Muze never takes a percentage of ad spend. You pay for software. Budget runs through your own ad accounts on your own payment method, and Muze never holds or intermediates it. A tool that earns more when you spend more is not sitting on your side of the table.
Frequently asked questions
- What is blended ROAS, and why does it differ from what Meta reports?
- Blended ROAS is total revenue from your store divided by total ad spend across every channel. Platform-reported ROAS is each platform’s model of the revenue it believes it caused, using its own attribution window. Because every channel models the same customer independently, the platform numbers usually add up to more revenue than your store actually took.
- Can Muze read my Shopify revenue?
- Yes. The Shopify tool set is 15 tools, 13 of them read only, covering orders, revenue, products, top products, feed alerts and sync health. get_blended_performance puts Meta, Google and Amazon spend against that Shopify revenue in one call.
- Does this replace my attribution tool?
- No. Muze does not build a multi-touch attribution model or measure incrementality. It puts platform spend and real order revenue in the same place so you can sanity check what the platforms report. If you run a dedicated attribution product, keep it, and use Muze for the operating work.
- Can it actually pause ads and change budgets, or only read?
- It can act. Meta has 21 write tools, Google 18 and Amazon 36. Every one of them previews the change and waits for explicit confirmation, and campaign creation is forced to paused status by the API rather than by a prompt instruction.
- Which platforms does the MCP cover?
- Meta Ads, Google Ads, Amazon Ads and Shopify. Four platforms, one OAuth connection. The wider Muze platform also covers TikTok Ads and Bing Ads, but those are not reachable through the MCP.
- Do I need a developer to set this up?
- No. Connection is OAuth with your normal platform logins. There is no Meta developer app to register, no Google Ads developer token to apply for and no API keys to mint on your side.
- What does it cost?
- The free tier includes 25 read-only tool calls per month across all connected platforms. Write actions require a paid plan. Muze never takes a percentage of ad spend.
Keep reading
Other segments
Ask what last month actually returned
Connect over OAuth, start read-only, 25 free tool calls a month. It cannot change anything until you let it.
Start free