Skip to main content

Google Analytics Integration

Written by Scott Pfeifer

Overview

WaitWell client applications include built-in Google Analytics 4 (GA4) tracking to help you understand how your customers interact with your queue management and booking system.

This guide will walk you through setting up your own GA4 property to track analytics from your WaitWell application.

Prerequisites

Before you begin, you'll need:

  • A Google account

  • Admin access to the WaitWell Staff App

Step 1: Create a Google Analytics 4 Property

1. Go to Google Analytics

2. Click Admin (gear icon in bottom left)

3. In the Account column, select or create an account

4. In the Property column, click Create Property

5. Enter your property details:

  • Property name: Your business/location name (e.g., "Downtown Medical Clinic")

  • Reporting time zone: Select your time zone

  • Currency: Select your currency

6. Click Next

7. Fill in your business information and click Create

8. Accept the Terms of Service

Step 2: Get Your GA4 Measurement ID

1. After creating the property, you'll see a setup assistant

2. Click Web under "Choose a platform"

3. Enter your website details:

  • Website URL: Enter any one of your WaitWell subdomains (e.g., https://yoursite.waitwell.ca or https://yoursite.waitwell.us))

  • Stream name: "WaitWell Client App" (or your preferred name)

  • Note: If you have multiple WaitWell subdomains, just enter one - the same Measurement ID will track all of them automatically

4. Click Create stream

5. You'll see your Measurement ID at the top of the screen (format: G-XXXXXXXXXX)

6. Copy this Measurement ID - you'll enter it in the WaitWell Staff App

Step 3: Configure Analytics in WaitWell Staff App

1. Log in to the WaitWell Staff App

2. Go to Integrations > Google Analytics Integration

3. Paste your Measurement ID (G-XXXXXXXXXX) into the field

4. Check Enabled

5. Press Save

6. The integration will be active immediately

Note: If you don't see the Google Analytics Integration page, contact WaitWell support to enable this feature for your account.

Step 4: Verify Tracking is Working

After enabling the integration in the Staff App:

1. Go to your Google Analytics property

2. Click Reports in the left sidebar

3. Click Realtime to see live traffic

4. Open your WaitWell client app: https://yoursite.waitwell.ca or https://yoursite.waitwell.us

5. You should see your visit appear in the Realtime report within seconds

6. Look for these events in Realtime > Event count by Event name:

  • ww_app_ready - Application initialized

  • page_view - Page views

  • ww_queue_joined - Customer joined a queue

  • ww_booking_created - Booking created

  • ww_checkin_completed - Check-in completed

  • ww_join_canceled - Queue position canceled

  • ww_booking_canceled - Booking/appointment canceled

What Data is Tracked?

Automatically Tracked by GA4

WaitWell automatically sends the following data to your GA4 property:

Standard Metrics (Every Page View)

  • Page URL - Which pages users visit

  • Page Title - The title of each page

  • Referrer - Where visitors came from (external websites)

  • Session Duration - How long users spend on your site

  • Device Type - Mobile, tablet, or desktop

  • Browser - Chrome, Safari, Firefox, etc.

  • Operating System - iOS, Android, Windows, Mac

  • Geographic Location - Country, region, city (from IP address)

  • Language - User's browser language

WaitWell-Specific Context

  • Site ID - Your WaitWell site identifier

  • Location Name - Your location/business name

  • Company Name - Your company name (if configured)

  • User Language - Language selected in the app (e.g., English, French)

  • App Platform - Web, iOS app, or Android app

User Action Events

WaitWell tracks key customer actions as events with detailed parameters:

Queue Joined (`ww_queue_joined`)

Tracks when a customer joins a queue:

  • queue_id - The queue identifier

  • wait_time_minutes - Estimated wait time shown to customer

  • join_result - Result: "success", "failed", or "full"

  • ticket_id - The ticket/confirmation number created

  • site_id, location_name - Context (automatically included)

Booking Created (`ww_booking_created`)

Tracks when a customer creates a booking/appointment:

  • booking_id - The booking identifier

  • service_type - Type of service booked

  • booking_result - Result: "confirmed", "cancelled", or "failed"

  • ticket_id - The ticket/confirmation number created

  • site_id, location_name - Context (automatically included)

Check-in Completed (`ww_checkin_completed`)

Tracks when a customer completes check-in:

  • ticket_id - The ticket/confirmation number

  • checkin_result - Result: "success" or "failed"

  • site_id, location_name - Context (automatically included)

Queue Join Canceled (`ww_join_canceled`)

Tracks when a customer cancels their queue position:

  • ticket_id - The ticket/confirmation number being canceled

  • queue_id - The queue identifier (optional)

  • cancel_result - Result: "success" or "failed"

  • site_id, location_name - Context (automatically included)

Booking Canceled (`ww_booking_canceled`)

Tracks when a customer cancels their booking/appointment:

  • ticket_id - The booking/appointment being canceled

  • cancel_result - Result: "success" or "failed"

  • site_id, location_name - Context (automatically included)

Important: All event parameters are automatically captured and visible in GA4's event details. You can view them immediately in Realtime reports without any additional setup.

Understanding Event Parameters vs. Custom Dimensions

Event Parameters (No Setup Required)

All event parameters are automatically captured by GA4. You can view them immediately in:

Realtime Reports (Reports > Realtime)

1. Click on any event (e.g., ww_queue_joined)

2. Scroll to Event parameters section

3. See all parameters like ticket_id, queue_id, wait_time_minutes, etc.


Event Details in Standard Reports (Reports > Engagement > Events)

1. Click on an event name

2. See parameter values in the event details


Example: Finding a Specific Ticket

1. Go to Realtime or Explore

2. Look for ww_queue_joined or ww_booking_created events

3. Click the event to see parameters including ticket_id


When Do You Need Custom Dimensions?

You only need to create custom dimensions if you want to:

  • Filter reports by event parameters (e.g., show only "success" joins)

  • Segment data in standard reports (e.g., compare by wait time)

  • Create audiences based on parameters (e.g., users with long wait times)

  • Use parameters in Explore reports for advanced analysis

You do NOT need custom dimensions to:

  • ❌ See parameter values (already visible in event details)

  • ❌ Count events (already tracked automatically)

  • ❌ View in Realtime reports (parameters show immediately)

Recommended Setup: Custom Dimensions

Create these custom dimensions to unlock advanced reporting and segmentation:

Quick Reference: Which Dimensions to Create

Create This

If You Want To...

`ticket_id`

Search for specific tickets, track individual customer journeys

`queue_id`

Compare performance across different queues

`wait_time_minutes`

Segment by wait time, analyze conversion by wait time

`join_result`

Filter successful vs failed joins, calculate success rate

`booking_result`

Analyze booking confirmation rates

`cancel_result`

Track cancellation success/failure rates

`service_type`

Compare different service types, track popular services

How to Create Custom Dimensions

1. In Google Analytics, go to Admin > Custom definitions

2. Click Create custom dimension

3. Create dimensions based on your needs (see recommendations below):

Core Dimensions (Recommended for Everyone)

Dimension 1: Site ID

  • Dimension name: Site ID

  • Scope: Event

  • Event parameter: site_id

  • Purpose: Filter data by specific site (useful if you have multiple locations)

Dimension 2: Location Name

  • Dimension name: Location Name

  • Scope: Event

  • Event parameter: location_name

  • Purpose: Human-readable location identifier

Dimension 3: User Language

  • Dimension name: User Language

  • Scope: Event

  • Event parameter: user_language

  • Purpose: See which languages your customers prefer

Dimension 4: App Platform

  • Dimension name: App Platform

  • Scope: Event

  • Event parameter: app_platform

  • Purpose: Compare behavior across web vs. mobile apps

Queue & Booking Dimensions (Optional - For Advanced Analysis)

Dimension 5: Ticket ID

  • Dimension name: Ticket ID

  • Scope: Event

  • Event parameter: ticket_id

  • Purpose: Search for specific tickets, track individual customer journeys

  • Use case: "Find all events for ticket #12345"

Dimension 6: Queue ID

  • Dimension name: Queue ID

  • Scope: Event

  • Event parameter: queue_id

  • Purpose: Compare different queues

  • Use case: "Which queue has the most joins?"

Dimension 7: Wait Time

  • Dimension name: Wait Time Minutes

  • Scope: Event

  • Event parameter: wait_time_minutes

  • Purpose: Segment by wait time

  • Use case: "Do customers join less when wait times are over 30 minutes?"

Dimension 8: Join Result

  • Dimension name: Join Result

  • Scope: Event

  • Event parameter: join_result

  • Purpose: Filter by success/failure

  • Use case: "How often do queue joins fail?"

Dimension 9: Booking Result

  • Dimension name: Booking Result

  • Scope: Event

  • Event parameter: booking_result

  • Purpose: Analyze booking outcomes

  • Use case: "What's our booking confirmation rate?"

Dimension 10: Service Type

  • Dimension name: Service Type

  • Scope: Event

  • Event parameter: service_type

  • Purpose: Compare service types

  • Use case: "Which services are most popular?"

Dimension 11: Cancel Result

  • Dimension name: Cancel Result

  • Scope: Event

  • Event parameter: cancel_result

  • Purpose: Track cancellation outcomes

  • Use case: "What's our cancellation rate?"

Note:

  • Custom dimensions take up to 24 hours to become available in reports after creation

  • GA4 has a limit of 50 custom dimensions per property - create only the ones you'll actually use

  • Start with Core Dimensions, add others based on your reporting needs

Practical Examples: Using Event Parameters

Example 1: Finding a Specific Ticket

Without Custom Dimension (Works immediately):

1. Go to Reports > Realtime

2. Wait for a ww_queue_joined or ww_booking_created event to appear

3. Click on the event

4. Look in Event parameters section for ticket_id

5. You'll see the value, but can't search/filter by it

With Custom Dimension (Better for searching):

1. Create Ticket ID custom dimension (see above)

2. Wait 24 hours for it to activate

3. Go to Explore > Create a new exploration

4. Add filter: Ticket ID = "12345"

5. See all events related to that ticket

Example 2: Analyzing Queue Performance

Question: "Which queue has the highest join success rate?"

Steps:

1. Create Queue ID and Join Result custom dimensions

2. Go to Explore > Create Free form exploration

3. Add dimension: Queue ID

4. Add dimension: Join Result

5. Add metric: Event count (with event name = ww_queue_joined)

6. See breakdown by queue and result

Example 3: Wait Time Analysis

Question: "Do customers join less when wait times are high?"

Steps:

1. Create Wait Time Minutes custom dimension

2. Go to Explore > Create Free form exploration

3. Add dimension: Wait Time Minutes

4. Add metric: ww_queue_joined (event count)

5. Create buckets: 0-15 min, 15-30 min, 30-60 min, 60+ min

6. Compare join rates across wait time ranges

Example 4: Service Type Popularity

Question: "Which service types get the most bookings?"

Steps:

1. Create Service Type custom dimension

2. Go to Reports > Engagement > Events

3. Click on ww_booking_created event

4. Add secondary dimension: Service Type

5. See booking counts by service type

Example 5: Tracking Individual Customer Journey

Question: "What did customer with ticket #12345 do?"

With Ticket ID custom dimension:

1. Go to Explore > Create User explorer

2. Filter: Ticket ID = "12345"

3. See complete timeline:

  • Page views

  • Queue join

  • Check-in

  • All parameters at each step

Setting Up Conversions

Mark important customer actions as conversions to track your goals:

1. Go to Admin > Events

2. Find these key events and toggle Mark as conversion:

  • ww_queue_joined - Customer joined queue

  • ww_booking_created - Booking/appointment created

  • ww_checkin_completed - Customer checked in

Once marked as conversions, you can:

  • See conversion counts in your reports

  • Set up conversion goals

  • Track conversion rates

  • Create audiences based on conversions

Useful Reports and Analysis

Understanding Your Traffic

Acquisition Reports (Reports > Acquisition)

  • See where your customers come from (Google search, social media, direct visits, etc.)

  • Understand which marketing channels drive the most traffic

Engagement Reports (Reports > Engagement)

  • See which pages are most popular

  • Track how long customers spend in your app

  • Identify drop-off points in the customer journey

Realtime Reports (Reports > Realtime)

  • See current activity as it happens

  • Monitor live events like queue joins and bookings

Creating Custom Reports

Explore Section (Explore in left sidebar)

Example useful explorations:

Queue Join Funnel

1. Create a Funnel exploration

2. Add steps: page_view (home) → page_view (join page) → ww_queue_joined

3. See where customers drop off in the join process

Booking Analysis by Wait Time

1. Create a Free form exploration

2. Add dimension: Wait Time Minutes

3. Add metric: ww_queue_joined (count)

4. See how many customers join at different wait time estimates

Platform Comparison

1. Create a Free form exploration

2. Add dimension: App Platform

3. Add metrics: Active users, ww_queue_joined, ww_booking_created

4. Compare engagement across web, iOS, and Android

Grouping Pages by Section

Since WaitWell uses dynamic URLs (like /join/123, /join/456), you may want to group similar pages:

Method 1: Use Filters in Reports

  • In any pages report, add a filter: page_location contains /join/

  • This shows all queue join pages together

Method 2: Create Segments

1. Go to Explore > Create new exploration

2. Add a segment: page_location contains specific path

3. Save and reuse this segment across reports

Frequently Asked Questions

Q: Do I need separate GA4 properties for multiple locations?

A: No! One GA4 Measurement ID tracks all your WaitWell subdomains. Use the Site ID and Location Name custom dimensions to segment data by location.

Q: What if I have multiple WaitWell subdomains?

A: A single Measurement ID tracks them all automatically. The website URL you entered when creating the data stream is just for reference.

Q: Can I track my main website and WaitWell app together?

A: Yes, but we recommend using separate GA4 properties for clearer reporting. One for your marketing website, one for your WaitWell application.

Q: How long until I see data?

A: Realtime data appears within seconds. Standard reports update within 24-48 hours. Custom dimensions take up to 24 hours to become available.

Q: Does this work in the mobile app?

A: Yes! Tracking works in both web browsers and native mobile apps (iOS/Android). Note: mobile apps don't have HTTP referrer data since users launch from their home screen.

Q: Will ad blockers affect my data?

A: Yes, some users with ad blockers may not be tracked. This is normal and affects all web analytics. Your data will still be representative of overall trends.

Q: Is customer data private and secure?

A: Yes. WaitWell only tracks aggregate analytics data (page views, events). No personal information (names, phone numbers, health information) is sent to Google Analytics.

Troubleshooting

Not Seeing Data in Google Analytics?

1. Verify your Measurement ID is correctly entered in the WaitWell Staff App (Integrations > Google Analytics Integration)

2. Verify the integration is Enabled

3. Check you're viewing the correct GA4 property (not an old Universal Analytics property)

4. Wait a few minutes - initial data can take 1-5 minutes to appear

5. Try clearing your browser cache and visiting the site again

6. Disable ad blockers temporarily to test

Data Looks Incomplete?

1. Ensure ad blockers are disabled for testing

2. Check that your browser allows third-party cookies

3. Verify JavaScript is enabled in your browser

4. Try a different browser to isolate browser-specific issues

Events Not Showing Up?

1. Check Realtime reports first (faster than standard reports)

2. Verify you've completed the action that triggers the event (e.g., actually joined a queue)

3. Look in Realtime > Event name for the specific event you're testing

Need Help?

1. First, verify in the WaitWell Staff App:

  • Go to Integrations > Google Analytics Integration

  • Confirm your Measurement ID is correct

  • Ensure the integration is Enabled

1. If issues persist, contact WaitWell support with:

  • Your Site ID or Location Name

  • Your Measurement ID (G-XXXXXXXXXX)

  • Description of the issue

  • Screenshots if helpful

Privacy and Compliance

What Data is Collected?

WaitWell collects:

  • ✅ Aggregate usage data (page views, clicks, events)

  • ✅ Technical data (browser, device, IP-based location)

  • ✅ Application flow (which pages users visit)

WaitWell does NOT collect:

  • ❌ Personal identifying information (names, phone numbers, email addresses)

  • ❌ Health information

  • ❌ Payment information

  • ❌ Specific queue numbers or appointment details beyond aggregate events

Your Responsibilities

As the data controller of your GA4 property:

  • Update your privacy policy to mention Google Analytics usage

  • Provide a cookie notice/banner if required in your jurisdiction

  • Comply with GDPR, CCPA, or other applicable privacy regulations

  • Consider anonymizing IP addresses in GA4 settings if required

Google Analytics Settings

To enhance privacy in your GA4 property:

1. Go to Admin > Data Settings > Data collection

2. Consider enabling Google signals data collection (optional)

3. Set Data retention period (2 months or 14 months)

4. Review User data deletion requests procedures

Additional Resources

  • Google Analytics 4 Help Center

  • GA4 Academy (Free Training)

  • Google Analytics Demos & Tools

Questions? Contact WaitWell Support for assistance with analytics setup.

Did this answer your question?