Restaurant Advertising Examples: How to Track Each One From Ad to Check
Copy three restaurant advertising examples with the offer, tracking path, cost ledger, and decision rule needed to follow each ad to a check.
Three useful restaurant advertising examples are a local-landmark opening, an experience-first ad with the offer last, and a high-perceived-value offer with a controlled fulfillment cost. Each campaign design below shows how to carry one response into an identified arrival and settled check; none is presented as a historical winner or a promise that the same idea will work for every restaurant.
This is the paid-acquisition part of restaurant marketing: the ad earns attention, but you need a record from response to check before you can say who actually came in.
“The furthest tracking I've seen is reservations from ads. But never final sale.”
Source: A restaurant agency owner
Three complete ad designs you can copy and test
Each example gives the ad one promise, one response path, and one finish line. The source records support the creative or offer recommendation, while your own matured visit and check records decide whether to keep it.
| Campaign design | Copyable ad brief | Trackable response | What counts as completion | Prewritten decision |
|---|---|---|---|---|
| **Open with a nearby landmark** | Start with `[street, block, or landmark]`, reveal `[restaurant and dish]`, state `[one bounded reason to visit]`, then ask for `[one action]`. A November 5, 2025 creative note recommends opening on the actual area familiar to people who pass it. For a fuller shot order, use the [location-aware hook](/blog/the-location-aware-hook). | A campaign-specific claim, form, reply, or reservation that retains the ad ID and permitted guest identifier | A matured eligible action record ends in a verified in-person visit; that visit links to its own paid, non-voided settled check; matched sales subtract recorded refunds | Repair the opening if delivery is healthy but eligible responses are weak; repair the arrival path if responses mature without visits |
| **Lead with the experience and put the offer last** | Show `[dish, room, or hospitality moment]`, make `[reason to choose you]` concrete, introduce `[bounded offer]` near the end, then ask for `[one action]`. A December 30, 2025 fine-dining discussion recommends putting the experience and product before the offer. The [offer-last approach](/blog/the-offer-goes-last) goes deeper on that order. | One tagged response path used only by this ad version | A matured eligible action record ends in a verified in-person visit; that visit links to its own paid, non-voided settled check; matched sales subtract recorded refunds | Keep the order only when matured visit and check economics clear the limit written before launch; otherwise repair the exact weak step |
| **Choose high perceived value with controlled fulfillment cost** | Offer `[specific add-on or experience]` with `[eligibility, dates, and cap]`; show why it is worth the trip without giving away the main check. A December 10, 2025 strategy session chose hot chocolate rather than BOGO cheesecake because the first option paired higher perceived value with lower food cost. | One campaign-specific claim or booking record, with shared and unattributable responses kept outside the rate | A matured eligible action record ends in a verified in-person visit; that visit links to its own paid, non-voided settled check; matched sales subtract recorded refunds | Continue only when completed-visit economics remain acceptable after fulfillment and campaign costs; do not infer incrementality from the match alone |
Turn any one of these into a signed brief before production: target daypart, nearby guest, one promise, first shot, food or experience proof, one action, eligible dates, capacity cap, cost limit, and the exact result that will decide whether you run it again.
Use one measurement card for all three designs
Make three copies of this card—one for each design. A claim record and a reservation record are different units, so choose one action-record unit inside each card. Action-to-visit rates diagnose that design only. Compare designs on the common cost per verified completed-visit event and contribution fields.
| Field | Complete this for each design |
|---|---|
| Campaign and dates | `[design, location, daypart, start date, end date]` |
| Fixed windows | `[arrival window]` and `[check-reconciliation window]`, chosen before launch |
| Eligible action unit | `[claim record or reservation record]` carrying this campaign's ID and a permitted guest identifier |
| Mature visit denominator | Eligible action records whose full arrival window elapsed and whose visit outcome was reconciled and known |
| Mature action-to-visit numerator | The subset of that exact denominator whose action record ended in verified in-person completion |
| Verified completed-visit events | Count the eligible in-person completion events linked to those mature successful action records; keep people, parties, covers, and checks separate |
| Check-match denominator | Eligible verified completed-visit events whose full reconciliation window elapsed and whose match outcome was reconciled and known as matched or unmatched |
| Matched-check numerator | The subset of that exact denominator linked to its own paid, non-voided settled check |
| Matched net settled sales | Dollars from those matched checks, less recorded refunds; keep refund dollars separate from check count |
| Full campaign cost | Every campaign charge from the non-overlapping ledger below, using one written allocation basis for shared charges |
| Cost per verified completed-visit event | Full campaign cost divided by those verified completed-visit events after the arrival window matures |
| Matched contribution after campaign investment | Matched net settled sales minus ordinary variable costs of serving the matched checks, excluding offer costs already in full campaign cost, minus full campaign cost |
| Decision | `[continue, repair, or stop]` against the limit chosen before launch |
Keep open, immature, ineligible, and unresolved records as separate counts below every card. A success does not enter either numerator before the rest of its eligible cohort has received the full window.
1. Write the restaurant result before you write the ad
Choose one result that matters to the restaurant and one window in which it can happen. If you cannot name the outcome without using the word “engagement,” the ad is not ready.
Write down:
- the location, daypart, and dates;
- the number of additional covers the kitchen and floor can serve;
- the guest the offer is for;
- the single action: claim, reservation, or another identifiable response;
- the arrival window and the fixed check-reconciliation window;
- the full spending cap;
- the minimum acceptable contribution; and
- the continue, repair, or stop date.
Keep platform-reported reach, impressions, clicks, and video views as delivery clues. They can explain why responses were weak, but they are not responses, visits, or checks.
2. Give the guest one reason to act
Build one ad around one promise and one next step. Multiple offers and buttons make a weak result impossible to diagnose because you no longer know which promise or path failed.
For a location-aware ad, open on the familiar street or landmark, reveal the restaurant, show the dish or experience, state the eligible window, then ask for the chosen action. For an experience-first ad, let the food, room, and hospitality earn interest before the offer appears. If the promise depends on a free item or discount, record its actual incremental food, packaging, paid-labor, and fulfillment cost before launch.
Use one campaign identity from the ad through the response page. A generic homepage, profile link, or directions button can create activity without preserving the person or campaign needed for a later match.
3. Prove the response-to-check path before spending
An advertising result becomes a verified restaurant visit only when the record confirms in-person arrival. A claim, reservation, directions tap, pickup, delivery order, party, cover, or check is not a substitute for that arrival record.
Use this chain:
- Ad delivery: retain the platform's campaign, spend, reach, impression, click, and video-view fields under their original labels.
- Response: save the campaign-specific claim or reservation record and the permitted guest identifier used for matching.
- Arrival: close the eligible response as completed, canceled, rescheduled, no-show, open, ineligible, or unresolved. Record covers separately.
- Check: connect the verified completed-visit event to its own paid, non-voided settled POS check. Leave the check unmatched when the identifier is missing rather than guessing.
- Cleanup: use one sales definition for discounts, taxes, tips, voids, and refunds throughout the report.
Test the assembled path before launch. Submit a real test response, confirm the host can find it, record an in-person completion, settle a paid non-voided check, and verify the campaign and amount appear in the intended report. Then void or refund the transaction and confirm that the reversed amount is excluded. Fix the first broken join before buying traffic.
4. Let every rate finish its window before you read it
Calculate a conversion rate only from eligible records that received the full opportunity window and now have a reconciled known outcome. Early successes wait with the rest of their cohort; open, immature, ineligible, and unresolved records stay outside the rate and appear as separate counts.
Action-to-visit rate = the successful subset of eligible action records that ended in verified in-person completion ÷ eligible action records whose full arrival window elapsed and whose final visit outcome was reconciled and known.
Choose claims or reservations as the record unit for that rate and keep it consistent. Do not divide completed visits by people in one report and reservation records in the next.
Check-match coverage = the successful subset of eligible verified completed-visit events linked to a paid, non-voided settled check ÷ the same eligible completed-visit events whose full fixed check-reconciliation window elapsed and whose match outcome was reconciled and known as matched or unmatched.
Hold early matches until the cohort matures. Report open, immature, ineligible, and unresolved match records separately. A low match rate is a tracking problem; it does not erase a verified arrival or authorize a guessed check.
Pick the window before launch. Day 14 can be a decision point, but it is not a universal promise that every restaurant, offer, or booking cycle matures on that schedule.
5. Keep the sales result and the cost ledger separate
Directly matched sales show a recorded campaign-to-check connection, not proof that the ad caused the sale. Define matched net settled sales once as paid, non-voided settled sales less recorded refunds, with taxes and tips handled consistently.
Keep one full campaign cost ledger:
- media;
- outside creative and production invoices;
- influencer compensation and commercial-use rights when applicable;
- the offer's actual incremental nonlabor cost: food or beverage ingredients, packaging, processing, ordering, delivery, and other fulfillment charges;
- incremental paid labor caused by the campaign, including offer preparation, service, fulfillment, creative, or management only when that labor is not already in an invoice above; and
- allocated software, platform, agency, and management charges not already counted in another line.
Assign every charge once. If a vendor bill includes production or software, do not list the included component again. Allocate a shared monthly charge to the campaign window using one written basis whose campaign shares reconcile to the full bill. Do not count an offer at both menu face value and actual incremental cost.
Keep the ordinary variable cost of serving the matched checks separate from campaign investment. It includes the food, beverage, packaging, processing, fulfillment, and incremental service labor for the purchased check items, but excludes the offer costs already recorded in the campaign ledger. If your check-cost report already includes those offer costs, remove the separate offer line instead of subtracting it twice.
Matched contribution after campaign investment = matched net settled sales − ordinary variable cost of serving matched checks, excluding offer costs already in campaign cost − full campaign cost.
Report these levels separately:
- Platform-reported activity: delivery and the platform's own attributed result.
- Directly matched result: identified response, verified visit, and matched settled check.
- Observed lift: the difference against the same location, weekday, hours, capacity, and season, with events and operating changes noted.
- Defensible incremental estimate: the result of a comparison designed to estimate what would have happened without the ad.
- Contribution or profit: the appropriate sales result after every cost required by the chosen accounting definition.
Matched sales do not become incremental because the path is complete. Observed lift does not become causal because the before-and-after chart is clean. Revenue does not become profit because ROAS is above one.
6. Continue, repair, or stop at the first honest result
Make the decision from the deepest result the records support, not the largest number on the page. A high view count with no response calls for a creative or offer repair; responses with no arrivals call for an eligibility, reminder, booking, or service check; verified visits with poor matching call for a POS-process repair.
- Continue when the decision window is mature, the response-to-check path works, the completed-visit economics clear the minimum acceptable contribution chosen in step 1, and the restaurant can serve more guests.
- Repair when the first broken step is visible and can be retested without exceeding the cash cap.
- Stop when the cap or decision date arrives with weak economics, harmful service pressure, or records too incomplete to support another spend decision.
Retain the brief, ad version, offer rules, spend export, response records, visit outcomes, check reconciliation, cost ledger, comparison notes, and signed decision. The next ad should begin with what this test established, not with a screenshot of its best-looking number.
Feast becomes useful after the manual path is clear
The full Feast workflow keeps the jobs distinct: set the restaurant goal, test an acquisition strategy, run the ads, report the result, and continue or change the test. When influencers are part of the plan, Remy handles their recruitment and content coordination while you keep approval decisions.
Book a demo of Feast to discuss running a restaurant advertising program built around this test-and-report loop.