Formidable Forms + LinkedIn Ads Conversion Tracking Setup
I see this exact setup broken in about 60% of B2B accounts I audit. The issue? Most people try to use LinkedIn’s auto-event detection with Formidable Forms, which misses 30-40% of form submissions because Formidable doesn’t trigger standard form events that LinkedIn expects. You need to hook into Formidable’s specific frmFormComplete event and push it to LinkedIn manually.
What You’ll Have Working By The End
- Formidable Forms submissions automatically tracked as LinkedIn Ads conversions
- Real-time conversion data in LinkedIn Campaign Manager
- Attribution data connecting LinkedIn clicks to your form completions
- Debug visibility into which forms are firing and when
- Cross-referenced conversion counts between your WordPress admin and LinkedIn
Prerequisites
- WordPress admin access with Formidable Forms Pro installed
- Google Tag Manager container implemented on your site
- LinkedIn Ads account with Campaign Manager access
- LinkedIn Insight Tag already installed (base tracking code)
- At least one conversion action created in LinkedIn Campaign Manager
Step 1: Set Up the Formidable Forms Data Layer Push
First, you need to capture Formidable’s frmFormComplete event and push the conversion data to your data layer. Add this code to your theme’s functions.php file or in a custom plugin:
function track_formidable_conversions() {
?>
<script>
jQuery(document).ready(function($) {
$(document).on('frmFormComplete', function(event, form, response) {
// Get form details
var formId = response.form_id || form.find('input[name="form_id"]').val();
var formTitle = response.form_title || 'Formidable Form';
// Push conversion event to data layer
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'formidable_form_submit',
'form_id': formId,
'form_title': formTitle,
'conversion_type': 'lead',
'conversion_value': 1
});
console.log('Formidable form submitted - Form ID: ' + formId);
});
});
</script>
<?php
}
add_action('wp_footer', 'track_formidable_conversions');
This hooks into Formidable’s completion event and pushes structured data to your data layer that GTM can pick up.
Step 2: Create the GTM Trigger
In Google Tag Manager, create a new trigger to catch your Formidable form submissions:
- Go to Triggers → New
- Trigger Type: Custom Event
- Event Name:
formidable_form_submit - This trigger fires on: All Custom Events
- Name it: “Formidable Forms - All Submissions”
If you want to track specific forms only, add a condition:
- Fire this trigger when: Event equals
formidable_form_submit - And:
form_idequals[your specific form ID]
Step 3: Set Up LinkedIn Conversion Tag in GTM
Create the LinkedIn Ads conversion tag that will fire when your trigger activates:
- Go to Tags → New
- Tag Type: Custom HTML
- HTML Code:
<script>
// LinkedIn conversion tracking
window.lintrk = window.lintrk || function(a,b){window.lintrk.q=window.lintrk.q||[];window.lintrk.q.push([a,b])};
// Fire the conversion event
lintrk('track', {
conversion_id: YOUR_CONVERSION_ID_HERE,
conversion_value: {{DLV - conversion_value}},
currency: 'USD'
});
// Debug logging
console.log('LinkedIn conversion fired - Form ID: ' + {{DLV - form_id}});
</script>
- Triggering: Select your “Formidable Forms - All Submissions” trigger
- Name it: “LinkedIn Ads - Formidable Form Conversion”
Replace YOUR_CONVERSION_ID_HERE with your actual LinkedIn conversion ID from Campaign Manager → Analyze → Conversions.
Step 4: Create Data Layer Variables
You’ll need these variables in GTM to pass form data to LinkedIn:
Variable 1: Form ID
- Variable Type: Data Layer Variable
- Data Layer Variable Name:
form_id - Name: “DLV - form_id”
Variable 2: Conversion Value
- Variable Type: Data Layer Variable
- Data Layer Variable Name:
conversion_value - Name: “DLV - conversion_value”
Variable 3: Form Title
- Variable Type: Data Layer Variable
- Data Layer Variable Name:
form_title - Name: “DLV - form_title”
Step 5: Set Up Client-Side GTM Integration
For faster loading and better reliability, implement Client-Side GTM alongside your regular container:
- Add this to your theme’s
<head>section:
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXXX');</script>
<!-- End Google Tag Manager -->
-
In your Client-Side GTM container, create a LinkedIn Insight Tag:
- Tag Type: LinkedIn Insight Tag
- Partner ID: Your LinkedIn Partner ID
- Triggering: All Pages
-
Create a conversion tag that listens for your data layer event:
- Tag Type: LinkedIn Insight Tag
- Track Type: Event
- Conversion ID: Your LinkedIn conversion ID
- Triggering: Your Formidable form trigger
This approach reduces loading time by about 200-300ms compared to server-side only setups.
Testing & Verification
Debug in GTM Preview Mode
- Enter GTM Preview Mode and submit a test form
- Check the Summary: Look for your “formidable_form_submit” event
- Verify Tag Firing: Confirm your LinkedIn conversion tag fired
- Check Variables: Ensure form_id, form_title, and conversion_value populated correctly
- Console Check: Look for your debug messages in browser console
Verify in LinkedIn Campaign Manager
- Go to Campaign Manager → Analyze → Conversions
- Check Recent Conversions: Should see test submission within 5-15 minutes
- Verify Attribution: Click on conversion to see associated LinkedIn click data
Cross-Check Numbers
Compare these two sources weekly:
- WordPress Admin → Formidable → Entries: Total form submissions
- LinkedIn Campaign Manager: Total conversions
Acceptable variance is 5-15%. Higher variance usually means tracking issues or bot submissions inflating WordPress counts.
Troubleshooting
Problem: GTM preview shows the event firing but no LinkedIn conversion recorded
Check your conversion ID in the tag matches exactly what’s in LinkedIn Campaign Manager. Also verify your LinkedIn Insight Tag base code is installed and firing on all pages.
Problem: Forms submit but no “frmFormComplete” event in GTM
Formidable’s AJAX submissions sometimes don’t fire the complete event properly. Add this fallback to your tracking code: $(document).on('frmAfterSubmit', function(event, form, response) { as an alternative hook.
Problem: LinkedIn shows conversions but with no attribution data
Your LinkedIn Insight Tag base code isn’t firing before users submit forms. Move the base tag higher in your page load order, ideally in the <head> section rather than via GTM.
Problem: Conversion value always shows as 1 instead of actual form data
You’re not extracting the actual value from your Formidable form fields. Modify the data layer push to grab specific field values: 'conversion_value': response.item_meta[field_id] || 1
Problem: Multiple conversions firing for single form submission
Formidable sometimes fires frmFormComplete multiple times on complex multi-page forms. Add a flag to prevent duplicate firing: if (response.success && !window.frmTracked) { window.frmTracked = true; // your tracking code }
Problem: Forms work fine but LinkedIn conversions stop tracking after theme update
Your functions.php tracking code got overwritten. Always put custom tracking code in a child theme or custom plugin to survive updates.
What To Do Next
Now that your Formidable Forms are tracking in LinkedIn Ads, consider these related setups:
- Formidable Forms + Google Ads Conversion Tracking — Track the same forms in Google Ads for cross-platform comparison
- Formidable Forms + Meta Ads Conversion Tracking — Expand tracking to Facebook and Instagram campaigns
- Formidable Forms + GA4 Conversion Tracking — Set up Analytics tracking for deeper user behavior analysis
- Formidable Forms to HubSpot Integration — Push your form data directly into your CRM for lead management
Need help auditing your current tracking setup? I offer free 15-minute tracking audits where I’ll review your LinkedIn conversion setup and identify any gaps in your attribution data.
This guide is part of the LinkedIn Ads Conversion Tracking Hub — complete guides for tracking LinkedIn conversions across all major form tools and platforms.