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:
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
or form_source
with a value that identifies the specific form, alongside the form_name
TypeformSubmit
event.
Typeform’s tutorial likely refers to an older setup or a specific implementation that automatically populated the
parameter which is not a standard GA4 practice anymore.event_category
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
or form_source
and populate it with the name of the specific form that was submitted.event_context
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.