Skip to main content
Meta · RestaurantsMeta × Restaurants

Meta Ads conversion tracking for restaurants

A restaurant's conversions are scattered across systems it mostly doesn't own: reservations through a booking platform, delivery orders through a marketplace, and a large share of bookings still arriving by phone. What Meta Ads adds on top of that is a mechanical requirement: fbclid and _fbc have to reach the record that holds the money, because Meta can only credit a conversion it can tie back to a click it recognizes. This page covers both halves — what a conversion is in restaurants, and what Meta specifically needs to accept it.

Free30 minutesNo obligation

Specific to Meta × Restaurants

Meta for restaurants: Schedule for bookings, Purchase for orders

On Meta, a restaurant should send Schedule for a reservation honored and Purchase for an online order, both through the Conversions API from the reservation and ordering systems, matched on fbc, fbp and hashed email or phone. Use the booking or order reference as event_id. Marketplace orders get no event at all.

Meta's job for a restaurant is mostly local awareness and repeat visits, and its click-to-booking path is short: someone sees a reel of the dining room on Thursday and books for Saturday. That fits the 7-day click window well, but the 1-day view window will also credit diners who were already coming. Compare Meta's Schedule count against covers seated from the same ZIP codes before deciding the channel is working.

The common break is Meta's in-app browser. A diner taps an ad inside Instagram, the reservation widget loads on the platform's own domain, and fbclid never reaches the booking. Capture fbclid on your landing page, pass it into the widget as a parameter where supported, and write the reservation's email and phone to your server so CAPI can match on hashed user data when the click ID is lost.

Send the booking as Schedule at the moment it is made only if you also send the seated outcome; otherwise Meta optimizes for no-shows. For online ordering, send Purchase from your own ordering system with the order total as value and the order number as event_id. If drinks feature in creative, Meta's alcohol policy requires age and location targeting that meets local law.

Meta · Restaurants · what breaks

Why Meta under-reports for restaurants

  1. 01

    Reservations on a third-party platform

    Off-domain, unattributed.

  2. 02

    Delivery marketplace orders invisible

    A large revenue channel with no ad attribution.

  3. 03

    Phone bookings untracked

    Still a major channel for most restaurants.

  4. 04

    Fbclid and _fbc never reaches the record

    fbclid arrives on the landing URL and is normally written into the _fbc cookie. If it isn't captured on landing, _fbc never exists — and _fbc is the strongest click signal Meta has, so its absence caps your match quality regardless of what else you send. Forward _fbp too, from the browser rather than regenerating it server-side.

Meta · Restaurants · the fix

What working looks like — Meta · Restaurants

  • Each booking path measured separately

    Web, platform, phone.

  • Cover value rather than booking count

    A table of two and a table of ten differ.

  • Calls attributed to campaigns

    The channel most restaurants ignore.

Meta · Restaurants · architecture

How Meta and restaurants actually connect

  1. 1

    The conversion in restaurants

    Reservation made, reservation honoured, order placed, order value. No-show rates in hospitality make the second stage matter as much as the first.

  2. 2

    Meta Ads needs a click to match

    event_name from the standard set with exact casing, event_time in seconds, a shared event_id, an action_source, and hashed user_data that was normalized before hashing. Purchase additionally requires value and currency.

  3. 3

    The identifier: fbclid and _fbc

    fbclid arrives on the landing URL and is normally written into the _fbc cookie. If it isn't captured on landing, _fbc never exists — and _fbc is the strongest click signal Meta has, so its absence caps your match quality regardless of what else you send. Forward _fbp too, from the browser rather than regenerating it server-side.

  4. 4

    Where it gets sent from

    your reservation and ordering systems' records.

  5. 5

    Deduplication and window

    This is the mechanism that decides whether adding CAPI helps or doubles your conversions. Both the Pixel and the server event must carry the same event_id — the order or booking reference works best, because both sides can produce it without coordinating. A case difference in the event name alone produces two events even with a matching ID. Read the Deduplicated indicator in Events Manager over a full week, not one session. Meta's default attribution is a 7-day click and 1-day view. View-through is included by default, which is a large part of why Meta claims more conversions than your other platforms — that overlap is expected rather than a fault.

