> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.crisp.chat/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# How to push conversions to Google Ads with Google Tag Manager

*Learn how to send a Crisp chat interaction to Google Ads as a conversion through Google Tag Manager.*

This guide shows one common setup: listening for a Crisp chatbox event, pushing a custom event to the GTM data layer, then using that event to trigger a Google Ads conversion tag.

---

# ${color}[#0080dd](Before you start)

You need access to Google Tag Manager and Google Ads before configuring this conversion flow.

__You will need:__
* A **Google Tag Manager** container installed on your website
* A **Google Ads** account with a conversion action ready to use
* The **Conversion ID** and **Conversion Label** from Google Ads
* The Crisp chatbox installed on the same pages as your GTM container

||| Google Ads conversion tracking may set advertising cookies or use consent-dependent signals. Review your consent banner, privacy notice, and regional requirements before publishing this setup.

---

# ${color}[#0080dd](Choose the Crisp event to track)

You can track different Crisp chatbox events depending on what you consider a conversion. In this article, the main example is **message:sent**, which fires when a visitor sends a message through the chatbox.

#### ${color}[#445055](Track a sent visitor message)

```html
<script type="text/javascript">
  window.$crisp = window.$crisp || [];
  window.dataLayer = window.dataLayer || [];

  $crisp.push(["on", "message:sent", function(message) {
    dataLayer.push({
      event: "CrispInteractions",
      eventCategory: "chatbox",
      eventAction: "message_sent"
    });
  }]);
</script>
```

#### ${color}[#445055](Track when a visitor email is set)

```html
<script type="text/javascript">
  window.$crisp = window.$crisp || [];
  window.dataLayer = window.dataLayer || [];

  $crisp.push(["on", "user:email:changed", function(email) {
    dataLayer.push({
      event: "CrispInteractions",
      eventCategory: "chatbox",
      eventAction: "email_set"
    });
  }]);
</script>
```

| You can find the full list of supported `$crisp` events in the [$crisp method reference](https://docs.crisp.chat/guides/chatbox-sdks/web-sdk/dollar-crisp/).

---

# ${color}[#0080dd](Create the Crisp event listener in GTM)

Create a **Custom HTML** tag in Google Tag Manager and paste the listener code for the Crisp event you want to track.

![Custom HTML tag for the Crisp event listener](https://storage.crisp.chat/users/helpdesk/website/87ae2703583ac800/cleanshot-2025-02-24-at-120121_j0lsdl.png =1000xauto)

This tag registers a `$crisp.push(["on", ...])` listener and pushes a **CrispInteractions** event to the data layer when the selected Crisp event happens.

#### ${color}[#445055](Trigger the listener)

Trigger the Custom HTML listener on **gtm.dom** or a similar page-ready trigger so it is registered across the website.

![Google Tag Manager trigger for loading the listener](https://storage.crisp.chat/users/helpdesk/website/87ae2703583ac800/cleanshot-2025-02-24-at-120140_z2ob61.png =1000xauto)

|| Avoid using **gtm.click** as the main listener trigger unless you specifically need to register the listener after a click. For most Crisp event listeners, **gtm.dom** is more reliable because the listener is ready before the visitor interacts with the chatbox.

---

# ${color}[#0080dd](Create the CrispInteractions trigger)

Create a **Custom Event** trigger in GTM with the event name `CrispInteractions`.

![CrispInteractions custom event trigger](https://storage.crisp.chat/users/helpdesk/website/87ae2703583ac800/cleanshot-2025-02-24-at-120152_1x4bqvx.png =1000xauto)

This trigger fires when the listener pushes this event to the data layer:

```javascript
dataLayer.push({
  event: "CrispInteractions",
  eventCategory: "chatbox",
  eventAction: "message_sent"
});
```

---

# ${color}[#0080dd](Create the Google Ads conversion tag)

Create a **Google Ads Conversion Tracking** tag in GTM, then connect it to the **CrispInteractions** trigger.

![Google Ads conversion tag in GTM](https://storage.crisp.chat/users/helpdesk/website/87ae2703583ac800/cleanshot-2025-02-24-at-120210_1t8lvyq.png =1000xauto)

If your container does not already include a **Conversion Linker** tag, create one as part of the setup.

![Google Ads Conversion Linker tag](https://storage.crisp.chat/users/helpdesk/website/87ae2703583ac800/cleanshot-2025-02-24-at-120225_1n97i1l.png =1000xauto)

In the Google Ads conversion tag, fill in the values provided by Google Ads.

![Google Ads conversion tag fields](https://storage.crisp.chat/users/helpdesk/website/87ae2703583ac800/cleanshot-2025-02-24-at-120239_wlslwi.png =1000xauto)

__The required values usually include:__
* **Conversion ID** → the identifier of your Google Ads conversion tag
* **Conversion Label** → the label attached to the specific conversion action
* **Conversion Value** → optional, depending on how you measure conversion value

You can find these values from your Google Ads conversion action settings.

![Google Ads tools and settings menu](https://storage.crisp.chat/users/helpdesk/website/87ae2703583ac800/cleanshot-2025-02-24-at-120257_wxcm43.png =1000xauto)

Open the conversion action, choose **Use Google Tag Manager**, then copy the values into GTM.

![Google Ads tag configuration values](https://storage.crisp.chat/users/helpdesk/website/87ae2703583ac800/cleanshot-2025-02-24-at-120317_1qhrkra.png =1000xauto)

Finally, attach the **CrispInteractions** trigger to the Google Ads conversion tag, save the tag, test the workspace, and publish your GTM changes.

![CrispInteractions trigger attached to the Google Ads tag](https://storage.crisp.chat/users/helpdesk/website/87ae2703583ac800/cleanshot-2025-02-24-at-120332_1e7xsnv.png =1000xauto)

---

# ${color}[#0080dd](Test before publishing)

Use GTM preview mode and send a test message through your Crisp chatbox. Confirm that the listener loads, the **CrispInteractions** event appears in the data layer, and the Google Ads conversion tag fires only when expected.

|| Publish the GTM workspace only after the preview test confirms that the conversion fires once per intended visitor action.
