跳到正文
增长渠道

The CIS Media Buying Stack: Dolphin for Profiles, and What Sits Above It

7 分钟阅读
KH

Karim Haddad

联盟营销与追踪分析师

Every CIS media buying stack has two floors, and confusing them is the most expensive mistake in the category. The first floor is access and identity: profiles, fingerprints, proxies, who logs into which account from which machine. The second is campaign work: launching, rules, budgets, creatives, and the one question that survives to the end of the month — what did we actually make?

Dolphin owns the first floor, and owns it well. This article is about where that floor ends, what is still on the table when it does, and how the two halves fit together. It is not an argument for replacing anything.

What Dolphin actually covers

A profile instead of a password

The unit of work is a browser profile, not a login. A buyer gets access to the account without ever holding the credentials, and access is revoked by removing the profile rather than by rotating a password that four other people also know. For a team of any size this is the difference between an offboarding that takes a minute and one that takes an afternoon.

Cloud profiles are a handover, not a migration

Dolphin{cloud} stores the profile server-side, so a second person opens the same session from a different machine without exporting anything. That is genuinely useful when a campaign changes hands mid-flight — the thing that usually breaks a handover is the session, not the strategy.

Separating identities is hygiene, not a trick

Keeping unrelated accounts from looking related is ordinary operational discipline, the same way you would not run two clients out of one inbox. The fingerprint layer exists because browsers leak more than most people expect, and separating what is genuinely separate is the honest use of it.

Where the layer ends — and this is not a complaint

A browser profile does not know what a campaign is. It does not know yesterday's spend, it cannot compare an offer across two platforms, and it has no opinion about whether a creative is tired. That is not a shortcoming: it is the boundary of the layer. Everything past that boundary belongs to a different tool, and pretending otherwise is how teams end up with a stack that does one job twice and another job never.

What is still on the table once access is solved

The buyer is in the account. Now the actual work starts:

  • Launching at volume. One sheet, one row per campaign, six platforms — Meta, Google, TikTok, Taboola, Snapchat and Outbrain — through their official APIs.
  • Rules that run while you sleep. Evaluated every fifteen minutes, on 33 condition metrics.
  • Budgets that move toward what works, with a simulation before and a log after.
  • Profit, not just ROAS, with revenue read from the tracker you already run.
  • Creative fatigue scored against the ad's own first days rather than a category average.

None of that is browser work, and none of it disappears because the profile layer is sorted.

Trackers connect — they are not replaced

Ten adapters ship today, self-hosted ones included: Keitaro, Binom, Voluum, RedTrack, ClickFlare, BeMob, Everflow, ExoClick, TrafficManager, Search Feed. The tracker stays yours and stays the source of truth for revenue. What changes is that spend and revenue land on the same row, per campaign, instead of in two tabs that get reconciled by hand on a Sunday.

A rule that reads margin, not ROAS

profit, profit_margin, true_roas and break_even_roas are condition metrics, not report columns. A rule can pause a campaign below break-even instead of below a ROAS number that means something different on every offer — 2.1 is comfortable on one margin structure and a slow bleed on another.

The brake, and why it is asymmetric

Stopping autonomy halts activations, budget increases and relaunches, and leaves pause and budget decrease running. That asymmetry is deliberate: the failure mode you want when you take your hands off the wheel is a campaign that stops spending, not one that keeps scaling unattended.

Exact numbers, before the demo rather than after

Coverage is not uniform, and it is better said plainly:

CapabilityPlatforms
Connect, launch, sync, measuresix
Pause / activate a campaignsix
Budget changes from the rules enginefive — Outbrain has no branch
Compare one platform against anotherfour — Meta, Google, TikTok, Taboola
Pause / activate at ad-set and ad levelthree
Rollback and relaunchMeta only

Concessions worth making ourselves

