How does the integration with Google Analytics work?

For contractors who already use Google Analytics, it is very easy to begin to measure and report on key Schedule Engine/Schedule Engine Live activities. If Google Analytics is already installed on a contractor's website, there is nothing else that needs to be installed or configured. All they need to do is use Google Analytics to view the key events produced by Schedule Engine/Schedule Engine Live. Table 1 provides a list of these events and labels.

Table 1 - Google Analytics Events and Labels

Event

Label

Description

BookingStarted


Fired when the booking widget appears.

BookingIssueStarted

Category or equipment name

Fired when the customer chooses a category or piece of equipment.

BookingIssueCompleted

Service code

Fired when the customer completes the questions.

BookingDetailsMedia

Number of uploaded files

Fired when the customer finishes the media uploads.

BookingDetailsMore


Fired when the customer provides more details.

BookingCustomerQuestion

Yes or No

Fired when the customer indicates if they are an existing customer.

BookingCustomer

Customer status

Fired when the customer provides their name and location information.

BookingSchedule

Preference or Time Slot Label

Fired when the customer chooses a scheduling option.

BookingBooked


Fired when the booking is completed.

Chat Opened


Fired when the widget is opened the first time for a page.

Chat Initiated


Fired when the customer first sends a message.

Chat Served by Operator

Operator Id

Fired when the agent accepts the chat.

Chat Booked Appointment


Fired when a booking is completed.

Chat Ended

Resolution Type

Fired when the chat channel is closed.


Troubleshooting SE Events not visible in Google Analytics/Google Tag Manager


Confirm that your website has the V3 version of the Schedule Engine API script. An easy way to confirm this is to be sure that src="https://embed.scheduleengine.net/schedule-engine-v3.js" Is included in the Schedule Engine script you have on the website. If your team has an older version of the script, update to the V3 version which can be found here.


GoogleTagManager


If using GoogleTagManager and not seeing the events, please make sure you have these settings configured:


Tag Manager >> Edit Tag Configuration >> check "Enable Override Settings for this Tab" >> More Settings >> Advanced Configuration >> Set Tracker Name select "true" and leave tracker name blank >> Save >> Publish


Not seeing Scheduler Events in GA, add in this script


Universal Analytics

<script>

        var se_tracker_ga_method = ga.getAll()[0].get('name') + ".send";

 

        // add a message when the booking process begins

        ScheduleEngine.addEventListener("BookingStarted", function () { ga(se_tracker_ga_method, 'event', 'Schedule Engine - Booking', 'BookingStarted', '');

})

        ScheduleEngine.addEventListener("BookingIssueStarted", function () { ga(se_tracker_ga_method, 'event', 'Schedule Engine - Booking', 'BookingIssueStarted', '');

})

        ScheduleEngine.addEventListener("BookingIssueCompleted", function () { ga(se_tracker_ga_method, 'event', 'Schedule Engine - Booking', 'BookingIssueCompleted', '');

})

        ScheduleEngine.addEventListener("BookingDetailsMedia", function () { ga(se_tracker_ga_method, 'event', 'Schedule Engine - Booking', 'BookingDetailsMedia', '');

})

        ScheduleEngine.addEventListener("BookingDetailsMore", function () { ga(se_tracker_ga_method, 'event', 'Schedule Engine - Booking', 'BookingDetailsMore', '');

})

        ScheduleEngine.addEventListener("BookingCustomerQuestion", function () { ga(se_tracker_ga_method, 'event', 'Schedule Engine - Booking', 'BookingCustomerQuestion', '');

})

        ScheduleEngine.addEventListener("BookingCustomer", function () { ga(se_tracker_ga_method, 'event', 'Schedule Engine - Booking', 'BookingCustomer', '');

})

        ScheduleEngine.addEventListener("BookingSchedule", function () { ga(se_tracker_ga_method, 'event', 'Schedule Engine - Booking', 'BookingSchedule', '');

})

        ScheduleEngine.addEventListener("BookingBooked", function () { ga(se_tracker_ga_method, 'event', 'Schedule Engine - Booking', 'BookingBooked', '');

})

</script>


GA4

 