Meta · Restaurants · events

The conversion map for restaurants

Four stages spread across systems you mostly don't own.

Reservation madeServer-side from the reservation platform where it exposes a webhook.
Reservation honouredServer-side. Covers seated is the real conversion.
Phone bookingCall tracking plus the reservation system's record.
Online orderServer-side from your own ordering system, with order value.
Marketplace orderReported separately. Usually not attributable to your ads at all.

Meta · Restaurants · diagnose

Diagnostic order — Meta · Restaurants

  1. 01

    Count records carrying fbclid and _fbc

  2. 02

    Reservation platform on another domain

    The click ID doesn't cross unless carried, so bookings look like direct traffic.

  3. 03

    No-shows counted as conversions

    Restaurant no-show rates make booked-only reporting optimistic.

  4. 04

    Phone bookings untracked

    Hard-coded numbers, and no click-to-call event on mobile.

  5. 05

    Read the Deduplicated indicator and the per-event match quality score, both read over seven days

    Match quality is where most Meta accounts lose attribution, and it's almost always normalization rather than coverage. An email hashed with a capital letter, or a phone hashed with brackets, produces a perfectly valid hash that matches nobody and errors nowhere. Normalize first, then hash, and read the score per event rather than overall.

Meta · Restaurants · prove

How it gets proven — Meta · Restaurants

Source of truth

your reservation and ordering systems' records

  • Click ID confirmed reaching the reservation platform, or the limitation documented.
  • Number insertion and click-to-call confirmed on a real mobile device.
  • Covers seated reconciled against the reservation system for a closed month.
  • Marketplace orders reported separately and explicitly.
  • The Deduplicated indicator and the per-event match quality score, both read over seven days read directly, not inferred from an upload succeeding.

Meta · Restaurants · free audit

What we check in the free audit

  • Count records carrying fbclid and _fbc
  • Reservation platform on another domain
  • No-shows counted as conversions
  • Phone bookings untracked
  • Read the Deduplicated indicator and the per-event match quality score, both read over seven days

Checked against

your reservation and ordering systems' records

Get my free conversion tracking audit

Free30 minutesNo obligation

Meta · Restaurants · when not to buy

When you don't need this — Meta · Restaurants

  • If Meta already reports conversions that reconcile against your reservation and ordering systems' records within a few percent, this is working and there is nothing to buy.
  • Measure identifier coverage yourself first — pull your last hundred records and count how many carry fbclid and _fbc.
  • If you're advertising a business type Meta restricts data collection for — health being the obvious one — the parameters you can legitimately send are narrower, and that constraint should shape the build rather than be worked around.

Meta · Restaurants · what we deliver

What gets built — Meta · Restaurants

  • Click ID carried into the reservation platform

    Where it supports parameters.

  • Call tracking with number insertion

    On every template and the sticky mobile bar.

  • Reservation system as the source of truth

    Covers seated, not bookings made.

  • Delivery marketplace reported as its own channel

    Honestly, including what can't be attributed.

  • Dispatch via the Conversions API

    Server events go through CAPI with an action_source describing where the conversion happened. Offline outcomes flow through the same API rather than a separate product. Verify current field names against Meta's documentation before building — this surface changes.

Written guarantee

95%+ tracking accuracy

Measured against your reservation and ordering systems' records. Miss it and we keep working at no cost.

Get my free conversion tracking audit

From $400 · See packages

FAQ

Meta · Restaurants questions, answered

Schedule is the closest standard event for a reservation. Send it with the reservation reference as event_id, and add a separate event or value update for the cover actually seated rather than counting every booking as a win.

Free · 30 min

Get Meta reporting what restaurants actually earn

Free30 minutesNo obligation