Meta and Google ads for Shopify fashion brands: break-even ROAS, budgets and an ads autopilot in KNKTD OS

A ROAS means nothing without knowing what each product needs to break even. KNKTD OS works that out from landed cost and fees, traces orders to their ads, and gives an ads agent a budget it cannot exceed.

· 8 min read

In short: KNKTD OS connects Meta, Google, Pinterest and ChatGPT ad accounts to the same workspace as the stock, the costs and the Shopify orders. It shows each campaign's budget and lets you change it, links orders back to the ad that brought them, and works out the return each product needs to break even after landed cost and payment fees. An hourly ads agent can then pause, raise and launch campaigns, but only within per-account caps and the monthly budget a person saved.

Most fashion brands judge their ads on the network's ROAS. It is the number in Ads Manager, it goes up and down, and nobody can say whether 2.4× is good. It depends on the product, on what it cost to land, on the payment fees on each order, and on whether the orders the network claims actually reached Shopify.

KNKTD OS already holds those facts: each style's production cost, the duty on its declared value, the payment fees charged, and every order with its customer journey. Paid marketing is built on top of them.

Which ad networks connect

Ad accounts are connected once, under Settings → Integrations → Marketing. Each keeps its own currency; totals across accounts are converted to the workspace currency, and a currency with no exchange rate is left out and named rather than added in as if it were the same money.

NetworkReportingLaunch from KNKTDPause, resume, budgetAds agentCreative test
MetaYesYesYesYesSecond ad in the same ad set
Google AdsYesSearch and Performance MaxYesYesNone
PinterestYesYesYesYesTwo campaigns at half budget
ChatGPT AdsYesYesYesYesNone

TikTok ads can be connected, but TikTok ad performance is not reported yet, so nothing can be launched or changed there.

A campaign launched from KNKTD is always created paused, and carries the network's own click-tracking parameters for the campaign and the ad, so its orders can be traced back.

Campaign budgets, stored and shown

The Ads page lists every campaign with its status, budget, spend, impressions, clicks and revenue. Budgets are stored with each campaign, daily or lifetime, rather than fetched only when needed. Where the money sits on the ad sets, the campaign shows the total of its active ad sets. Where those ad sets mix daily and lifetime budgets, it says "per ad set" instead of adding two kinds of money into one number.

Change budget keeps the campaign's own mode, so a lifetime budget is never turned into the same amount per day, and a lifetime budget cannot be set below what the campaign has already spent. The new amount appears on the page at once and is confirmed against the network straight afterwards.

Which ad brought which order

KNKTD OS reads the customer journey Shopify records for every order and keeps the tracking tags of the visit that converted. The order page shows it in its own attribution card. An order counts as paid only when the tags say it came from a paid ad: a click from an Instagram bio is organic social, not an ad.

On Paid Marketing in the analytics module, each campaign, ad set and ad has Store orders and Store product sales columns beside the network's own purchases and revenue. They are the orders Shopify actually received, as product sales before returns in the workspace currency. They are deliberately not divided by spend into a second ROAS, because the spend is billed in the ad account's own currency.

The same page carries MER, blended CAC, new-customer ROAS and profit after ads: contribution margin, less ad spend, less influencer gifting. The same ad spend is a line on the monthly Profit & Loss report.

Break-even ROAS, per product

Break-even ROAS is the return at which an ad stops losing money. KNKTD OS works it out as 1 ÷ the contribution margin rate, where contribution margin is product sales after returns, less cost of goods and payment fees and chargebacks, plus net shipping. If any sold unit has no cost on file, the margin is withheld rather than guessed. A margin built on partial costs flatters every figure that uses it.

The same arithmetic runs for each product, which is where it matters most. A product's figure is built from:

  • its sales in the Margin & Profitability report, with influencer gift orders left out, since a gifted unit is revenue of zero;
  • its cost of goods and the landed duty on its declared value;
  • its share of the period's payment fees and chargebacks, at the rate the whole store paid.

A campaign linked to one product is judged against that product's break-even; a campaign advertising several is judged against their blend; one with no product linked falls back to the account figure. Every card names which one it used. A product that loses money on every unit has no break-even at all, because no return on ad spend fixes a price below cost. A campaign advertising it can be proposed for a pause, never a raise, and the product is never picked for a new campaign. When some payment fees could not be counted, the figure says so, because it will read low.

The setting is Judge each campaign on its own product's margin, on by default.

Recommendations, and the Scale card

Once a day, and on demand, KNKTD OS writes recommendation cards from the workspace's own numbers: pause a campaign losing money at scale, pause one whose creative wore out, pause a winner below its product's break-even, raise a winner's budget, boost an outperforming post, advertise a best seller that is not about to run out, and retarget a customer list. Each card shows its evidence, and Dismiss silences that signal for a month.

The Scale card proposes 1.2× the campaign's current daily budget, not 1.2× its average spend. A campaign on 12.00 a day that averaged 4.31 during a slow start is raised to 14.40, never "raised" to 5.17. There is no Scale card on a lifetime budget, on a campaign whose budget sits on its ad sets, or where the daily budget is unknown. When the card is accepted, the live budget is read again first. If someone has changed it since the card was written, nothing is applied.

