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.