Are your Elementor form submissions working, but Google Ads isn’t accurately recording your leads?
This is a common tracking issue for businesses running lead-generation campaigns.
With the right Elementor Form Tracking setup, you can track when someone submits a contact, quote, booking, or inquiry form and connect that conversion data back to your Google Ads campaigns.
How to Setup Elementor Form Tracking? check this video
Step 1: Turn On Enhanced Conversions in Google Ads
Go to Goals > Conversions > Settings, open Enhanced conversions for web, turn it on, and choose Google Tag Manager as the setup method.
Step 2: Add the Elementor Form Listener in GTM
Create a Custom HTML tag, paste the code below, and fire it on All Pages (or only pages with forms).
/*
* Author: Amit Kumar Gupto
* Linkedin: https://www.linkedin.com/in/amitkumargupto/
* Youtube: https://www.youtube.com/@adsmetricx
* Email: marketingagencyshop@gmail.com
*/
<script>
(function() {
var origXMLHttpRequest = XMLHttpRequest;
XMLHttpRequest = function() {
var requestURL;
var requestMethod;
var requestBody;
var xhr = new origXMLHttpRequest();
var origOpen = xhr.open;
var origSend = xhr.send;
// Override the `open` function.
xhr.open = function(method, url) {
requestURL = url;
requestMethod = method;
return origOpen.apply(this, arguments);
};
xhr.send = function(data) {
// Only proceed if the request URL matches what we're looking for.
if (/.+\/admin-ajax\.php/.test(requestURL)) {
xhr.addEventListener('load', function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
if (response.success && (data instanceof FormData)) {
requestBody = {};
data.forEach(function(value, key) {
requestBody[key] = value;
});
if(requestBody.action === "elementor_pro_forms_send_form") {
window.dataLayer = window.dataLayer || [];
dataLayer.push({
event: 'elementor_form_submit',
inputs: requestBody
});
}
}
}
}
});
}
return origSend.apply(this, arguments);
};
return xhr;
};
})();
</script>
Step 3: Create the Variables and Trigger
Data Layer Variables:
DLV - user_email→user_emailDLV - user_phone→user_phoneDLV - form_name→form_name
User-Provided Data variable: Choose Manual configuration, then map Email to DLV - user_email and Phone to DLV - user_phone. GTM hashes this automatically before it’s sent.
Trigger: Custom Event, event name elementor_form_submit.
Step 4: Set Up the Google Ads Conversion Tag
Create a Google Ads Conversion Tracking tag:
- Add your Conversion ID and Label
- Check Include user-provided data from your website
- Select your User-Provided Data variable
- Trigger:
elementor_form_submit
Make sure a Conversion Linker tag is also firing on all pages.
Step 5: Send the Lead to GA4
Create a GA4 Event tag:
- Event name:
generate_lead - Parameter:
form_name→{{DLV - form_name}} - Trigger:
elementor_form_submit
Make sure a GA4 Measurement ID tag is also firing on all pages.
Once live, give Google Ads a few days, then check the Diagnostics tab on your conversion action to confirm Enhanced Conversions is being received.
Need help fixing your Google Ads or Elementor form tracking?
AdsMetricx can help you set up accurate Google Ads Conversion Tracking, GA4, GTM, and Enhanced Conversions.