This reference provides a complete, technical overview of every Google Tag Manager (GTM) component supported by the Practice by Numbers (PbN) Online Booking Widget.
It is designed for marketers, analysts, and implementation partners who want full visibility into all available events, triggers, variables, and tagging options that PbN supports. Whether you are validating an existing setup or building a new GTM container from scratch, this page acts as a centralized checklist to ensure nothing is missed and all tracking is configured correctly.
π Complete Checklist
This section lists every event, trigger, and variable that Practice by Numbers can send to GTM. Not every practice will use every step, but this reference ensures you know what is available.
Events Sent Automatically by Practice by Numbers
Practice by Numbers automatically pushes the following events to GTMβs dataLayer. No custom JavaScript is required.
Total Events: 14
βEvent Category (included with all events):
pbn_appointment_booking
β οΈ Important: Payment, insurance, and OTP-related events only fire if those features are enabled for your practice.
Event Reference Table
Event Name | When It Fires | Common Use Case |
| Booking widget loads | Funnel start, remarketing |
| Location is selected | Funnel analysis |
| Visit type is selected | Funnel analysis |
| Provider is selected | Funnel analysis |
| Date/time is selected | Funnel analysis |
| Contact form submitted | Lead tracking |
| Appointment saved in backend (draft) | Backend confirmation |
| Payment page loads | Payment funnel |
| Credit card submitted | Payment completion |
| Insurance page loads | Insurance funnel |
| Insurance submitted | Insurance completion |
| OTP/verification page loads | Verification funnel |
| Final confirmation shown | Main conversion |
| Booking fails | Error tracking |
Triggers to Create in Google Tag Manager
Create a Custom Event trigger in GTM for each event you want to track.
How to create: Triggers β New β Custom Event β Event name (exact match)
Trigger Reference Table
Trigger Name | Type | Event Name | When to Use |
PBN - Appointment Booked | Custom Event |
| Required β main conversion |
PBN - Widget Opened | Custom Event |
| Recommended β funnel start |
PBN - Patient Info Entered | Custom Event |
| Recommended β lead event |
PBN - Draft Appointment Created | Custom Event |
| Backend confirmation |
PBN - Payment Screen Shown | Custom Event |
| Optional β payment funnel |
PBN - Payment Info Entered | Custom Event |
| Optional β payment completion |
PBN - Insurance Screen Shown | Custom Event |
| Optional β insurance funnel |
PBN - Insurance Info Entered | Custom Event |
| Optional β insurance completion |
PBN - OTP Verification Shown | Custom Event |
| Optional β verification step |
PBN - Location Selected | Custom Event |
| Optional β funnel step |
PBN - Visit Type Selected | Custom Event |
| Optional β funnel step |
PBN - Provider Selected | Custom Event |
| Optional β funnel step |
PBN - Timeslot Selected | Custom Event |
| Optional β funnel step |
PBN - Booking Error | Custom Event |
| Optional β error tracking |
Priority Triggers (Create First)
PBN β Appointment Booked (required)
PBN β Draft Appointment Created
PBN β Patient Info Entered
Data Layer Variables to Create in GTM
These variables allow you to pass booking details into GA4, Google Ads, Facebook, and other platforms.
How to create: Variables β User-Defined Variables β New β Data Layer Variable
Variable Reference Table
Variable Name | Data Layer Variable Name | Description |
DLV - appointment_id |
| Appointment ID |
DLV - appointment_date |
| Appointment date (YYYY-MM-DD) |
DLV - appointment_time |
| Appointment time (HH:MM) |
DLV - visit_type_id |
| Visit type ID |
DLV - visit_type_name |
| Visit type name |
DLV - provider_id |
| Provider ID |
DLV - provider_name |
| Provider name |
DLV - location_id |
| Location ID |
DLV - location_name |
| Location name |
DLV - patient_type |
|
|
DLV - payment_method |
| Payment method |
DLV - has_insurance |
| true / false |
DLV - practice_slug |
| Practice identifier |
DLV - utm_source |
| UTM source |
DLV - utm_medium |
| UTM medium |
DLV - utm_campaign |
| UTM campaign |
DLV - error_type |
| Booking error type |
DLV - error_message |
| Booking error message |
Most Important Variables
DLV β appointment_id
DLV β appointment_date
DLV β visit_type_name
DLV β provider_name
Example Data Layer Event Structure
Below is an example of what Practice by Numbers sends when an appointment is booked:
{ event: 'pbn_appointment_booked', event_category: 'pbn_appointment_booking', appointment_date: '2024-10-20', appointment_time: '14:30', visit_type_id: 123, visit_type_name: 'New Patient Exam', provider_id: 456, provider_name: 'Dr. Sarah Johnson', location_id: 789, location_name: 'Downtown Office', patient_type: 'new', practice_slug: 'avondalesmiles', utm_source: 'google', utm_medium: 'cpc', utm_campaign: 'fall-promotion', utm_term: 'dentist near me', utm_content: 'ad-variant-1' }
π Privacy Note: No personally identifiable patient information (PII) is ever sent.
Tags Youβll Create (Platform-Specific)
Google Ads
Google Ads β Appointment Booked Conversion
Trigger: PBN β Appointment Booked
Google Analytics 4 (GA4)
GA4 Event β PBN Appointment Booked
GA4 Event β PBN Widget Opened
GA4 Event β PBN Patient Info Entered
Use Data Layer Variables as event parameters.
Facebook Pixel
Facebook Pixel β Base Code (All Pages)
Facebook Pixel β Schedule (Appointment Booked)
Facebook Pixel β Lead (Patient Info Entered)
Facebook Pixel β ViewContent (Widget Opened)
β Quick Setup Checklists
Minimum Setup (Google Ads Only)
Create trigger: PBN β Appointment Booked
Create a Google Ads conversion tag
Publish container
Test in Preview mode
Recommended Setup (Google Ads + Funnel)
Create triggers: Appointment Booked, Widget Opened, Patient Info Entered
Create a Google Ads conversion tag
Create GA4 event tags
Create Data Layer Variables
Publish container
Test in Preview mode
Full Setup (All Platforms)
Create all triggers
Create all Data Layer Variables
Create Google Ads tags
Create GA4 tags
Create Facebook Pixel tags
Publish container
Test in Preview mode
Verify data in Ads, GA4, and Facebook
π Next Step: Follow the platform-specific setup guides for Google Ads, GA4, and Facebook to complete your implementation.
