Google Tag Manager
Track how people interact with your forms using Google Tag Manager (GTM). Rowform automatically pushes events to the GTM dataLayer, so you can route them to Google Analytics, Meta Pixel, LinkedIn Insight Tag, or any other tool connected to your GTM container.
This is a Pro feature.
Setting Up Google Tag Manager
- Open your form in the Builder.
- Click the Integrate tab.
- Find the Google Tag Manager card and click it.
- Enter your GTM Container ID (e.g.,
GTM-ABC1234). - Click Connect GTM.
Once connected, the GTM scripts are automatically injected whenever someone views your published form.
Finding Your Container ID
- Open Google Tag Manager .
- Select your container (or create one).
- Go to Admin → Container Settings.
- Copy the Container ID — it starts with
GTM-followed by letters and numbers.
How It Works
- When a respondent opens your published form, Rowform injects the standard GTM snippet into the page.
- As the respondent navigates and interacts with the form, events are pushed to the
dataLayer. - You set up triggers in your GTM workspace to listen for these events and fire tags (Google Analytics, conversion pixels, etc.).
- GTM scripts are never injected in the builder preview — only on published forms.
Events
Rowform pushes four events to the dataLayer:
rowform_form_start
Fires once when the form finishes loading and is displayed to the respondent.
| Field | Description |
|---|---|
form_id | The unique ID of the form |
form_title | The title of the form |
total_questions | Number of answerable questions (excludes statements and thank-you screens) |
rowform_question_view
Fires each time a new question is displayed.
| Field | Description |
|---|---|
form_id | The unique ID of the form |
form_title | The title of the form |
question_id | The unique ID of the question |
question_type | The question type (e.g., multiple_choice, short_text) |
question_title | The question label text |
question_number | The position of the question (1-based) |
total_questions | Number of answerable questions |
rowform_question_answer
Fires each time a respondent answers a question. For multi-select questions, this fires on every selection change.
The payload fields are the same as rowform_question_view.
Note: The actual answer value is never included in the event. Only question metadata is sent to protect respondent privacy.
rowform_form_submit
Fires when the form is successfully submitted.
| Field | Description |
|---|---|
form_id | The unique ID of the form |
form_title | The title of the form |
total_questions | Number of answerable questions |
total_answered | Number of questions the respondent answered |
Example: Tracking in Google Analytics 4
To send Rowform events to GA4 via GTM:
- In GTM, create a new Trigger of type Custom Event.
- Set the event name to
rowform_form_submit(or any of the four events above). - Create a new Tag of type Google Analytics: GA4 Event.
- Select your GA4 configuration tag and set the event name.
- Attach the trigger from step 2.
- Publish your GTM container.
Repeat for each event you want to track.
Managing the Connection
Connection Status
The Integrate panel shows:
- The connected Container ID.
- The date the connection was established.
Disconnecting
To remove GTM from your form:
- Go to the Integrate tab.
- Click the Google Tag Manager card.
- Click Disconnect.
This immediately stops GTM scripts from loading on your published form.
Privacy
Rowform never sends answer values or personally identifiable information (PII) to the dataLayer. Only form and question metadata (IDs, types, titles, positions) are included in events.
However, the GTM container script itself has access to the page DOM. Any tags you configure in your GTM workspace are your responsibility — ensure they comply with your privacy policy and applicable regulations (GDPR, CCPA, etc.).
Bot Protection
GTM events only fire for real respondents. Spam and bot submissions are blocked by Cloudflare Turnstile before any form interaction events are tracked.
Tips
- Start by tracking just
rowform_form_submitto measure conversion rates, then add the other events for deeper funnel analysis. - Use
rowform_question_viewwithquestion_numberandtotal_questionsto identify where respondents drop off. - GTM works alongside all other integrations — you can use it together with Slack, Webhooks, and Email Notifications on the same form.
- Remember to publish your GTM container after adding triggers and tags — unpublished changes won’t fire.