Why your promotion is not showing to customers on delivery apps

Restaurant chains lose promotions in three different ways on delivery apps, and only one of them is a mistake. On Jahez the platform builds the offer and the restaurant merely activates it. On Deliveroo a site that misses one monthly performance threshold loses Offers and Adverts for a full calendar month. On Talabat the promotion is a background job that drops branches silently and still reports success. Snoonu will not start a campaign sooner than two hours from now, and reviews it before it runs.

Who actually creates the promotion on each delivery app?

Not always the restaurant, which is the assumption most head offices bring to this problem. Jahez states the three modes in its own portal: “Platform-managed: The offer is fully created, managed, and activated by the platform. Partner Self-Service: The offer is created by the platform and activated by partners through the partner portal. System-managed: The offer is managed automatically through system rules or integrations.” Its owner app sells the same idea in a verb, inviting partners to “Enroll in delivery offers and promotional campaigns”.

Platform Who builds the offer Who pays for the discount What sits between switching it on and a customer seeing it
Deliveroo the restaurant, in Marketer not published a monthly access check on operational metrics
Careem Food the restaurant, ads on a separate track ad budget “will be deducted from your merchant payout” 5 minutes for a discount, a 4.0 rating floor for ads
Jahez usually Jahez, activated by the partner a required “Restaurant Contribution” field “Jahez Pending” review, plus separate city and country dates
Snoonu the restaurant “the merchant alone is responsible for these costs” “Under Review”, and a minimum two hour lead
noon Food opt-in deals built by noon, or your own consent needed only where the merchant part funds “Each Offer will be subject to Noon Food’s approval”
Talabat the restaurant, through an asynchronous job not published a job that reports success even when items were invalid
HungerStation the restaurant, through the Promotions API not published sync of “up to 50 minutes”
Glovo the restaurant, in Promotool published in the partner terms a Rewards level gate and a cooldown after a price rise
Bolt Food the restaurant not published an eligibility check, and a ban after a price increase
DoorDash the restaurant, plus DoorDash Boosted split, “DoorDash funds the additional boosted amount” no published approval step
Uber Eats the restaurant, in Uber Eats Manager an Offer Redemption Fee per discounted order a cap of five concurrent offers
Wolt the restaurant, but only two named roles may mixed, and the API exposes only merchant funded ones role permission

Funding has its own page, who pays for a delivery app promotion in the Gulf. What matters here is the first column: on three of these platforms a chain is joining somebody else’s campaign, so the thing to check is enrolment rather than configuration.

Our promotion is not showing on some branches but shows on others. Why only some?

Split behaviour across branches is the most common shape of this problem, and it usually means the campaign was never applied to those branches rather than that it broke on them. Platforms attach a promotion to an explicit list of locations, and a branch missing from that list is not failing, it was never included. Several platforms also drop locations silently when a validation check fails on them, so the list you submitted and the list that ran are not necessarily the same list.

Which delivery apps can refuse to let you run a promotion at all?

Four, and none of them raises an error that reads like a refusal. Deliveroo is the clearest. Access to Marketer “is now based on your business’ operational performance”, assessed “three days before the first day of each month”, and a business that fails one criterion “won’t be able to access Marketer (Adverts & Offers) for a full month”. The published criteria are “Rejections must be fewer than 8%”, “Star rating must be 3.8 or more” and “Orders prepared late must be fewer than 22%”, with a food hygiene rating added in the United Kingdom. Source: help.deliveroo.com.

Two details make that expensive. The assessment is per site, so one branch keeps its offers while another loses them with no error shown in Hub. And the lockout is a calendar month rather than a rolling window, so a bad fortnight in mid March costs all of April.

Glovo blocks the tool with two messages. On performance it says “Reach the next ‘Rewards’ level to unblock Promotions”, explaining “Currently your level is ‘Need Improvement'”. On pricing it imposes a cooldown after a recent price rise: “You may not create a discount during this period.” Bolt Food does both, blocking creation on low merchant metrics and again for a set period after a significant price increase. Careem ties it to the rating: “Only outlets rated 4.0 and above can run ads.”

