Przejdź do treści
Strategia i Skala

Dropshipping with Dolphin: Profiles Are Cheap. Knowing Your Break-Even ROAS Isn't.

9 min czytania
PR

Priya Raghunathan

E-commerce Performance Manager

The fastest way to spot someone who has never run a store is to watch which number they celebrate. A 4.2 ROAS screenshot means nothing on its own. On a product landing at 62% margin it is a very good day. On a product landing at 24% margin, after the shipping upgrade and the 6% that comes back as refunds three weeks later, it is a slow leak with good posture. The number that separates the two is the break-even ROAS, and almost nothing in the stack knows it.

Quick answer: Dolphin solves the store-and-account side at the browser layer — isolated profiles per store, per market, per ad account, and team access without passing credentials around. That is a real job and it does it well. What no browser can know, by construction, is your landed cost, your refund rate and the ROAS at which you break even. Those are assembled from your store and your tracker, matched back to the ad that produced the order — and in Wevion they are not just report columns, they are conditions a rule can act on.

This piece is for dropshippers running more than one store or more than one ad account. I work on Wevion, on the API layer, and I will say clearly where our part starts. But most of what follows is arithmetic that would be true if we did not exist.


What Dolphin is genuinely good at in a dropshipping stack

One profile per store, one per account, no bleed

Anybody running three stores across two markets has had the moment: the wrong Business Manager was logged in, the pixel from store A ended up on a page for store B, or a campaign published into the account that was supposed to be dormant. That happens because a normal browser has one shared identity and you are the only thing keeping the contexts apart.

Profiles remove the shared context. Store A's session, cookies and logged-in state live in a container that never touches store B's. It is a mundane control that prevents an expensive class of mistake.

Team access without a credentials spreadsheet

The second thing dropshippers hit at scale is that they are no longer solo. A VA handles customer service, a media buyer handles Meta, someone else handles the supplier. The default solution is a shared password in a note, which is how you end up not knowing who still has access six months later. Granting a profile per person is a better unit than sharing a password, and on the cloud tier it survives someone changing laptop.

The honest boundary

A profile answers which identity is browsing. It does not answer did this ad make money, and it never advertised that it would. Everything below is the second question. It is a different layer, not a shortcoming.

For what lives in the cloud, what stays local and how the tiers are structured, we covered the product itself in the Dolphin Cloud review.


The number that decides your day, and where it actually comes from

Break-even ROAS is not a marketing metric. It is a subtraction:

contribution profit = revenue
                    − cost of goods
                    − shipping
                    − payment processing fees
                    − refunds
                    − ad spend

Set contribution profit to zero, solve for the ROAS, and you have the line. Everything above it is scaling. Everything below it is a campaign that looks fine in Ads Manager.

The reason most dropshippers do not have this number per campaign is not laziness. It is that the pieces live in four different systems that do not agree with each other:

PieceWhere it livesWhy it is hard
Revenuestore, or trackerstore revenue is gross; the tracker sees the click, not the refund
Cost of goodssupplier, spreadsheetchanges over time; the cost at the moment of the order is not today's cost
Shippingstore, per ordervaries by zone, and often by the upgrade the customer chose
Processing feespayment providera percentage plus a fixed part, per transaction
Refundsstore, weeks laterthey arrive after you already decided to scale
Spendsix ad platformsin six currencies, with two different unit conventions

That last row is where most home-built spreadsheets quietly break. Google Ads reports cost in micros — 1,000,000 units to the dollar. Meta reports dollars with decimals. If whoever assembled your cross-platform return did not know that, you will never see the error. You will see a very confident wrong number.


What the API layer assembles, and how precisely

In Wevion, the profitability model resolves per entity and the entity level goes down to the individual ad. Each stored row carries, explicitly: spend, gross revenue, net revenue, refunds, cost of goods, shipping cost, processing fees, contribution profit, contribution margin, true ROAS and break-even ROAS — plus the currency, the exchange rate used, the data source and a data-quality flag.

Two of those fields deserve more attention than they usually get.

The data source is stored, not assumed. A row says whether its cost of goods came from Shopify, from WooCommerce, from a tracker postback, from a manual entry, or from a mix. When somebody eventually asks "where does this margin come from?", the answer is a field rather than an argument.

The quality flag is stored too, as full, partial or estimated. A partial margin figure is still useful — it is a lot more useful than no margin figure — but it should be labelled, because an unlabelled estimate is how a business ends up scaling on a number nobody remembers was a guess.

And one detail from inside the pipeline that tells you whether people who built it have run a store: when no exchange rate is available for a given day, the row is refused rather than saved. A silent fallback rate of 1 on a weak-currency ad account would understate spend by two or three orders of magnitude and produce a gorgeous, entirely fictional margin. A gap in a chart is a question. A wrong number with no gap in it is a decision.


The line we will defend hardest: a rule that reads margin

Here is the part that is genuinely unusual, and it is small enough to verify.

Most tools in this market split into two groups. Attribution and profit tools know your margin but cannot touch a campaign. Rule engines can touch a campaign but only know what the ad platform tells them — spend, ROAS, CPA, CTR. So the standard workflow is: look at margin in one tool, then go and change budgets in another, by hand, later.

