Problems & solutions · Custom Software

Retail Media Network Problems: The 7 That Cost Real Money, and How to Avoid Them

Retail Media Network Platform software overview illustration showing common problems and fixes.
The short answer

The most expensive failure in retail media is not a bug, it is the moment a supplier's own sell-through report contradicts the click chart you sent them. That call ends with a make-good, and then with a quieter renewal conversation. A single mid-size supplier walking away from a $40,000 seasonal commitment costs more than the pacing work that would have prevented it, and the damage compounds because suppliers talk to each other about which retailers can prove a sale and which cannot. Everything else on this page is a variation of that one problem: money changed hands, and nobody can evidence what it bought.

Why does the sponsored slot get scoped as an ad server bolted onto the site?

The request almost always arrives from the commercial team, and the commercial team's reference point is display advertising. So the first design that gets drawn is an ad call, fired from the browser after the page has rendered, filling a fixed rectangle with whichever campaign has budget left. It is a reasonable design for a banner on a publisher site. It is the wrong design for a shop.

The reason is that a sponsored product earns you money twice. Once from the supplier who paid for the placement, and once from the basket if the shopper actually buys it. It only earns the second time when the product is relevant, and relevance lives in your catalogue, your search index, your availability data and your margin structure. None of that is visible to an ad call that runs after the page is built. The visible symptom is a sponsored unit promoting an item that is out of stock at the store the shopper selected, which means you have taken the supplier's money while damaging your own conversion inside a single request.

The fix is structural and it belongs in the scope document, not in a later sprint. One ranking call returns the blended page. Sponsored and organic candidates score in the same pass, where a bid is one input to a score rather than a price, multiplied by a predicted click probability that uses the same features your organic ranker already has. Availability is checked at the fulfilment node serving this specific shopper, not at site level. And the latency budget is written down before anyone codes, because a sponsored decision that adds eighty milliseconds to search can cost more in lost conversion than the media revenue it generates.

What goes wrong with loyalty identity once you start attributing sales?

Attribution looks like an advertising problem and is actually an identity problem. The join is simple to describe: an exposure event carries a household or loyalty identifier and a timestamp, a transaction carries the same identifier and a basket, and you define a window. It becomes hard the moment you ask what share of your traffic and your transactions actually carry a usable identifier on both sides.

For most grocers and specialty chains the answer is uncomfortable, and it differs sharply between online and in store. Worse, the unmatched traffic tends to get dropped silently, which produces a number that looks clean and understates your value, because for most grocers the majority of the sale still happens in a store.

Two concrete fixes. First, measure your match rate before you scope the attribution work, and treat it as an input to the estimate rather than a discovery. Second, keep raw exposure events in your own store from day one, carrying the identifier, the surface and the timestamp. If your exposure history lives inside a vendor platform, you cannot re-attribute it later under a different window or a different methodology, which means the day you change platforms your measurement baseline resets to zero. Report unmatched traffic as its own line rather than folding it in, and define the attribution window per category, because a shopper exposed to a soft drink converts on a different clock than one exposed to a nappy multipack.

Why do search ranking, promotions and stock integrations break after launch?

Three systems already touch the results page before retail media arrives: the ranker, the promotions engine and the availability service. Each is owned by a different team, each changes on its own schedule, and each is edited by merchandising people who are not thinking about advertising when they change it. A sponsored layer that sits outside that pipeline will contradict all three within weeks of launch.

The failure is specific to retail. A category manager adds a multibuy on Tuesday. The promotions engine renders a banner. The sponsored slot underneath, decided by a separate system that never saw the promotion, shows a competing brand at full price. Nobody has done anything wrong and the page is now incoherent. The same thing happens with own-brand protection and with category exclusivity that your trading team sold in a meeting and recorded in a signed joint business plan, which is not a data source any advertising platform can read.

The fix is that business rules apply once, in one pass, on the same candidate set. Slot policy becomes configuration rather than code: how many slots, where they sit, reserve price per category, whether a competitor may bid on your own-label terms. Those decisions change quarterly and each one should be a settings change, not a support ticket. Add contract tests on the ranking response so a merchandising rule change that breaks sponsored eligibility fails in your pipeline rather than on a live category page, and put store-level stock in the candidate filter rather than in a post-render check.

What happens when supplier billing and trading terms are not covered?

