A restaurant’s website has one job: to turn browsers into diners. Whether that means completing an online reservation, placing a click-and-collect order, or downloading a menu and picking up the phone, every valuable action a guest takes on your site can and should be tracked. GA4 gives you the tools to do it — free.
This guide covers GA4 setup specifically for restaurants: the events that matter, how to connect your reservation platform, and how to use the data to make smarter marketing decisions.
Knowing that 3,000 people visited your website last month is interesting but not actionable. GA4 tells you something far more useful: of those 3,000 visitors, 420 clicked your online reservation button — a 14% click rate. Of those 420, only 180 completed a booking — a 43% reservation completion rate. The biggest drop-off happened on the date picker screen, which takes 8 seconds to load on mobile. Instagram drove 600 visitors but only 11 reservations; Google search drove 800 visitors and 94 reservations.
This is the kind of data that tells you where to invest and what to fix. Without it, you are guessing.
→ Example: An independent restaurant in Manchester used GA4 funnel data to discover that 71% of mobile users abandoned their reservation form at the “party size” field because a dropdown menu was broken on iOS. Fixing it took two hours. Reservation completions increased by 30% the following week.
Install the tag via Google Tag Manager (recommended) or directly in your website’s
code. Confirm installation using GA4’s built-in DebugView.reservation_start: Fired when a visitor clicks “Book a Table” or any reservation CTA. This is your primary micro-conversion — the moment of intent.
reservation_step: Fired at each step of your reservation flow. Pass a parameter for the step name (date_selection, party_size, time_selection, contact_details, confirmation).
reservation_complete: The macro-conversion. Fired when a reservation is confirmed. Pass parameters including party_size, booking_date, and meal_period.
→ Example: A gastropub tracking reservation_complete discovered that Friday dinner bookings were almost always initiated on Tuesday evenings. They started sending their email newsletter on Tuesday afternoons and saw a 28% uplift in Friday covers.
order_start: Fired when a visitor clicks “Order Online” or “Click and Collect”.
add_to_cart: Fired when an item is added to the order. Pass item_name and item_price as parameters.
purchase: The e-commerce conversion. Fired when an order is placed. Pass order_value, item_count, and order_type (delivery/collection).
menu_view: Fired when a visitor views your menu page or downloads a PDF menu. A strong intent signal even if it does not immediately convert.
phone_click: Fired when a visitor taps your phone number on mobile. Many restaurant bookings still happen by phone; tracking these calls closes a significant data gap.
directions_click: Fired when a visitor clicks your address or map link. High-intent signal — someone planning a visit.
OpenTable: Add a GA4 event tag in Google Tag Manager triggered by a page URL containing “/confirmed” or the OpenTable thank-you URL pattern.
ResDiary: Go to Settings → Integrations → Google Analytics and enter your GA4 Measurement ID. This enables basic tracking within the ResDiary widget.
Custom Forms: If you use Typeform, Gravity Forms, or JotForm, set up a form submission trigger in GTM that fires reservation_complete when the confirmation URL loads.
The majority of restaurant searches and bookings happen on mobile. In GA4, segment all your key reports by device category to compare mobile vs. desktop performance.
→ Example: A wine bar in London found that desktop users completed reservations at 18% but mobile users converted at only 5%. Investigation revealed their reservation widget required pinch-to-zoom on iPhone screens. Switching to a mobile-responsive reservation plugin raised mobile conversions to 14%.
Use the Traffic Acquisition report to see which channels drive reservation_complete events. Sort by Conversions rather than Sessions. A channel that drives 20% of your traffic but only 5% of your bookings is a different story than a channel that drives 8% of traffic and 25% of bookings.
UTM parameters are short tags added to your links that tell GA4 where traffic came from. Without them, traffic from your email newsletter and Instagram bio appears as “Direct” in GA4.
Use Google’s Campaign URL Builder to add UTMs to every link you publish: utm_source (instagram, mailchimp, facebook), utm_medium (social, email, cpc), and utm_campaign (winter_menu_launch, valentines_2026).
→ Example: A restaurant adds ?utm_source=instagram&utm_medium=social&utm_campaign=summer_menu to the link in their Instagram bio. In GA4, they can now see exactly how many reservations that bio link generated.
The Lobby sets up GA4 for restaurants so you know which channels perform and which do not.