In Wevion, profit, profit_margin, true_roas and break_even_roas sit in the same list of condition metrics as spend, impressions, clicks, CTR, CPC, CPM, purchases, conversions, ROAS, CPA, average order value and conversion rate. Nineteen universal condition metrics, plus fourteen that only appear when the platform is Meta — thirty-three in total. Which means a rule can be written as:

if contribution margin over the last 3 days is below 8%, decrease budget by 30%

and not as a proxy for it.

That is a different sentence from "our rules are advanced". It is checkable in ten minutes with a trial account: open the rule builder, open the condition dropdown, and see whether the margin metrics are in it.

The brake, and why it is asymmetric

One design decision worth stating because it is the opposite of what most people expect. There is a switch that stops the engine acting on its own. When it is pulled, it holds back the actions that increase spend or cannot be undone — activating, raising a budget, relaunching — and it deliberately lets pausing and decreasing budget keep running.

The reasoning is written in the code next to the switch: a symmetric stop would disarm a customer's overspend protection at the exact moment they reached for the emergency switch. The switch would become the cause of the loss it was pressed to prevent.

For a dropshipper on a thin margin, that asymmetry is the whole point of having automation at all. The rules that cost you money get held. The rules that save you money keep going.


The exact platform numbers, before the demo rather than after

Rounding these up is how a first week goes badly, so:

  • Connect, launch, sync and measure: six — Meta, Google, TikTok, Taboola, Snapchat, Outbrain.
  • Budget rules: five. Outbrain has no budget branch in the rules engine.
  • Rules that compare one platform against another: four — Meta, Google, TikTok, Taboola.
  • Pause and activate at ad set and ad level: three — Meta, TikTok, Snapchat. At campaign level: all six.
  • Launch rollback and relaunch: Meta only.
  • Product catalogs and dynamic ads: four — Meta, Google, TikTok, Snapchat.
  • Instant duplication: Meta. On the other five you get a draft to review.
  • Rules run on a 15-minute cadence.

Commerce connects through Shopify and WooCommerce. Tracker revenue comes through ten adapters — Keitaro, Binom, ClickFlare, RedTrack, Voluum, BeMob, Everflow, ExoClick, TrafficManager and the search feed adapter — which connect rather than compete: if you already run one, it becomes the revenue source, not a thing to replace.


The concessions, and there are three real ones

Dedicated profit tools go deeper on cost of goods, and cost less. Per quantity, per shipping zone, per weight, with historical cost versioning — the specialists in that category do it better than we do, and they are cheaper. If profit tracking on one store is your entire problem, buy one of those. Our answer is not "we are deeper", it is "our margin is a rule condition on six ad platforms" — a different sentence.

There is no tax handling at all. The model carries cost of goods, shipping, processing fees and refunds. It has no fiscal column, and we are not going to pretend otherwise, because that is exactly the kind of claim that falls over in month two of an accounting cycle.

There is no predictive returns model. Refunds are recorded as they arrive. If your category has a 30-day return tail, your margin for the last 30 days will improve or worsen after the fact, and you should read it knowing that. Nobody's model of the future is better than your own category knowledge here.

And the one that belongs to Dolphin's side of the fence: creative uniqueization at launch does not exist here. If your workflow is thirty variants of one creative, pushed at volume, that is a browser-layer job and Dolphin does it. What we handle is what comes after — creative fatigue scored across all six platforms, with the baseline taken from that ad's own first days rather than from an account average, so a strong ad is not flagged as decaying just because the account has a good week.


The stack that actually works, in order

  1. Dolphin for identity. One profile per store, per market, per ad account. Team access granted per person. This is the layer that keeps contexts apart and gets your buyer into the account.
  2. Store connected once, Shopify or WooCommerce, so the cost of goods is the cost at the moment of the order rather than today's supplier price.
  3. Ad accounts connected once over OAuth to the API layer — a registered app on the official Marketing API. No cookies, no browser puppets, nothing scraped.
  4. Rules written against margin, not ROAS. Start with one: pause below break-even over a three-day window. Watch it for a week before you write the second.
  5. Read the report on contribution, not on the platform's number. The platform's number is not wrong, it is just answering a question you did not ask.

Nothing in that list is a migration. Dolphin stays where it is, doing the job it is good at, and the campaign arithmetic moves to the layer that can see the orders.

No tool in either layer can promise an account will never be restricted — that includes us, and it is worth saying plainly rather than in a footnote. What you can control is what you measure and what you automate against it.


Where to go next

If you want the same argument from the agency side — client accounts, handover, and who changed which budget — that is Dolphin for agencies. If you want the scaling playbook without the anti-detect layer at all, we wrote compliant dropshipper scaling on the official API. And for the broader e-commerce picture across platforms, our 2026 e-commerce ads strategy is the wider frame.

The short version: profiles are cheap and worth having. Knowing your break-even ROAS per ad is the expensive part, and it is the one that decides whether the profiles were worth having.

Najczęściej zadawane pytania

Newsletter

The Ad Signal

Cotygodniowe spostrzeżenia dla media buyerów, którzy odmawiają zgadywania. Jeden e-mail. Tylko konkrety.

Wróć do bloga
Udostępnij

Powiązane artykuły

Gotowy na automatyzację operacji reklamowych?

Zacznij uruchamiać kampanie masowo na wielu kontach. Zacznij za darmo, na zawsze. Bez karty. Anuluj w dowolnym momencie.