We do not do fingerprints, we do not do proxies, and we do not do creative uniqueization — those are Dolphin's floor and they are not on our roadmap as a way of taking it over. Dolphin's entry price is lower than ours, because it is a different product solving a different problem. And there is no tax column in the profit model: cost of goods, shipping, fees and refunds are there, tax is not.

How the stack goes together, step by step

  1. Dolphin holds the identities. A profile per account, per geo, per team member. Access is granted to a person, not to a password.
  2. Your tracker stays yours. Keitaro or Binom connects through an adapter and becomes the revenue source.
  3. Ad accounts connect once over OAuth — a registered app on the official Marketing API. No cookies, no interface automation.
  4. The first rule is written on margin, not ROAS. One rule. Pause below break-even on a three-day window, then a week of just watching how it behaves.
  5. Reports are read on contribution, not on the platform's number. The platform number is not lying; it is answering a different question.

Nothing in that list is a migration. Dolphin stays exactly where it was, doing what it does well.

What breaks at the seam, and it is worth knowing in advance

Both floors work on their own. Trouble starts where they meet, and it is almost always the same three things.

Revenue arrives after spend. Spend is visible immediately and the conversion lands in the tracker, but the money behind it goes through hold and approval. A margin rule written on a one-day window reads full spend against partial revenue and reaches a conclusion that will be wrong a week later. So the window is set wider than the offer's hold — not wider "to be safe": three days on fast nutra, a week where approval takes its time. It is the one setting worth confirming with your affiliate manager before a rule switches anything off.

Time zones do not line up. The ad account counts a day in its zone, the tracker in another, the network in a third. On a daily report the gap looks like noise; inside a rule it becomes a decision, because a campaign falls into different days in two systems and the numbers stop reconciling exactly where precision matters.

Currency converts twice. Spend in one currency, payout in another, reporting in a third, with rates taken on different dates. A few percentage points of drift eats precisely the headroom that break-even was calculated against.

None of the three is solvable on the profile floor — and that is a description of a boundary, not a complaint about Dolphin. All three are solvable where spend, revenue and the rule sit next to each other.

What the platform number is actually telling you

A media buyer who has run offers for a while stops arguing with the platform's ROAS and starts asking what question it answers. The platform counts conversions it can attribute inside its own window, on its own clock, before anything is approved. It is not wrong; it is early, and it is partial by construction.

The tracker answers a different question: what came back, and when. The store or the network answers a third: what survived refunds and chargebacks. Three numbers, three definitions, and a team that treats them as one number will spend a morning every week deciding which dashboard to believe.

The practical rule is boring and it works: pick the number a decision is made on, write down what it includes, and never compare it to a number with a different definition. Once spend and tracker revenue sit on the same row, that choice becomes explicit instead of a matter of habit.

Two mistakes that cost more than the tooling

Scaling on a number that has not settled. The last few days of any profit figure are still moving — hold, approval, refunds. Scaling a campaign on Monday against numbers that will change by Thursday is the most common way a profitable week turns into a flat month. The fix is not more data; it is reading recent days as provisional and setting rule windows accordingly.

Killing on a window that is too short. The mirror image. A campaign paused on a single bad day, before the offer's approval cycle has caught up, gets killed while it was working. Both mistakes come from the same root: a window chosen for convenience rather than for how the offer actually pays.

Neither is a browser problem, and neither is solved by better fingerprints. They are decided at the layer where the spend, the revenue and the rule are looking at the same row.

Where to go next

For a wider look at the tooling in this market, see our guides to Meta Ads tools in Russia and the CIS and the CIS affiliate marketing stack. The broader picture on buying Meta traffic as an affiliate in 2026 is here.

The short version: profiles solve getting in. Everything that happens after you are in is decided on another floor — and the stack works when both floors exist, rather than when one pretends to be the other.

常见问题

邮件通讯

The Ad Signal

写给不靠猜的广告投放人员的每周洞察。一封邮件,只有信号。

相关文章

准备好把投放运营自动化了吗?

在每一个账户上批量创建广告。免费开始,一直免费。无需信用卡,随时取消。