This is the gap that kills more retail media programmes than any piece of advertising technology. Media spend from a supplier is not a card transaction. It is negotiated against existing trading terms, frequently netted against other supplier income, invoiced by your accounts receivable team on agreed payment days, and sometimes funded from a promotional allowance rather than a media budget at all.

A platform that carries its own billing produces a second invoice stream, and that stream will not net against anything. Your finance team then reconciles it by hand every month, and disputes take weeks because the two systems disagree about what was delivered. The cost is real headcount, and it never appears in the original business case.

The fix is that campaigns carry the supplier's existing vendor number from the moment they are created, spend accrues to a media revenue account, and the invoice is generated through the same accounts receivable process as every other supplier charge, with the credit limit and payment terms already on file. Then design for two buying paths rather than one. Expect roughly your top twenty suppliers to keep buying through your commercial team on an insertion order regardless of what you build, and build self service for the long tail underneath, with an approval workflow so a trader can gate creative and keyword bids in sensitive categories.

Should you build custom or configure what you already own?

If your annual media revenue is under roughly $5M, or you have fewer than about forty active supplier advertisers, do not build. Run CitrusAd or Topsort, take the revenue share, and spend the money on traffic instead. Both will get you live faster than any build and at that scale the share is cheaper than an engineering team. If measurement is your only genuine gap and your ranking is conventional, Koddi is strong on the reporting and measurement side and worth evaluating before you commission anything.

Build when two or more of these are true. Suppliers are challenging your attribution numbers and you cannot answer with your own data. Your commercial commitments require ranking rules a vendor cannot express. Your in-store sales are the majority of the business and online-only measurement is costing you rate. Your finance team is reconciling a second billing system by hand. Or the revenue share has quietly grown larger than the fully loaded cost of a team, which arrives sooner than people expect because a share scales with your success and an engineering cost does not.

How do hidden costs get into the quote?

A first release covering the in-search auction, pacing, creative rendering in your templates and a supplier reporting view runs $90,000 to $180,000 and ships in 14 to 20 weeks in our delivery experience. A full platform with self service, offsite extension, clean room reporting, incrementality holdouts and billing integration runs $250,000 to $650,000 phased over 9 to 15 months. Quotes go wrong when they price the auction and ignore everything around it.

The costs that arrive late are these. Surface count, because search results, category pages, product detail, app home and email each need their own slot logic and their own pacing history, so a quote for one surface is not a quote for five. Store-level availability, which turns a single stock check into a per-node one. Identity resolution quality, which can add an entire workstream before measurement starts. Pacing forecasts, which need hourly impression history per surface and per category rather than a flat daily cap, and which are the reason make-goods happen when they are skipped. Clean room controls with a minimum cohort size. And accounts receivable integration, which is a different problem from charging a card and is usually discovered in month four by a team that has never touched a ledger.

What separates a retail media build that works from one that fails here?

Phasing, mostly. The builds that work launch on search results only, with a fixed three-slot layout, an auction, pacing and supplier reporting, and nothing else. That captures most of the available revenue and teaches you your own click and conversion economics before you commit to five surfaces. The ones that fail try to launch everything at once and reach production with no operator who understands the numbers.

When you interview a developer, ask them to describe the request path for a search page with sponsored slots, including where the auction runs and what it adds in milliseconds. Ask how attribution identity works across online and in store, and what happens to a shopper with no loyalty identifier; a credible answer includes a stated coverage rate and honesty that unmatched traffic is reported separately. Ask what they have integrated on the billing side by name. Then settle ownership in writing before kickoff: the repository, the models and the data pipelines. At Digital Heroes the client owns the code from the first commit, and your transaction log and attribution methodology are the durable assets here, so hedging on that question should end the conversation.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. The average developer spends more than 17 hours a week dealing with maintenance issues such as debugging and refactoring, and about four of those hours on 'bad code' - waste that equates to nearly $85 billion annually worldwide in opportunity cost. Source: Stripe (2018) →
  2. The federal government spends about 80% of its IT budget on operations and maintenance of existing systems rather than on development or modernization, with many critical systems being decades old. Source: U.S. Government Accountability Office (GAO) (2025) →
  3. A study (led by Prof. Pak-Lok Poon, published in Frontiers of Computer Science, 2024) reviewing decades of spreadsheet-quality research found that about 94% of spreadsheets used in business decision-making contain errors, illustrating the hidden risk of manual spreadsheet workarounds that custom software is built to replace. Source: Central Queensland University / phys.org (Prof. Pak-Lok Poon et al.) (2024) →
  4. Mordor Intelligence sizes the field service management market at USD 6.26 billion in 2026, forecasting USD 9.87 billion by 2031 at a 9.54% CAGR, confirming sustained double-digit-adjacent demand for FSM software. Source: Mordor Intelligence (2026) →
