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:
- Install the GTM tag that captures click IDs
- Include the captured values in your webhook payload
Step 1: Install the GTM Tag
- Open Google Tag Manager and select your container.
- Go to Tags > New.
- Name the tag
True Conversions - Click ID Capture. - Choose Tag Type > Custom HTML.
- Copy the entire contents of
gtm-template.htmland paste it into the HTML field. - Under Triggering, select All Pages (fires on every page view).
- 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
- Visit your landing page with a test parameter, e.g.,
https://yoursite.com/?gclid=test123 - Open browser DevTools > Application > Cookies.
- Confirm you see
_tc_gclidwith valuetest123. - 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 |
|
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 |