True Conversions - Installation Guide

Overview

True Conversions receives conversion events from your forms/CRM via a webhook, matches them to ad platform click IDs, and uploads the data to Google Ads, Meta, and TikTok as offline conversions.

For matching to work, the click ID (gclid, fbclid, ttclid) must be captured when the visitor lands on your site and included in the form submission payload.

This guide walks through the two-step setup:

  1. Install the GTM tag that captures click IDs
  2. Include the captured values in your webhook payload

Step 1: Install the GTM Tag

  1. Open Google Tag Manager and select your container.
  2. Go to Tags > New.
  3. Name the tag True Conversions - Click ID Capture.
  4. Choose Tag Type > Custom HTML.
  5. Copy the entire contents of gtm-template.html and paste it into the HTML field.
  6. Under Triggering, select All Pages (fires on every page view).
  7. Click Save, then Submit to publish.

What the tag does

  • On every page load, it reads these URL parameters: gclid, fbclid, ttclid, utm_source, utm_medium, utm_campaign.
  • Each value is stored in a first-party cookie (e.g., _tc_gclid) with a 90-day expiry.
  • Cookies are only written when the parameter is present — internal page navigations never overwrite previously captured values.
  • A global function window.getTCParams() is exposed so your form scripts can retrieve the stored values.

Verifying the installation

  1. Visit your landing page with a test parameter, e.g., https://yoursite.com/?gclid=test123
  2. Open browser DevTools > Application > Cookies.
  3. Confirm you see _tc_gclid with value test123.
  4. In the Console, run window.getTCParams() — it should return { gclid: "test123" }.

Step 2: Include Click IDs in Your Webhook Payload

When a form is submitted, merge the captured parameters into the data you send to your True Conversions webhook.

Example: Vanilla JavaScript form

document.querySelector('#my-form').addEventListener('submit', function (e) {
  e.preventDefault();

  var formData = {
    email: document.querySelector('#email').value,
    phone: document.querySelector('#phone').value,
    first_name: document.querySelector('#first_name').value,
    event_name: 'lead',
  };

  // Merge click IDs and UTM params from True Conversions tag
  var tc = window.getTCParams();
  Object.assign(formData, tc);

  fetch('YOUR_WEBHOOK_URL', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(formData),
  });
});

Example: Hidden fields approach

If you use a form builder (Elementor, Typeform, etc.) that doesn't allow custom JS on submit, you can populate hidden fields instead.

Add a second Custom HTML tag in GTM that fires after the page loads:

<script>
(function () {
  var tc = window.getTCParams();
  var fields = {
    gclid: tc.gclid || '',
    fbclid: tc.fbclid || '',
    ttclid: tc.ttclid || '',
  };
  for (var key in fields) {
    var el = document.querySelector('input[name="' + key + '"]');
    if (el) el.value = fields[key];
  }
})();
</script>

Then add hidden <input name="gclid">, <input name="fbclid">, <input name="ttclid"> fields to your form. These will be submitted along with the rest of the form data and forwarded to your webhook by your CRM or backend.


Step 3: Configure Field Mapping

In the True Conversions dashboard, go to your account's Field Mapping page and map the raw field names from your webhook payload to the normalized fields:

Raw field (from your form) Normalized field
email email
phone phone
first_name first_name
last_name last_name
gclid gclid
fbclid fbclid
ttclid ttclid
event_name event_name

Adjust the "Raw field" column to match whatever keys your form/CRM actually sends.


Troubleshooting

Symptom Cause Fix
_tc_gclid cookie not appearing GTM tag not firing or wrong trigger Check GTM preview mode; ensure trigger is "All Pages"
getTCParams() returns empty object Visitor landed without click ID parameters Normal — cookies are only set when parameters are in the URL
Match rate is 0% in dashboard Click IDs not reaching the webhook payload Verify that getTCParams() values are merged into the POST body
Google match rate low but email is present GCLID missing from the payload Ensure the GTM tag fires on the landing page where ?gclid= appears, and the cookie persists to the thank-you/conversion page

Cookie Reference

Cookie name Source parameter Expiry
_tc_gclid gclid 90 days
_tc_fbclid fbclid 90 days
_tc_ttclid ttclid 90 days
_tc_utm_source utm_source 90 days
_tc_utm_medium utm_medium 90 days
_tc_utm_campaign utm_campaign 90 days