An ad account that spent this week and reported no purchase may have a broken pixel, so no pause or raise is suggested there until tracking reports again. A fortnight after a card is accepted, its campaign is judged against the account, and the result ranks that rule's future cards.

The ads agent

The agent runs every hour. It has three modes: Off, the default; Review, where it decides and logs but applies nothing; and Autopilot, where it applies what its rules allow. Each kind of action — pause, resume, raise budgets, create campaigns, boost posts, retire losing creatives — is set to Off, Ask me or Automatic. Ask me sends a notification, and a person applies the decision from the agent's page. A daily brief reports what happened.

A model is used for one job: writing the copy for a new campaign, in the brand voice set in the agent's settings. OpenAI and Anthropic models can be chosen. The numbers and the caps never pass through the model. Its copy is checked in code: no links, no numbers the evidence does not carry, and no discount or material the product description does not state. Google Search keywords are limited to the product's own words and a short generic list, so a competitor's brand cannot appear.

The guardrails are settings, enforced in code rather than in a prompt:

  • Caps per ad account, in that account's currency: a daily cap on all the budgets the agent is responsible for, a monthly cap, a maximum per campaign a day, and a maximum raise per step. A daily cap of zero means pause only.
  • Over the cap: if what is already running exceeds a cap, the agent lowers its own campaigns to fit, then pauses.
  • Campaigns a person made are left alone unless Manage campaigns it did not create is on, and then the agent may only pause them. It never resumes a campaign a person paused, and never raises one it did not create.
  • Pacing limits: raises of at most 20% by default, 24 hours between budget changes, one new campaign a day, and three actions per pass.
  • Stopping: Stop the agent halts every pass, optionally pausing every campaign it started. The agent also stops itself if a network does not confirm a campaign it created, and re-reads its settings before every change.
  • Permissions: turning the agent on, changing its settings while it runs, or applying one of its decisions takes the Launch ads permission. Stopping it needs only write access.

Monthly targets: the budget the agent works inside

On Monthly targets, a person enters a sales target and the return they expect. The ad budget is the target divided by the return: $60,000 at 10× is $6,000. There is no separate approval step. The button reads Save — lets the ads agent spend up to that amount in that month, because saving it is the authorisation.

Three checks guard that button. A budget above three times the highest month of ad spend in roughly the last 90 days is refused. A budget more than 1.5× the month's current one, above the budgets of the previous three months, or on a store with no ad spend history asks for a second confirmation. And a check chip compares the return asked for with the blended return the store actually achieved over the last 90 days: Reachable, Stretch or Not reachable.

The agent reads that saved budget as a hard limit across all accounts, split between networks by their live campaign budgets. Clearing a month removes the budget, and the agent then adds no spend. Only Allow spending over the monthly target lifts the limit, leaving the per-account caps in charge.

Where it connects

Product costs come from each style's production run in product development, and a best seller the demand forecast says is about to stock out is not advertised. Paid Marketing sits beside sales velocity and margin in the analytics module, with influencer gifting counted as a marketing cost of its own. The workspace assistant, connected to Claude or ChatGPT, answers questions about ads, recommendations and the agent's decisions, read-only.

Pricing

Paid marketing is part of the marketing and analytics modules, included on every plan. Plans start at $100 USD per month for two team members, with a 14-day free trial; ad spend is billed by the networks themselves. See current pricing.

Bottom line

A ROAS figure means nothing without knowing what each product needs to break even. KNKTD OS works that number out from the costs, duties and fees it already holds, traces orders back to their ads, and gives the ads agent a budget it cannot exceed: the one a person saved.

Frequently asked questions

Which ad networks does KNKTD OS support?

Meta, Google Ads (Search and Performance Max), Pinterest and ChatGPT Ads. On all four, KNKTD OS reports performance, launches campaigns (always created paused), pauses and resumes them and changes budgets, and the ads agent can work there. TikTok ads can be connected, but TikTok ad performance is not reported yet, so nothing can be launched or changed there.

How does KNKTD OS work out break-even ROAS?

Break-even ROAS is 1 divided by the contribution margin rate. For each product, the margin comes from its sales with influencer gift orders left out, less its cost of goods, the landed duty on its declared value, and its share of payment fees and chargebacks. A campaign is judged against its own product’s break-even, a blend when it advertises several, or the account figure when no product is linked.

Does the ads agent spend money without asking?

Only if you let it. It is off by default. In Review mode it logs decisions and applies nothing, and in Autopilot it applies only the actions set to Automatic. Every change is bound by per-account daily and monthly caps, a maximum per campaign and per raise, and the monthly ad budget saved on Monthly targets. Stop the agent halts it at once.

How is the monthly ad budget set?

On Monthly targets you enter a sales target and the return you expect, and the ad budget is the target divided by the return. Saving it is the spend authorisation. A budget above three times the highest recent month of ad spend is refused, and a large jump asks for a second confirmation. Clearing a month means the agent adds no spend.