ConvertKit Form GTM Event Listener
Track ConvertKit form submissions in Google Tag Manager. Capture convertKitFormId and convertkitUserId and fire GA4 events on converkitform.submit.
Event fired
converkitform.submitKey variable
convertKitFormIdConvertKit
Overview
ConvertKit is an email marketing platform popular with creators and bloggers. Its embedded subscription forms use data-sv-form and data-uid HTML attributes. This listener uses a document-level submit event listener to detect ConvertKit form submissions and push them to the dataLayer.
Event fired: converkitform.submit
Variables: convertKitFormId, convertkitUserId
Why Use This Listener
ConvertKit forms do not natively push to the dataLayer. Without this listener, email subscriber sign-ups are invisible to GTM, meaning you can't fire Google Ads or Meta pixels on newsletter sign-ups, or track them in GA4.
Common Use Cases
- Track newsletter subscriber sign-ups as GA4 conversions
- Fire Google Ads RLSA audiences on ConvertKit form submitters
- Measure which content pieces drive the most sign-ups (via page URL + form ID)
- Connect sign-up events to downstream revenue in GA4
Installation
<!-- GTM Custom HTML Tag: ConvertKit Form Listener -->
<script>
(function() {
document.addEventListener('submit', function(a) {
if (a.target.getAttribute('data-sv-form')) {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'converkitform.submit',
'convertKitFormId': a.target.getAttribute('data-sv-form'),
'convertkitUserId': a.target.getAttribute('data-uid')
});
}
}, true);
})();
</script>Fire on: All Pages (Pageview). Uses capture phase (
trueas third argument) for reliable detection.
Data Layer Output
{
"event": "converkitform.submit",
"convertKitFormId": "1234567",
"convertkitUserId": "abcdef12"
}Trigger Configuration
Trigger Type: Custom Event
Event Name: converkitform.submit
Note: GTM event names with dots are supported, use the exact string converkitform.submit.
Variables to Capture
| Variable Name | DL Key | Example |
|---|---|---|
| DLV – CK Form ID | convertKitFormId | "1234567" |
| DLV – CK User ID | convertkitUserId | "abcdef12" |
GA4 Mapping
| GA4 Event | Parameter | Value |
|---|---|---|
sign_up | method | "convertkit" |
sign_up | form_id | DLV – CK Form ID |
generate_lead | form_id | DLV – CK Form ID |
Debugging
| Problem | Cause | Fix |
|---|---|---|
| Event not firing | ConvertKit using popup embed | Popup forms may use different event method |
convertKitFormId null | Non-CK form captured | The data-sv-form check filters correctly |
Best Practices
- Always capture
convertKitFormId, you may have multiple CK forms on different pages - Use GA4's
sign_upevent (notgenerate_lead) for newsletter subscriptions, aligns with GA4 taxonomy - Pass the Page URL as a parameter to identify which content drives sign-ups