Google Analytics logo

Record webinar registrations as a conversion event

Every webinar registration fires a GA4 sign_up event carrying the session name, so registrations can be attributed campaign by campaign.

When this happens

New submission on your webinar registration form

Do this

Send a GA4 sign_up event, or a custom event_registration event, with the webinar name as a parameter

One-directional. A submission triggers the action — nothing is written back into your form.

Webinar promotion runs across paid social, an email push and whatever organic traffic the topic pulls in. The registration total arrives in the webinar tool with none of that attached, which makes cost per registration a manual reconciliation every time.

Events teams use this to close the loop before the next campaign brief. One event per submission, tagged with the session name and how the registrant heard about it, puts registrations in the same acquisition table as the sessions that produced them.

Setting it up

  1. 1

    Publish one webinar registration form per session in formformform, so the session name is fixed rather than typed. A form per session is also what lets you switch a Zap off once registration closes.

  2. 2

    In Google Analytics, take the Measurement ID from your web data stream and create a Measurement Protocol API secret.

  3. 3

    Set up the Zap: formformform as the trigger app, New Submission as the event, and the form for the session you are promoting.

  4. 4

    Choose the Measurement Protocol action and settle the event name. sign_up keeps registrations inside GA4's recommended set; a custom event_registration keeps them apart from newsletter signups if you already send those. Pick one and use it for every session.

  5. 5

    Add a webinar_name parameter as a constant set to the session title. Because there is a form per session, it is typed once in the Zap and cannot be misspelled by a registrant.

  6. 6

    Map "How did you hear about this webinar?" into a registration_source parameter, and "Company Size" and "Job Title" into audience parameters if you report on registrant fit.

  7. 7

    Register webinar_name, registration_source and any audience parameters as event-scoped custom dimensions before the first promotion goes live.

  8. 8

    Mark the event as a key event, run one test registration through, confirm it in Realtime, then switch the Zap on.

What maps where

Using the Webinar Registration Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.

Form fieldGoogle Analytics
How did you hear about this webinar?registration_source event parameter, the self-reported channel to set against GA4's own attribution
Job Titlejob_role event parameter, for judging registrant fit campaign by campaign
Company Sizecompany_size event parameter, registered as an event-scoped custom dimension
Email Updatesmarketing_optin parameter recorded as true or false, showing how many registrants also join the list
Work EmailHashed into user_id where you use one; the address goes to the webinar platform, not to Google Analytics

Variations worth knowing

Track attendance next to registration

Registration and attendance are different numbers. Keep this Zap for the submission and add a second Zap from your webinar platform that sends an attended event with the same webinar_name. GA4 then holds both, and the drop between them is your show rate.

Run one form for a whole series

If a single form suits a recurring series better, add a question naming the session and map that answer into webinar_name instead of a constant. Keep the options a fixed list, since free text produces a new dimension value for every spelling people use.

If something isn't arriving

Registrations take hours to appear in the reports

Realtime shows the event within seconds; the standard reports are what lag. GA4 processing usually takes several hours and can take a day, so check Realtime for delivery and give the acquisition tables until the next morning before deciding a registration went missing.

Some registrations never produce an event at all

Look at the Zap history first. A missing or revoked Measurement Protocol API secret, or a filter step that quietly excluded the run, both end with no event and no complaint from Google Analytics — the Measurement Protocol returns success even when the payload is wrong.

Frequently asked questions

Can I attribute registrations to a specific paid campaign?

Only where the event can be tied to the visitor's session. The event carries the client ID the Zap supplies, so if the real one cannot be passed, use the self-reported source parameter alongside your landing page reports rather than expecting exact campaign credit.

Should I use sign_up or a custom event name for webinars?

sign_up is recommended by GA4 and works in reports with no setup, but it merges with every other signup you send. If webinars need their own line, use a custom event_registration name. Consistency across sessions matters more than which one you choose.

Do registrants need to accept cookies for this to work?

The event is sent server-side from Zapier, so it does not depend on the browser or on your on-page tag firing. That also puts it outside your consent banner, so say on the form what you record and keep personal details out of the event.

Related automations

Build the form first

The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.

Start free