Events Your Site Sends to Tag Manager

Every dataLayer event, when it fires and the fields it carries.


Your site describes what visitors do by pushing small messages, called events, into the page's dataLayer. Google Tag Manager reads them and passes them on to GA4, Google Ads or anything else you set up. This page lists every event, when it fires, and the fields it carries.

The events are there on every public page whether or not you've connected a container. Nothing reaches GA4 or Google Ads until you add tags in GTM that use them.

Using an event in Tag Manager

  • To fire a tag on an event, create a trigger of type Custom Event and enter the event name exactly as it appears below. Names are case-sensitive.
  • To read a field, create a variable of type Data Layer Variable with the field name, for example page_type. For a field inside another field, join the names with a dot, for example enhanced_conversion_data.email.

Page views

page_view

Sent once on every public page, before Tag Manager loads, so its fields are available to any tag on that page.

  • page_type: what kind of page it is. One of home, page, blog_list, blog_post, docs_list, docs_article, gig_list, gig, project, thank_you or template_gallery.
  • content_id: the ID of the page, post, gig or project. Empty on the homepage and on listing pages.
  • content_title: its title.
  • ab_test and ab_variant: only on a page with a running A/B test. The test's ID, and whether this visitor sees the control or the variant.
  • site_type and tenant_plan: added on sites we host, for our own reporting. You can ignore them.

GA4 can record page views by itself as soon as its Google tag loads. If you also send a GA4 page view from this event, every visit is counted twice, so use one or the other.

Editor previews and template previews never send it, so your own editing doesn't show up as traffic.

blog_post_view and docs_article_view

Sent straight after page_view on a blog post or a documentation article, with the same content_id and content_title. You only need these if you want a trigger for posts alone; page_view already covers them.

gig_view

Sent after page_view on a gig's own page.

  • gig_id, gig_title and venue.
  • gig_date: the date of the show, such as 2026-11-14.

project_view

Sent after page_view on a project's own page, with project_id, project_title and category.

Forms

contact_form_start

Sent once per page view, the first time someone clicks into or changes a field on a form. Every form sends it under this same name, whether it's for contact, bookings or a newsletter, so one trigger covers them all. Comparing it with the submission event below shows how many people start a form but don't send it.

  • form_id: the form's ID. Empty for the site's built-in contact form.
  • form_name: the name you gave the form under Forms, or Contact form for the built-in one.

The submission event: generate_lead by default

Sent when a form has been submitted successfully: it passed the spam check and was saved. Failed or blocked attempts don't send it. If the form sends people to another page afterwards, it waits a moment first so the event can go out.

You choose its name per form under Forms, in the form's Enhanced conversions box (dataLayer event name). Giving every lead form the same name, such as generate_lead, means one trigger covers all of them; form_name still tells them apart. The built-in contact form always uses generate_lead.

  • form_id and form_name, as above.
  • enhanced_conversion_data: only when you've given form fields an enhanced-conversion type. It holds what the visitor typed into those fields, using Google's names: email, phone_number, first_name, last_name, street, city, region, postal_code and country.

Use enhanced_conversion_data for Google Ads enhanced conversions. It's personal information, and Google's policies forbid personal information in GA4 event parameters and user properties. So never add it to a GA4 event tag. Send the event to GA4 with form_name and leave the contact details out. (GA4 does have a separate, opt-in user-provided data collection feature for this kind of data. It's switched on in GA4's admin, not through event parameters.)

If the same page has more than one form, each submission carries only its own visitor's details, never fields left over from an earlier one.

Clicks

social_click

Someone clicked one of your social media icons. platform is facebook, youtube, instagram, linkedin or other, and url is the link.

gig_ticket_click

Someone clicked the ticket button on a gig's page, with gig_id, gig_title and link_url, the ticket link they followed. The ticket seller's own site is where the sale happens, so this is as close to a sale as your site can see.

project_link_click

Someone clicked a link on a project's page, with project_id, link_title and link_url.

filter_projects

Someone used the category buttons on a project grid. category is the one they chose, or all.

What is never sent

  • Nothing that identifies a visitor, except the contact details in enhanced_conversion_data when you've chosen to tag form fields.
  • Nothing from the admin panel, the page editor's preview or the template gallery's previews.

Every page is a full page load, so there are no in-page navigations to track separately: each new page sends its own page_view.