Reach · Paid acquisition & tracking infrastructure
Optimise for the subscriber, not the first order.
The optimiser buying your media is already a model, and it only knows what you send it. We rebuild what it is fed — server-side events that actually arrive, conversion values that describe a subscriber rather than a checkout, feeds that do not drift — and then we run the campaigns on top of it.
The problem
The optimiser inside a Meta or Google campaign is a machine that learns from what you send it. Send it a purchase event carrying the value of a first order, and it will go and find you more people who place a first order. For a brand selling one duvet, that is exactly right: the first order is the whole relationship. For a brand selling a 30-day supply bottle on a four-week cycle, the first order describes a fraction of the customer, and the platform has no way of knowing the rest exists. Eleven rebills happen somewhere the pixel never sees.
So the algorithm does precisely what it was asked to do. It finds the cheapest first orders — the discount-led, the trial-hunting, the ones who were only ever going to take the introductory bottle. The subscriber who would have stayed a year looks identical, in the event stream, to the one who cancelled inside the first billing cycle, and frequently looks worse, because they were less moved by the offer and therefore cost more to acquire. Budget follows the event stream, and the event stream is telling a story about the wrong customer.
Underneath that sits a plainer failure: a good share of the events are not arriving. Browser-side pixels lose conversions to ad blockers, tracking prevention and consent walls, and nobody can tell you how many, because the lost events are lost. Shopify runs custom pixels in a sandbox and has deprecated the old checkout script hooks, so the client-side surface keeps getting narrower. Meanwhile the catalogue that Shopping and Advantage+ campaigns actually shop from is a feed — a file or a sync that quietly goes stale, bidding on a variant that went out of stock last Thursday, showing a one-time price next to a subscription product, or sitting in rejection on a required attribute nobody is watching.
This is where two disciplines miss each other. A media buyer can see that performance is soft and cannot see why, because the cause is three layers down in a data pipeline they have no access to. A development team can see the pipeline is wrong and has no reason to look, because nobody asked them to. So a third agency gets hired for attribution software, and now there is a fourth number that disagrees with the other three.
On a subscription brand, the creative is usually not the binding constraint. The numbers feeding the optimiser are. Fix those and the media buying becomes an ordinary job done well; leave them and the best creative team in the category is still optimising toward the wrong customer, faster.
Where this sits in the market
Our own read of the landscape, not a third-party index. We have an obvious interest in how we describe a market we have only just entered — so treat it as a point of view rather than a finding, and note that the point of view is that this category is extremely crowded.
What we build
Six of these are infrastructure and one is media buying. That ratio is the whole argument for hiring an engineering firm to do this — every one of the six changes what the optimiser is looking at when it decides who to show your ad to.
- Server-side event stream The Conversions API for Meta and the server-side equivalents for Google and TikTok, sending from infrastructure rather than from a browser that may never run the script. Event IDs on both sides so the server event and the pixel event deduplicate instead of double-counting, hashed customer parameters for matching, retries on failure, and consent state carried through rather than assumed.
- Subscription-aware conversion values The value attached to a purchase event stops being the first order’s total and becomes a description of the customer that order represents — realised value where your history is long enough to read it, a written-down model where it is not. The optimiser cannot go and find more subscribers if it has only ever been told about first orders.
- Product feed pipelines A feed for Shopping, Advantage+ catalogue and the marketplace equivalents, generated from your Shopify catalogue on a schedule rather than exported by hand when somebody remembers. Variants, stock state, subscription versus one-time pricing, required attributes — and a monitor that tells a person when a rejection appears, instead of it surfacing in a quarterly review.
- Creative-testing scaffolding Naming conventions, a tagging taxonomy and UTM discipline applied the same way across campaigns, ad sets and assets, so a test can be read afterwards. A great many creative tests in this category fail at the reporting layer rather than the creative layer: the variants ran, and nothing can be said about them, because nothing was labelled.
- Budget and bid rules automation Rules that shift budget, pause and reactivate on conditions you have agreed, running as scheduled jobs against the platform APIs rather than as somebody’s Monday morning. Rules, deliberately: a threshold you can read, argue with and reverse, not a second model quietly moving your money on top of the first one. Every action logged, and every threshold set from your numbers rather than from a template.
- Campaign management and media buying Structure, audiences, exclusions, budgets and the day-to-day work across the major platforms. Ordinary craft, done properly, sitting on top of a measurement layer that is telling the truth — which is the only condition under which the ordinary craft is worth paying for.
- A blended view to judge it by Spend, revenue and post-COGS contribution in one place, on the same definitions every week, so the decision to spend more or less is made against the business’s own numbers rather than against the sum of four platforms each claiming the same order.
The feed work overlaps with catalogue & feeds and the blended view is built the same way we build reporting & profit analytics. Where you already have either of those, we use it rather than rebuild it, and the scope comes down accordingly.
How the build runs
Four weeks from access to launch. The order matters more than the duration: nothing that changes what the optimiser sees goes live before the baseline is recorded.
-
01
Measurement audit
Everything currently firing, mapped: pixels, apps, custom pixels, whatever the theme is carrying and whatever a previous agency left behind. Then the events reconciled against Shopify orders, so we can say which conversions arrive, which are counted twice and which never make it at all.
Week 1
-
02
The event contract
Written down before anything is built: which events exist, what each one means, what value it carries, which identifiers travel with it and what consent state governs it. One page, agreed by you, and the document every later disagreement gets settled against.
Week 1–2
-
03
Server-side build
The sending infrastructure, deduplication, hashed parameters, retries and monitoring. Verified against your order data as well as the platforms’ own diagnostics — a green light in an ad account is a vendor’s opinion of our work, not a test of it.
Week 2–3
-
04
Conversion values & feeds
The subscriber value model implemented and wired into the event stream, and the catalogue pipeline built, validated and monitored. Both of these change what the optimiser sees, so both land before any budget moves.
Week 3
-
05
Baseline, then launch
Your blended numbers recorded before we touch a campaign, because once spend has moved there is no honest way back to them. Then campaign structure, the naming and tagging scaffolding, and the rules layer.
Week 4
-
06
Read, and keep reading
Weekly against the baseline, monthly against cohorts. When the platform-reported number and the blended number disagree, the blended number wins and the job that week is finding out why the platform is wrong.
Ongoing
We have no numbers for this yet
This is a new service line. There are no client results to publish, and this page is not going to borrow somebody else’s.
Every other service page on this site carries figures with a named source next to them. This one carries none, because we have not yet run enough paid media under our own measurement layer to say anything we could defend. When we have, the result will appear here with the method printed beside it, the same as everywhere else.
Results we can publish for this service
—
Metric to confirm. Not a placeholder for a number we already know and are withholding — a placeholder for work we have not done enough of yet.
Why there is no benchmark table either
It would be easy to fill this space with category averages, and we have decided not to. Published paid-media benchmarks are built out of platform-reported numbers, and platform-reported ROAS is self-attributed: the platform decides which orders it caused, using its own attribution window and its own view-through rules, and then reports that judgement to itself. Run three platforms on one store and all three will confidently claim the same order. An average assembled from measurements like that is not a benchmark — it is an average of marketing claims collected under inconsistent definitions. Quoting one at you would be worse than quoting nothing, because it would look like evidence.
The only number that will matter
Your own blended figure, recorded before we change anything and read on the same definition afterwards. It is the one measurement in this category nobody has an incentive to inflate, because it comes out of your bank account and your Shopify orders rather than out of an advertising platform’s report on its own performance. That is why recording the baseline is a numbered step in the build rather than something we get around to later — after budget has moved, there is no honest way back to it.
What we measure, and how it is defined
- Blended MER
- All store revenue divided by all advertising spend, every channel, on one window. The number the business is actually run on, and the one nobody has an incentive to inflate.
- New-customer acquisition cost
- Advertising spend divided by first-time customers, counted from Shopify order data rather than from platform-reported conversions.
- Subscriber share of new customers
- What proportion of the customers a campaign acquires start on a subscription rather than a one-off — read from the subscription platform, split by campaign and by creative.
- Cohort value over time
- What each month’s acquired cohort has actually paid, read at the same intervals every month. This is the measurement that says whether the optimiser is finding the right buyer, and it is the slowest one to arrive.
- Event delivery
- The share of Shopify orders that reach each platform as a matched server-side event, reconciled against orders rather than taken from a platform’s own health score.
- Feed health
- Rejected, stale and out-of-stock items as a proportion of the catalogue, checked on a schedule, alerting a person rather than a dashboard nobody opens.
Every line above is a definition, not a result. The figures get filled in from your account in week one, before a budget moves, and they live in your reporting whether or not we keep working together.
Who this is not for
The saturation is real, and so is the fact that we are the wrong answer for a good number of the brands reading this page.
If what you need is a media buyer with a studio behind them — a creative strategist, a UGC pipeline, a team shipping dozens of new concepts a month and iterating on hooks every week — hire that. It is a real craft, we do not have it in-house, and we are not going to imply otherwise by putting the word “creative” on a slide. On an account where the tracking is already clean and the feed is already right, the next unit of performance almost certainly comes from creative volume, and a firm built around creative volume will beat us at it.
We are the right call when the measurement layer is the thing that is broken. The symptoms are consistent enough to list. The platforms report a healthy return and the bank balance disagrees. Nobody can say which campaigns produce subscribers who reach a third rebill. The Shopping feed has been rejecting items for a month and it surfaced by accident. Conversion counts stepped down the week a browser changed a default and nobody could explain the drop. The reported ROAS looks fine, and the blended number has been sliding for two quarters.
There is also a floor underneath all of it. If the store is new enough that there is no order history to read subscriber value from, there is nothing to model and we would be inventing the input rather than measuring it — that is a moment to spend on product and organic demand, not on a tracking build. And if the retention side is genuinely broken, acquisition is the wrong thing to buy next: pouring more traffic into a subscription people cancel in month two makes the loss arrive faster rather than smaller. We would send you to subscription retention first, and say so in the audit rather than after the invoice.
What it costs
The build has a published range because it is a fixed scope. Management does not, and the reason is worth reading rather than guessing at.
Revenue Recovery Audit — the tracking and measurement review sits inside it
$1,500–$3,000
Measurement, tracking and feed infrastructure build
$3,000–$10,000
Ongoing campaign management
Priced separately
Ad spend — paid to the platforms, from your own accounts
At cost, to the platform
Where you land inside the build range depends on how many platforms are in play, how much of a feed pipeline already exists and how much history there is to model subscriber value from — not on how much we think you can pay. Management is quoted separately after the audit, because a retainer priced before anyone has seen the account is a guess with a number on it. Ad spend is yours, paid to the platforms from accounts you own, and we do not take a percentage of it.
Where to go next
Questions
Every performance agency offers paid media. Why you?
Our own landscape review puts saturation in this category at very high, and we would rather say that than pretend otherwise. What is not saturated is the layer underneath the ads. Every account in this category is already being run by a model — the platform’s own optimiser — and almost nobody is working on what it gets fed: server-side events that actually arrive, conversion values that describe a subscriber rather than a first order, and a feed that matches the catalogue. That is engineering work, and it is what a Shopify development team is genuinely good at. The second difference is scope — we already build the subscription platform, the retry ladder, the cancel flow and the lifecycle flows that the traffic lands in, so the acquisition side and the retention side are not two agencies pointing at each other.
Didn’t Pointerflow say it doesn’t do paid media?
It did, and for a long time that was the right answer — we did not want to be a generalist agency with a media desk bolted on the side. What changed is the shape of the work rather than the appetite for the category. Enough audits ended on the same finding, which is that the ads were being optimised against numbers that were wrong, and handing that finding to a media agency who could not fix the data layer helped nobody. So we build the measurement layer, and we will run campaigns on top of it. It is a new service line and this page says plainly that we have no results to publish for it yet.
Do you have case studies or ROAS numbers for this?
No. This is a new service line and there is nothing we could publish that would be honest. We have also chosen not to fill the gap with industry benchmarks, because a category ROAS average is an average of self-attributed numbers — each platform reporting on its own campaigns, under its own attribution window and its own view-through rules, frequently claiming the same order as another platform in the same account. The figure we will hold ourselves to is your own blended number, recorded before we change anything and read on the same definition afterwards.
What does a “subscription-aware conversion value” actually mean?
Instead of sending the platform the value of the checkout, we send a value that describes the customer. Where you have enough order history, that is realised value read from your own cohorts — what a subscriber acquired on a given offer has actually paid over time. Where you do not, it is a model, and the model is written down, versioned and shown to you rather than buried in a script somebody wrote once. Either way the optimiser is now being asked to find people who look like your subscribers rather than people who look like your first orders.
Will this fix our attribution problem?
No, and treat anyone who says it will with suspicion. Multi-touch attribution across platforms that each self-report is not a solved problem and we are not going to solve it on your account. What server-side tracking fixes is delivery: more of the conversions that genuinely happened reach the platform, with consistent identifiers and without duplicates, so the optimiser learns from a fuller picture. How much to spend in total stays a blended-number decision, and that belongs to the reporting layer rather than to a pixel.
Does this touch our theme or our checkout?
As little as it possibly can. Shopify runs custom pixels in a sandbox and the old checkout script hooks have been deprecated, which is precisely why the important half of this work belongs server-side. Whatever genuinely has to exist on the storefront, we keep small, keep in version control and document — and we hand you the inventory of it, so the next person to open the theme knows what is there and why.
Which platforms do you work in?
Meta, Google — Search, Shopping and Performance Max — and TikTok are where subscription and repeat-purchase brands at this size are mostly spending, and they are where we build. The measurement work is the same shape in each: a server-side endpoint, a conversion value that means something, and a catalogue feed that does not drift. Where a platform we have not built for before comes up, we say so before quoting rather than after.
Can you build the measurement layer without running our ads?
Yes, and it is a sensible way to start. The infrastructure build is a fixed-scope project with a published range and it stands on its own: your existing media buyer or in-house team gets a truer event stream, subscription-aware values and a feed that stays in sync, and keeps the account. Management is priced separately for exactly that reason.
How long before we can tell whether it worked?
Longer than either of us would like, and we would rather say that than pick a number we cannot stand behind. Two things have to happen in sequence. The platforms have to re-learn against the new conversion values, which means a fresh learning period per campaign. Then the customers acquired under them have to survive enough billing cycles for their real value to become visible in a cohort. That is why the baseline is recorded before launch and why the cohort read is monthly. We will always tell you what we are waiting for; we will not tell you in advance what it is going to say.
Find out what you’re losing.
Before you commit to anything, we tell you exactly what you’re losing and what it costs to stop it. Two weeks. Fixed fee. Credited in full against any build you go ahead with.
- Fee
- $1,500–$3,000, fixed
- Duration
- Two weeks
- Credited
- In full, against any build
- You supply
- Read access + one 45-minute call