Jivo Chat Event Listener
How to track Jivo Chat Interactions with google tag manager
Tracking Jivo chat interactions in your analytics tools give you valuable insights into the impact these chat interactions have on your marketing funnel, conversions, and other business KPIs.
To implement the Jivo chat activity tracking, you’ll need Google Tag Manager and the Jivo chat event listener javascript code.
To begin, create a custom HTML tag where you’ll paste the event listener code and fire it on pageview or DOM ready (always recommended).
💡PRO TIP: if you installed the Jivo chat script through Google Tag Manager, please use the DOM ready trigger instead.
What the Jivo chat event listener does, is to fire an event on every interaction with the Jivo chat widget.
The next step in this implementation is to create a custom event with the event name of [jivochat interaction], which gets fired on all chat activity
To get more information on what chat activity happened, you’ll need to create a dataLayer variable with the key [chatAction]
[chatAction] returns the following event description;
- chat window opened
- user sents first message
- agent accepts chat
- chat window closed
- submitted chat form
- user started a call
- user ended a call
You can use the [chatAction] dataLayer variable to send information about the Jivo chat activity
To capture the Jivo chat widget, create a dataLayer with the key [chatWidgetID]
Connect your analytics tags to the trigger and use the dataLayer variables you created to push more information about each Jivo chat interaction.
Having these data in your analytics can help provide actionable insights into your marketing and customer support strategy.
<script> //Executed when chat window is opened function jivo_onOpen() { dataLayer.push({ event: 'jivochat interaction', chatAction: 'chat window opened', chatWidgetID: jivo_config.widget_id }) }; //Executed when a visitor sends the first message function jivo_onMessageSent() { dataLayer.push({ event: 'jivochat interaction', chatAction: 'user sents first message', chatWidgetID: jivo_config.widget_id }) }; //Executed when an agent presses the Reply button in the notification of a new chat function jivo_onAccept() { dataLayer.push({ event: 'jivochat interaction', chatAction: 'agent accepts chat', chatWidgetID: jivo_config.widget_id }) }; //Executed when chat window is closed function jivo_onClose() { dataLayer.push({ event: 'jivochat interaction', chatAction: 'chat window closed', chatWidgetID: jivo_config.widget_id }) }; //Executed when a visitor fills the contacts form function jivo_onIntroduction() { dataLayer.push({ event: 'jivochat interaction', chatAction: 'submitted chat form', chatWidgetID: jivo_config.widget_id }) }; //Executed when visitor makes phone call function jivo_onCallStart() { dataLayer.push({ event: 'jivochat interaction', chatAction: 'user started a call', chatWidgetID: jivo_config.widget_id }) }; //Executed when a phone call ends function jivo_onCallEnd() { dataLayer.push({ event: 'jivochat interaction', chatAction: 'user ended a call', chatWidgetID: jivo_config.widget_id }) }; </script>