GA4 & Typeform Integration: Tracking Multiple Forms with Custom Params

Typeform Integration for Multiple Forms โ€“ Event Category not showing up

I have a website where we use multiple Typeforms to gather sign-ups for different events. I’ve added tracking via both GA4 to all forms on our site, but I seem to be running into some problems. 

I want to filter my TypeformSubmit data according to the sources it is coming from โ€“ but I can’t seem to find Event Category’as a sort function on GA4. In thisย tutorialย from Typeform, sorting by Event Category automatically comes up โ€“ but I can’t seem to find this function.

Does anyone have any advice on how to sort this out? I’ve attached the data I can see below โ€“ apart from the total event count. 

The short answer is:

What is the best way to track multiple Typeforms in Google Analytics 4?

The reason you can’t find ‘Event Category’ in GA4 is that it was a standard field in Universal Analytics (UA) that was removed and replaced with a more flexible event parameter model in GA4.

The TypeformSubmit event you’re seeing is a custom event.

To filter by form source, you need to send an additional event parameter, such as form_source or form_name with a value that identifies the specific form, alongside the TypeformSubmit event.

Typeform’s tutorial likely refers to an older setup or a specific implementation that automatically populated the event_category parameter which is not a standard GA4 practice anymore.

The long answer is:

To properly track and filter multiple forms, you need to implement a solution that sends a unique identifier for each form with the event.

While the current Typeform to GA4 integration seems to be sending a generic TypeformSubmit event, it’s not including the specific context you need for filtering.

A highly effective and cost-efficient solution to this problem is to use a combination of the Google Analytics Measurement Protocol, the Typeform API/webhooks, and a server-side tagging solution like Stape or Google Cloud Platform (GCP) along with Google Tag Manager.

Here’s how this advanced setup works: instead of relying solely on the client-side integration which might be limited, you’d use Typeform’s webhooks or API to send data to a server when a form is submitted.

This server, which could be Stape’s server-side GTM container or a simple function on GCP, would then process the submission data.

Because the server receives all the form data, including a unique identifier for the form, it can construct a precise hit and send it directly to GA4 via the Google Analytics Measurement Protocol.

The Measurement Protocol allows you to send data from any internet-connected system directly to GA4 and, critically, lets you define any custom event parameters you want.

You could define a custom parameter like form_source or event_context and populate it with the name of the specific form that was submitted.

This approach is superior because it’s more reliable than client-side tracking, as it’s not affected by ad-blockers or browser restrictions, and it gives you complete control over the data schema.

Using Stape as the server-side endpoint is often cheap, sometimes even free at low volumes, making this a highly economical, powerful, and scalable way to solve your multi-form tracking and filtering issue, ensuring all your TypeformSubmit events are correctly attributed with the specific form source for easy filtering in GA4’s custom reports.

About The Author