Ananya I. · Director of Shopify Practice · Delhi

Ananya leads the Shopify practice at Digital Heroes, covering store builds, replatforms, app development and the merchant side of running a product catalog. Her posts help retailers weigh theme level work against a full custom build, and understand what each choice commits them to.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Why do suppliers dispute our retail media attribution numbers?
Usually because the number they are shown is a click chart from an advertising tool and the number they compare it against is their own sell-through report, which is drawn from your transactions. The two will never agree if the exposure and the basket were never joined on a shared identifier. Fixing it means running the join in your own environment on loyalty or household identity, reporting in-store redemption alongside online conversion, and stating your unmatched coverage rather than quietly dropping it.
What causes make-goods on sponsored campaigns?
Pacing, in almost every case. A flat daily cap front-loads into your highest traffic hours and exhausts before the promotion week the supplier actually bought, or it underspends and the campaign closes short of delivery. Vendor pacing models do not know your Thursday grocery peak, your payday spike or your app versus web split. Pacing built from your own hourly impression history per surface and category, with a curve the trader can shape, removes most credits.
Why does our sponsored slot contradict the promotion banner above it?
Because two systems are deciding what appears on the same page and neither can see the other. The promotions engine renders a mechanic a category manager set on Tuesday, and the sponsored decision, made outside the ranking pipeline, has no idea it exists. The fix is a single ranking pass where sponsored and organic candidates score together and business rules apply once, plus contract tests so a merchandising change that breaks sponsored eligibility fails in your build rather than on a live page.
How much latency can a retail media auction safely add to search?
Less than most teams assume, and the honest answer is that it should be a written budget rather than a hope. A sponsored decision adding eighty milliseconds to a search response can cost more in lost conversion than the media revenue it produces, which turns the programme into a net loss that nobody measures. Ask any developer for their target, how they will measure it in production and what they do when a category with a very large candidate set blows through it.
Can we switch retail media platforms without losing our measurement history?
Only if your raw exposure events are stored in your own environment. Vendor platforms will export reports, but reports are already aggregated under one attribution window and one methodology, so you cannot re-attribute them later under different rules. Keep exposure events with identifier, surface and timestamp from day one, even while you are still on a vendor, and your measurement baseline survives the switch instead of resetting to zero.
Why does billing break retail media programmes more often than the ad technology?
Because supplier media spend is not a card payment. It is negotiated against trading terms, often netted against other supplier income, invoiced on agreed payment days and sometimes funded from a promotional allowance. A platform with its own billing creates a second invoice stream that will not net, so finance reconciles by hand every month and disputes take weeks. Campaigns should carry the supplier's existing vendor number and invoice through your normal accounts receivable process.
Is CitrusAd or Topsort enough for a mid-size grocer?
Very often, yes, and we would say so before quoting. Below roughly $5M in annual media revenue or about forty active advertisers, either will get you live faster than a build and the revenue share is cheaper than a team. They strain when your ranking must carry retailer-specific commitments such as own-brand protection or category exclusivity agreed in a joint business plan, or when store-level stock has to gate a slot. Model the crossover before your next renewal.
What should we launch first to avoid the usual retail media failures?
Search results only, a fixed three-slot layout, auction plus pacing plus supplier reporting. That covers most of the available revenue, teaches you your own click and conversion economics, and gives traders something real to sell against. Adding category pages, product detail and app surfaces later is straightforward once you know how each performs, because each one needs its own slot logic and its own pacing history anyway.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
What does it cost to keep custom software running after launch?
Budget 15-20% of the original build cost per year, which on a $100,000 system means $15,000 to $20,000 for security patches, dependency updates, bug fixes, and small improvements as real usage reveals what the spec missed. Cloud hosting for a typical business application adds $50 to $300 a month on top. Skipping maintenance does not save the money; in Digital Heroes rescue work, unmaintained systems typically need a far more expensive rebuild within about three years.
Can I build my product on a no-code tool like Bubble instead of hiring developers?
For testing whether anyone wants the product, yes, and Bubble's paid plans start at $29 a month, which is the cheapest validation you will ever buy. The ceiling arrives with complex data relationships, heavy integrations, performance at a few thousand users, and the fact that you cannot export a Bubble app to servers you control. A path many Digital Heroes clients take: prove demand on no-code, then rebuild custom once revenue justifies it, treating the no-code version as a paid prototype rather than a foundation.
Is it cheaper to customize Salesforce than to build a custom CRM from scratch?
If you use less than a third of what Salesforce does, a custom CRM is often cheaper by year three. Salesforce Enterprise lists at $165 per user per month, so 25 seats cost about $49,500 a year before admin and consultant fees, while a focused custom CRM runs $60,000 to $100,000 once plus 15 to 20% a year in maintenance. If you genuinely need Salesforce's ecosystem, reporting, and app marketplace, customizing it beats rebuilding it; the mistake is paying enterprise prices to use it as a glorified contact list.
Should I hire a freelancer or an agency for my software project?
A skilled freelancer is the right call for a single-discipline scope under roughly $15,000, like a website, a plugin, or one integration. Above that, projects need design, backend, testing, and project management at once, and a solo builder becomes the single point of failure: if they get sick or take a bigger client, your project simply stops. Agencies bill 20-40% more per hour but carry continuity, code review, and someone to escalate to, which is what you are actually buying.
What should I prepare before contacting a software development agency?
A one-page brief beats a 40-page requirements document: the business problem in plain words, who will use the system, the 5 to 10 workflows it must handle, the tools it must connect to, and your budget range and deadline driver. You do not need wireframes, a specification, or technical vocabulary; producing those is the agency's job during discovery. Stating a budget range up front is the single best move, because it gets you honest scoping instead of a quote engineered to win the meeting.
If an agency builds my software, who actually owns the code?
You should own everything, assigned in writing: the contract transfers full IP to you on final payment, the code lives in your GitHub organization, and hosting runs in cloud accounts you control. The red flag is a proposal that mentions the agency's proprietary platform or framework, which usually means you are renting, not buying. Digital Heroes structures every build this way precisely so a client can fire us and lose nothing but the relationship.
What should I have ready before I contact a development agency?
Three things, none of them technical: a one-page description of the problem in your own words, a list of the tools and spreadsheets the new system must replace or connect to, and a must-have versus nice-to-have split of features. Add a budget range, even a wide one, because it changes the conversation from fantasy to engineering. You do not need a formal specification; producing that is what a discovery phase is for.
What is a discovery phase, and is it worth paying for separately?
Pay for it, and treat the output as yours. A discovery phase runs two to three weeks, typically 5 to 10% of the eventual build budget, and produces a written scope, wireframes, and a fixed quote you can take to any vendor, including a competitor of the agency that wrote it. Skipping it is how projects end up quoted from a two-paragraph email and delivered at twice the price.
How do I make sure custom software is secure and compliant with rules like HIPAA?
Start with the baseline every business system should have: encryption in transit and at rest, role-based access control, and audit logs. If HIPAA applies, the hosting provider must sign a Business Associate Agreement, which AWS, Azure, and Google Cloud all offer, and access controls have to be designed in from day one, not bolted on. SOC 2 certifies a company's operating practices, not a codebase, so ask vendors what they have shipped in your regulated domain rather than which logos are on their website.
Should I ask for a fixed price or pay the agency hourly?
Fixed price for the first version, hourly or retainer for what comes after launch. A fixed-scope, fixed-price V1 puts the estimation risk on the agency, which is exactly where you want it while trust is unproven; hourly billing on an unscoped greenfield build is a blank check. After launch, flip it, because maintenance and small features arrive unpredictably and fixed-pricing every ticket wastes everyone's time.
How small can the first version of my software be and still be worth building?
One workflow, end to end, for one type of user: the single process that currently burns the most hours or loses the most money. In Digital Heroes delivery experience, first versions scoped to 6 to 10 weeks of build time ship, get used, and generate the feedback that makes version two obviously right, while 9-month first versions routinely launch with features nobody touches. Everything you cut from v1 gets cheaper to build later, because real usage reorders the roadmap for you.
Who can build a custom software system?

Digital Heroes builds custom software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other software companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?