Skip to content
Back to playbooks
Marketing

A performance-marketing stack for a two-person team

Paid social, paid search, lifecycle, and a warehouse that tells the truth. What we set up for small teams and what we deliberately leave out.

Chance Robertson · 6 min read

A two-person marketing team can run a serious paid program in 2026. The tooling caught up. What has not caught up is the advice, most of which assumes a media buyer, an analyst, a designer, and a lifecycle marketer who never speak to each other.

This is the stack we set up for Grow partners with one or two people on marketing and a real budget. It is opinionated. The goal is a program two people can run in twenty hours a week and hand the rest to us or to an agent, without losing sight of where the money goes.

The constraint

Two people means every tool has to earn its login. We start from what the team will actually look at each week, then work backwards to what needs to exist. Most of what a larger team runs is reporting for other people. A two-person team reports to itself, so the stack can be smaller and the numbers can be fewer and more honest.

The stack

  • Source of truth: a warehouse table per order, lead, and session, owned by you, fed by server-side events.
  • Attribution: a simple last-touch model plus a periodic geo or holdout test. No black-box multi-touch.
  • Paid social: one ad account, one pixel, a conversions API feed from your server, creative in three formats.
  • Paid search: brand, non-brand, and competitor campaigns, with a shared negative-keyword list.
  • Lifecycle: one email and SMS platform with a welcome flow, an abandon flow, and a win-back flow.
  • Creative: a bank of forty concepts, refreshed monthly, generated and edited by us and by models.
  • Dashboard: one page. Spend, revenue, blended cost per new customer, new-customer share, creative fatigue.

Measurement first

Nothing gets spent until the events are right. That means server-side purchase and lead events with stable IDs, deduplicated against the pixel, landing in your warehouse within the hour. The ad platforms get a copy. You keep the original. When the two disagree, the warehouse wins.

events/purchase.json
{  "event": "purchase",  "event_id": "ord_8f2a1c",  "occurred_at": "2026-05-04T16:12:09Z",  "value": 148.0,  "currency": "USD",  "new_customer": true,  "channel_hint": "paid_social",  "click_ids": { "fbclid": "...", "gclid": null },  "consent": { "ads": true, "analytics": true }}

One event schema, one ID per order, and a nightly check that platform-reported conversions and warehouse conversions agree within a few percent. When they drift, we fix the pipe before we touch the budget. A budget decision on bad data is worse than no decision.

Three campaigns, not thirty. A prospecting campaign with broad targeting and creative doing the work, a retargeting campaign with a short window, and a testing campaign that gets a fixed slice of budget every week. The platforms are good at finding people now. They are not good at making ads. Creative is where the effort goes.

The creative bank is organized by hook, format, and offer. Every concept exists as a static, a short vertical video, and a carousel. Rotation is on a schedule, not on a feeling, so nothing runs long enough to fatigue and nothing gets pulled before it has data. Models draft variants; a person picks and edits.

Brand terms get their own campaign so you can see what you are paying to defend. Non-brand gets tight match types and a negative list reviewed weekly. Competitor terms run only if the landing page is honest about the comparison. Search is the most predictable channel in the stack. Keep it boring and let it fund the experiments elsewhere.

Lifecycle

Three flows cover most of the value: welcome, abandoned checkout, and win-back. Each is three to five messages, written once and revised monthly from reply and unsubscribe data. Campaigns beyond flows are optional. Most two-person teams should send fewer, better emails, and spend the saved hours on creative.

What we leave out

  • Multi-touch attribution tools. They cost more than they change.
  • A second ad platform before the first one is stable and profitable.
  • Influencer and affiliate programs until there is a person to manage relationships.
  • Marketing automation suites. Three flows are enough for a long time.
  • Vanity dashboards. If a number does not change a decision, it does not get a tile.

Each of these gets added eventually by teams that grow. None of them belongs in the first version, and the first version is what two people can hold in their heads on a Monday morning.

The weekly loop

Monday: read the one-page dashboard, decide budget moves, approve creative for the week. Wednesday: review search terms and negatives, check event health. Friday: read replies and unsubscribes, write next week's tests. That is the job. Agents run the pulls, the drafts, and the alerts. Two people make the calls.

Budget rule

A fixed share of spend goes to tests every week. When tests win, they earn their way into the main campaigns. When nothing is being tested, the program is coasting, and coasting programs get more expensive every month.

We run this stack for partners as a Grow retainer and hand it over whenever they want it. Everything in it is yours: the accounts, the warehouse, the creative bank, the dashboard. The weekly growth review playbook describes the meeting that runs it.

Put a playbook to work

Every guide here is something we run every week. Bring us the problem and we bring the procedure.