<script>

    // add a message when the booking process begins

    ScheduleEngine.addEventListener("BookingStarted", function () {

            gtag('event', 'BookingStarted', {'event_category': 'Schedule Engine - Booking' });

    });

    ScheduleEngine.addEventListener("BookingIssueStarted", function () {

            gtag('event', 'BookingIssueStarted', {'event_category': 'Schedule Engine - Booking' });

    });

    ScheduleEngine.addEventListener("BookingIssueCompleted", function () {

            gtag('event', 'BookingIssueCompleted', {'event_category': 'Schedule Engine - Booking' });

    });

    ScheduleEngine.addEventListener("BookingDetailsMedia", function () {

            gtag('event', 'BookingDetailsMedia', {'event_category': 'Schedule Engine - Booking' });

    });

    ScheduleEngine.addEventListener("BookingCustomerQuestion", function () {

            gtag('event', 'BookingCustomerQuestion', {'event_category': 'Schedule Engine - Booking' });

    });

    ScheduleEngine.addEventListener("BookingCustomer", function () {

            gtag('event', 'BookingCustomer', {'event_category': 'Schedule Engine - Booking' });

    });

    ScheduleEngine.addEventListener("BookingSchedule", function () {

            gtag('event', 'BookingSchedule', {'event_category': 'Schedule Engine - Booking' });

    });

    ScheduleEngine.addEventListener("BookingBooked", function () {

            gtag('event', 'BookingBooked', {'event_category': 'Schedule Engine - Booking' });

    });

</script>


GTM

<script>

    window.dataLayer = window.dataLayer || [];


    //Google Tag Manager Booking Widget Events

    ScheduleEngine.addEventListener("BookingStarted", function (){


        window.dataLayer.push({event:"BookingStarted"});


    });


    ScheduleEngine.addEventListener("BookingIssueStarted", function (){


        window.dataLayer.push({event:"BookingIssueStarted"});


    });


    ScheduleEngine.addEventListener("BookingIssueCompleted", function (){

        

        window.dataLayer.push({event:"BookingIssueCompleted"});


    });


    ScheduleEngine.addEventListener("BookingDetailsMedia", function (){


        window.dataLayer.push({event:"BookingDetailsMedia"});


    });


    ScheduleEngine.addEventListener("BookingDetailsMore", function (){


        window.dataLayer.push({event:"BookingDetailsMore"});


    });


    ScheduleEngine.addEventListener("BookingCustomerQuestion", function (){


        window.dataLayer.push({event:"BookingCustomerQuestion"});


    });


    ScheduleEngine.addEventListener("BookingCustomer", function (){


        window.dataLayer.push({event:"BookingCustomer"});


    });


    ScheduleEngine.addEventListener("BookingSchedule", function (){


        window.dataLayer.push({event:"BookingSchedule"});


    });


    ScheduleEngine.addEventListener("BookingBooked", function (){


        window.dataLayer.push({event:"BookingBooked"});


    });


</script>



If not seeing SE Chat events in GTM, add in this script

<script>

    window.dataLayer = window.dataLayer || [];

 //Google Tag Manager Chat Events

    WebChat.addEventListener("Chat Opened",function(){

        

        window.dataLayer.push({event:"Chat Opened"})


    });


    WebChat.addEventListener("Chat Initiated",function(){

        

        window.dataLayer.push({event:"Chat Initiated"})


    });


    WebChat.addEventListener("Chat Served by Operator",function(){

        

        window.dataLayer.push({event:"Chat Served by Operator"})


    });


    WebChat.addEventListener("Chat Booked Appointment",function(){

        

        window.dataLayer.push({event:"Chat Booked Appointment"})


    });


    WebChat.addEventListener("Chat Ended",function(){

        

        window.dataLayer.push({event:"Chat Ended"})


    });


    WebChat.addEventListener("Chat Closed",function(){

        

        window.dataLayer.push({event:"Chat Closed"})


    });


    WebChat.addEventListener("Chat Booked Appointment",function(){

        

        window.dataLayer.push({event:"Chat Booked Appointment"})


    });


</script>


If not seeing SE Chat events in GA4, add in this script

<script>

    // add a message when the booking process begins

   Webchat.addEventListener("Chat Opened", function () {

            gtag('event', 'Chat Opened ', {'event_category': 'Chat Widget' });

    });

    Webchat.addEventListener("Chat Initiated", function () {

            gtag('event', 'Chat Initiated', {'event_category': 'Chat Widget' });

    });

    Webchat.addEventListener("Chat Served by Operator", function () {

            gtag('event', 'Chat Served by Operator', {'event_category': 'Chat Widget' });

    });

    Webchat.addEventListener("Chat Booked Appointment", function () {

            gtag('event', 'Chat Booked Appointment', {'event_category': 'Chat Widget' });

    });

   Webchat.addEventListener("Chat Ended", function () {

            gtag('event', 'Chat Ended', {'event_category': 'Chat Widget' });

    });

    Webchat.addEventListener("Chat Closed", function () {

            gtag('event', 'Chat Closed', {'event_category': 'Chat Widget' });

    });

    Webchat.addEventListener("Chat Booked Appointment", function () {

            gtag('event', 'Chat Booked Appointment', {'event_category': 'Chat Widget' });

    });

</script>