Tracking Tawk.to conversions is something you should do when running Google Ads for a website that uses the Tawk.to chat widget. Recorded conversions tell Google what you actually want from your ads, which lets your Google Ads account use conversion-focused bidding strategies.
In this article, I’ll show you how to track Tawk.to conversions with Google Tag Manager. Just follow the steps in order. If you are new to Google Tag Manager, see how to add Tag Manager to your website first.
What is a Tawk.to conversion?
For Tawk.to, a conversion can be a visitor starting a chat, filling in the pre-chat form, or leaving a message while you’re offline.
You can count just one of these actions as a conversion, for example only the pre-chat form, or count all of them. You make this choice in the final step of the article (marking the key event in GA4).
How to track Tawk.to conversions with Tag Manager
In short, Tawk.to pushes chat events into the data layer, Tag Manager picks them up and sends them to Google Analytics 4 (GA4). In GA4 you mark that event as a key event, then import it into Google Ads as a conversion. If you don’t use GA4, you can also send conversions straight to Google Ads, which I cover at the end of the article.
Steps to track Tawk.to conversions:
Step 1: Add Tawk.to through Tag Manager with a modified HTML snippet.
Step 2: Add the Tawk.to event action variable.
Step 3: Add the Tawk.to event trigger.
Step 4: Add a GA4 event tag in Tag Manager.
Step 5: Mark the key event in GA4 and import it into Google Ads.
Updated 10/2026: The first version of this article (2019) used a Universal Analytics (GA3) tag and Goals. Google stopped processing Universal Analytics data on July 1, 2023, so those steps no longer work, and I have rewritten steps 4 and 5 for GA4. Before you start, your website needs a GA4 property with the Google tag installed. If you don’t have that yet, read how to add Google Analytics to your website first.
Add Tawk.to through Tag Manager with a modified HTML snippet
To track Tawk.to chat conversions, you need a snippet that pushes events, not the default code Tawk.to gives you. Log in to Tawk.to to get your widget code, then put your own https://embed.tawk.to/XXXXXXXXXXXXXXXXXXXXXXXX/default line into the code below.
<script type="text/javascript">
var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date();
(function(){
var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0];
s1.async=true;
s1.src='https://embed.tawk.to/XXXXXXXXXXXXXXXXXXXXXXXX/default';
s1.charset='UTF-8';
s1.setAttribute('crossorigin','*');
s0.parentNode.insertBefore(s1,s0);
})();
// Track Tawk.to conversions, by digimarkcenter.com
var dataLayerPush = function(event){
dataLayer.push({
'event': 'tawk.to',
'eventAction': event
});
console.log({
'event': 'tawk.to',
'eventAction': event
});
}
Tawk_API.onChatStarted = function(){
dataLayerPush("Chat Started");
};
Tawk_API.onPrechatSubmit = function(data){
dataLayerPush("Prechat form submitted");
};
Tawk_API.onOfflineSubmit = function(data){
dataLayerPush("Offline Chat submit");
};
</script>
In Google Tag Manager, add a Custom HTML tag with the code you just edited and use the All Pages trigger, as shown below.

If you have already installed Tawk.to on your website, whether in the source code or through Google Tag Manager, remove it and reinstall it with the code above so the widget doesn’t load twice.
Add the Tawk.to event action variable
Next, we need a variable to read the Tawk.to event. In Google Tag Manager, add a Data Layer Variable with the variable name eventAction. Make sure the variable title and the Data Layer Variable Name are the same, as in the screenshot.

Add the Tawk.to conversion event trigger
Now add a Custom Event trigger with the event name tawk.to. You can name the trigger itself however you like. Pretty simple, right? The next part is a little harder.

Add a GA4 event tag in Tag Manager
Almost done. Now we add a tag that sends the chat event to GA4. In Google Tag Manager, create a new tag, choose the Google Analytics tag type, then Google Analytics: GA4 Event, and configure it as follows:
- Measurement ID: the G-XXXXXXXXXX ID of your GA4 web data stream.
- Event Name: tawk_chat. You can pick any name, but lowercase words joined by underscores are easiest to read in reports.
- Event Parameters: add a parameter called chat_action and click the button on the right to select {{eventAction}}, the variable from step 2.
- Triggering: select the tawk.to trigger from step 3.
Leave everything else as it is, click Save, then click Submit to publish the container. You don’t need to send the page path like the old method did, because GA4 already collects the page URL (page_location) with every event.
Note: To see the chat_action parameter in GA4 reports, register it as a custom dimension. Go to Admin > Data display > Custom definitions, create a new dimension with the Event scope and chat_action as the parameter name. Without it, the event is still counted, but you won’t be able to tell a started chat from an offline message.
You can test everything with Tag Manager’s Preview mode. Enter your website address, open the chat widget and send a message. If the GA4 tag you just created shows up under Tags Fired when the tawk.to event appears, it’s working. You can also open GA4, go to Reports > Realtime and wait a few seconds for tawk_chat to appear in the Event count by Event name card.
If you see it, the event is reaching GA4. Now there is one more step to get the conversion into Google Ads.
Mark the key event and import it into Google Ads
In GA4, go to Admin > Data display > Events, find tawk_chat and click the star icon to mark it as a key event. New events can take up to about a day to show up in this list, so give it some time if it isn’t there yet.
This setup counts every chat action as a conversion. If you only want to count started chats, create another trigger with Some Custom Events where eventAction equals Chat Started, attach it to a second GA4 tag with its own event name (for example tawk_chat_started), and mark only that event as a key event. The other actions are still recorded for analysis, but they won’t count as conversions.
Next, so that Google Ads can receive data from GA4, go to Admin > Product links > Google Ads links and link your Google Ads account. You should also turn on auto-tagging in Google Ads so GA4 can recognize visits that come from your ads.
Then, in Google Ads, go to Goals > Conversions > Summary, click New conversion action, choose Import, select Google Analytics 4 properties and then Web. Click Continue, tick the tawk_chat event and save. The Google Ads interface changes quite often; these menu names are as of this update (10/2026).
Alternative: send conversions straight to Google Ads
If you don’t use GA4, or you want Google Ads to record conversions faster, you can use the Google Ads conversion tag directly in Tag Manager. In Google Ads, create a website conversion action with manual setup, and in the tag setup section choose Use Google Tag Manager to get the Conversion ID and Conversion Label.
Back in Tag Manager, create a Google Ads Conversion Tracking tag, paste the Conversion ID and Conversion Label, and select the tawk.to trigger from step 3. Also add a Conversion Linker tag on All Pages if your container doesn’t have one yet, because the Google Ads conversion tag relies on it to read ad click information.
Note: If you use both methods at the same time, keep only one of them as a Primary conversion action in Google Ads and set the other as Secondary. Otherwise, a single chat gets counted twice and your bidding strategy learns from inflated numbers.
Conclusion
Tawk.to conversions imported from GA4 into Google Ads show up more slowly than in GA4 itself, usually after a few hours. Once you finish the steps, try a chat on your website and keep an eye on the numbers for a few days to make sure Google Ads is receiving conversions. If the event still doesn’t appear, leave a comment with a screenshot of Tag Manager’s Preview mode and I’ll take a look.




Thanks a lottttttttttttttttttttttttttttttttttttttt
Hi Devansh Singh Gour. You’re welcome!
hi! thanks for informative article. But don’t we need to add trigger in google analytics event tag?
Hello Alice!
Yes, we need add trigger in google analytics event