Google Tag Manager
Integrating Google Tag Manager (GTM) with your embedded forms allows you to track useful user interactions and trigger events to Google Analytics. This guide will walk you through the steps required to enable the integration for your form and will demonstrate a basic implementation in Google Tag Manager.
Using this integration requires some technical knowledge of Google Tag Manager and requires that Google Tag Manager already be installed on your website.
Enabling the Google Tag Manager Integration
- Navigate to the Integrations page from the main menu.
- Scroll through the list of available integrations until you find Google Tag Manager
- Click the “Add integration” button to open the configuration page
- From the configuration page, click the toggle switch (top-right) to enable


What is sent to Google Tag Manager
The integration sends several events and data properties to the GTM data layer.
Events
All events prefixed with reform.
onFormLoaded
onPageChanged
- When a page is loaded.form_step_#_complete
: form_step_1_complete, form_step_2_complete, etc.onFormCompleted
onPageSubmitted
onInputChanged
- Triggered by any change in any block.
Properties
All properties are in the reformContext
object
Sent with every event:
form.id
form.name
form.slug
page.id
page.slug
page.pageNumber
- Used with 'step complete' eventblock
&answer
- The block ID and answer related to that event. ForonInputChanged
, it is the block changed. For other events, it is the last block answered.
Sent with onFormCompleted
:
answers
- An object where the keys are block labels and the values are block answers.
Basic GTM Implementation
This section demonstrates a GTM implementation that sends 4 Google Analytics 4 (GA4) events and should be sufficient for most Reform users. It utilizes some, but not all, of the events and data properties available.
This implementation uses best-practice conventions for both Google Tag Manager and also Google Analytics event naming.
Variables
All data layer variables use "Version 2"
- Const - GA4 - Measurement ID
- Variable Type: Constant
- Variable Value: [Your GA4 Data Stream Measurement ID]
- DLV - Reform - Form ID
- Variable Type: Data Layer Variable
- Data Layer Variable Name:
reformContext.form.id
- DLV - Reform - Form ID
- Variable Type: Data Layer Variable
- Data Layer Variable Name:
reformContext.form.id
- DLV - Reform - Form Name
- Variable Type: Data Layer Variable
- Data Layer Variable Name:
reformContext.form.name
- CJS - Reform - Event Name
- Variable Type: Custom JavaScript
- Custom JavaScript
// Removes "reform." from Reform event names. Used for reform step events // Example: "reform.form_step_1_complete" to "form_step_1_complete" function() { var str = {{Event}}; return str ? str.substring(7) : ''; }
Triggers
All triggers fire on "All Custom Events"
- Event - Reform - Form Displayed
- Trigger Type: Custom Event
- Event name:
reform.onFormLoaded
- Event - Reform - Form Started
- Trigger Type: Custom Event
- Event name:
reform.onInputChanged
- Event - Reform - Form Step Complete
- Trigger Type: Custom Event
- Event name:
^reform\.form_step_\d+_complete$
['Use regex matching' checked]
- Event - Reform - Form Submitted
- Trigger Type: Custom Event
- Event name:
reform.onFormCompleted
Tags
- GA4 - Reform - Form Displayed
- Tag Type: Google Analytics: GA4 Event
- Measurement ID: {{Const - GA4 - Measurement ID}}
- Event Name:
form_displayed
- Event Parameters:
- form_id | {{DLV - Reform - Form ID}}
- form_name | {{DLV - Reform - Form Name}}
- Trigger: Event - Reform - Form Displayed
- GA4 - Reform - Form Started
- Tag Type: Google Analytics: GA4 Event
- Measurement ID: {{Const - GA4 - Measurement ID}}
- Event Name:
form_started
- Event Parameters:
- form_id | {{DLV - Reform - Form ID}}
- form_name | {{DLV - Reform - Form Name}}
- ⭐ Advanced Settings: Tag firing options: Once per page
- Trigger: Event - Reform - Form Started
- GA4 - Reform - Form Step Complete
- Tag Type: Google Analytics: GA4 Event
- Measurement ID: {{Const - GA4 - Measurement ID}}
- Event Name:
form_step_completed
- Event Parameters:
- form_id | {{DLV - Reform - Form ID}}
- form_name | {{DLV - Reform - Form Name}}
- form_step | {{CJS - Reform - Event Name}}
- Trigger: Event - Reform - Form Step Complete
- GA4 - Reform - Form Submitted
- Tag Type: Google Analytics: GA4 Event
- Measurement ID: {{Const - GA4 - Measurement ID}}
- Event Name:
generate_lead
- Event Parameters:
- form_id | {{DLV - Reform - Form ID}}
- form_name | {{DLV - Reform - Form Name}}
- Trigger: Event - Reform - Form Submitted

Please use caution when sending form answer data to Google Analytics. Google prohibits sending Personally Identifiable Information (PII) to Google Analytics. This includes email addresses, names, and phone numbers.
If you have any specific needs, suggestions or have questions, please contact us at [email protected]. We're here to assist you!