Why does a promotion reach some branches and not others?

Because on most of these platforms an offer is a list of branches rather than a property of the brand, and the list is built by hand or by a job that can fail halfway. Talabat is the sharpest case. Its promotion endpoint takes a vendors array, and the resulting job returns invalid_vendors, missing_skus and invalid_discounted_skus. Talabat then documents the part that costs the most: for an update to an existing promotion, “once processed, the job status will always be [successful] even if all items from the request are not valid”. A green job is not a live promotion.

HungerStation publishes a structural limit with the same effect: “It is not possible to create promotions for different skus and different vendors in a single request”. A chain whose branches carry different menus needs several calls, and a branch missed by one of them is absent from the campaign with nothing recorded anywhere. Jahez tracks the same problem openly, with a field labelled “Adding restaurants to the offer status” beside two counters, “Total Partners” and “Active Partners”. The gap between them is the failure, displayed as a number.

noon Food produces it by hand rather than mechanically. Both kinds of noon discount attach to outlets by explicit selection, “Select the outlets you want to apply the discount to”, so an outlet opened after the campaign was built is not in it.

How long between switching a promotion on and a customer seeing it?

The spread runs from immediate to nearly an hour, and two platforms add a mandatory wait before the start. Careem is explicit and fast: “You are activating the campaign. The changes will reflect to users within 5 minutes.” HungerStation is explicit and slow, stating that “The promotion creation can take maximum up to 50 minutes if the request reaches the maximum capacity”. Snoonu refuses a near term start outright with “Time must be at least 2 hours in future”, on top of a review step whose statuses include “Under Review” and “Rejected”.

Fifty minutes matters more than it looks in Saudi Arabia, where our July 2026 panel recorded a mean incident of 12 hours 24 minutes and 81 percent of unexpected interruptions beginning between 22:00 and 02:00. A campaign activated late in the evening can finish syncing into a storefront that is no longer visible, and the check next morning reports a promotion that does not show for a reason that has nothing to do with the promotion.

What takes a live promotion off the shelf without anyone touching it?

Keeta is the only platform that publishes a dedicated signal for this. Its “Promotion Offline Notification” exists “to notify the third-party system when an existing promotion is taken offline”, and names the causes: “Product price changes, product removals, or promotion conflicts and overrides may cause an existing promotion to be taken offline.” Alongside it sits the rule that produces most conflicts, that “Only one promotion can be active for the same SKU at any given time.”

HungerStation resolves the same conflict by a different rule, and it is not the one an operator would guess: “The promotion with the latest start date will override previous ones.” The newest campaign wins, not the deepest discount. Snoonu breaks the whole offer on one bad component, warning that “Items with slashed eye are inactive and because of them the bundle will not appear on the app”. Bolt Food adds the only case in this set where nothing is wrong at all, disclosing that “For some campaigns, a small group of users might not see this promotion, as part of campaign testing.”

What actually confirms a promotion is running?

Not the campaign screen, on the evidence above. Talabat’s job reports success while dropping branches, HungerStation states that “Currently, there is no item-level error visibility when using Partner API/Promotions”, and Wolt’s order data exposes only merchant funded campaigns, so an offer can be live and legitimately absent from a chain’s own records. Because the branch list, the sync clock and the conflict rules each fail without raising anything, the only confirmation that survives a conversation with an account manager is the offer seen on the storefront, at a named branch, at a named time, which is what Kitchain (kitchain.co) records.

The step by step version of that check, platform by platform, is at how to check whether your promotions are actually live.

Start Monitoring



    No credit card. No integrations.
    We'll configure your first location and confirm within 24h.
    Request a Demo

    Book a personalized walkthrough of Kitchain Products.



      We'll get back to you within 24 hours.