Skip to main content

PaperForm GTM Event Listener

Track PaperForm form submissions and step changes in Google Tag Manager. Capture form_ID, submission_ID, step data, and fire GA4 events on paperformSubmissionEvent.

paperformformsgtmga4lead-generationmulti-step

Key variable

form_ID

PaperForm

Overview

PaperForm is a versatile form and landing page builder. It dispatches two custom window events: PaperformSubmission for final form completions and PaperformPageChange for multi-step form navigation. This listener captures both events with rich context including form ID, submission ID, step data, and timestamps.

Events fired:

  • paperformSubmissionEvent, successful form submission
  • paperformStepChange, user navigates to next step

Variables: form_ID, submission_ID, paperForm_Step, paperForm_Total_Step, event_timestamp, formData

Why Use This Listener

PaperForm's multi-step tracking capability is unique, you can track funnel progression through form steps, calculate drop-off rates, and optimize individual steps. The submission event also provides a submission_ID for deduplication.

Common Use Cases

  • Track form completion as GA4 conversion event
  • Measure step-by-step drop-off in multi-page PaperForms
  • Capture submission ID for deduplication in GA4
  • Fire Google Ads conversions on form completion
  • Analyze which form steps have the highest abandonment

Installation

html
<!-- GTM Custom HTML Tag: PaperForm Listener -->
<script>
window.addEventListener('PaperformSubmission', function(e) {
  window.dataLayer = window.dataLayer || [];
  window.dataLayer.push({
    'event': 'paperformSubmissionEvent',
    'form_ID': e.detail.submission.form_id,
    'submission_ID': e.detail.submission.id,
    'event_timestamp': e.detail.submission.created_at,
    'formData': e.detail.submission.data
  });
});

window.addEventListener('PaperformPageChange', function(e) {
  window.dataLayer = window.dataLayer || [];
  window.dataLayer.push({
    'event': 'paperformStepChange',
    'form_ID': e.detail.form_id,
    'paperForm_Step': e.detail.current_page,
    'paperForm_Total_Step': e.detail.total_pages
  });
});
</script>

Fire on: All Pages (Pageview).

Data Layer Output

Submission Event

json
{
  "event": "paperformSubmissionEvent",
  "form_ID": "abc123",
  "submission_ID": "sub_xyz789",
  "event_timestamp": "2024-01-15T10:30:00Z",
  "formData": { "field_1": "value_1" }
}

Step Change Event

json
{
  "event": "paperformStepChange",
  "form_ID": "abc123",
  "paperForm_Step": 2,
  "paperForm_Total_Step": 4
}

Triggers to Create

TriggerEvent Name
CE – PaperForm SubmissionpaperformSubmissionEvent
CE – PaperForm Step ChangepaperformStepChange

Variables to Capture

Variable NameDL KeyExample
DLV – PF Form IDform_ID"abc123"
DLV – PF Submission IDsubmission_ID"sub_xyz789"
DLV – PF SteppaperForm_Step2
DLV – PF Total StepspaperForm_Total_Step4

GA4 Mapping

GA4 EventTriggerParameters
generate_leadPaperForm Submissionform_id, submission_id
form_progressPaperForm Step Changeform_id, step, total_steps

Compute completion percentage in GA4:

javascript
// Custom JS Variable
function() {
  return Math.round(({{DLV - PF Step}} / {{DLV - PF Total Steps}}) * 100) + '%';
}

Debugging

ProblemCauseFix
Events not firingPaperForm using older embedCheck PaperForm embed method
formData concernsContains PIIExclude from push or hash PII fields

Best Practices

  1. Use submission_ID for GA4 event deduplication
  2. Track step changes for funnel analysis in GA4 Explorations
  3. Exclude sensitive formData fields before pushing to dataLayer

Related Listeners

Free compliance and tracking tools

Check your cookie consent setup or audit your GA4 implementation - free, no login required.