Skip to content

Guide 114 · Container · GA4 + Tag Manager

Build a custom event trigger: fire a tag on a named event from the data layer

Checked 11 November 2026 · Verification: container fragment validated structurally (13 checks, all passed) · Steps traced to Tag Manager Help, opened 11 November 2026 · 5-minute read

Some events have no built-in trigger: a signup completing, a trial starting, a payment succeeding. The site reports them by pushing a named event to the data layer, and a custom event trigger waits for that exact name. Google's trigger page lists the Custom Event trigger, and the Measurement ID guide in the Day-1 container already proved the pattern — the purchase event tag in the GA4 base container fires on a custom event trigger when {{_event}} equals purchase. The worked example does the same for a signup: the site pushes {event: 'signup_complete'} and the tag fires.

Expected signal

After step 4, Preview mode shows the tag under Tags Fired on the signup_complete event, and under Tags Not Fired on every other event — including a signup push with a different name.

Download the container fragment: the custom event trigger fragment (JSON) (export format version 2, 1220 bytes, MD5 94927878f8486f73fb3f546163529032). It holds the custom event trigger that fires when {{_event}} equals signup_complete, and a GA4 event tag that fires on it. The file is a hand-built import template, validated structurally — it was not exported from a live container.

What you need

  • The exact event name the site pushes. The worked example uses signup_complete. The trigger compares the name letter for letter, so the name in the trigger and the name in the push must match exactly.
  • A data layer push that fires before the tag is needed. The site must push the event at the moment the signup completes — a push that happens after the visitor leaves the page is never seen.
  • Edit access to the container. Creating a trigger is a container edit.

The trace

  1. Confirm the push on the page. Open the site, complete a signup, and check the data layer in the browser console. The push must look like dataLayer.push({"event": "signup_complete"}). If the push is missing, the trigger has nothing to wait for.
  2. Go to Triggers and click New. Triggers live in their own list in the left navigation. Click New and name the trigger CE - signup_complete — the CE prefix marks it as a custom event trigger, the way the Day-1 container names its purchase trigger CE - purchase.
  3. Click Trigger Configuration and choose Custom Event. The configuration has one field: the event name. Enter signup_complete. The trigger fires when the {{_event}} built-in variable — the name of the current data layer event — equals that name.
  4. Attach the trigger to the tag and save both. Open the GA4 event tag, click Triggering, pick the new trigger, and save. In Preview mode, complete a signup and the tag fires once — 1 push, 1 firing. Any other event name leaves the tag under Tags Not Fired.

Dead ends

DEAD END — A NAME THAT ALMOST MATCHES. The comparison is exact. signup-complete with a hyphen does not equal signup_complete with an underscore, and Signup_Complete with a capital S does not match either. Copy the name from the site's push, do not retype it.

DEAD END — ONE TRIGGER PER EVENT, NOT ONE TRIGGER FOR ALL EVENTS. A custom event trigger waits for one name. A trigger named CE - signup_complete never fires on a trial_start push, even though both are custom events. Each named event gets its own trigger.

DEAD END — THE PUSH THAT HAPPENS BEFORE THE CONTAINER LOADS. If the site pushes the event before the container snippet has loaded, the container never sees the push. The event must be pushed after the container is on the page, or the tag misses it entirely.

End state

One custom event trigger, CE - signup_complete, firing when the data layer carries that exact name, attached to one GA4 event tag. The same pattern covers every named event the site pushes — the Day-1 purchase trigger is built exactly this way.

Sources

Checked 11 November 2026. The click paths above are the ones in Google's help pages, opened 11 November 2026. No step in this guide was run inside a live Analytics property or a live Tag Manager container, because both need a Google sign-in and this site does not sign in as anyone. The container file was validated structurally instead: export format version 2, every tag's firing trigger resolves, every variable the tags reference exists in the file, and the tag types are the documented ones. Google moves menu items without warning; if a path on this page no longer matches, the linked help page is the current map. The container fragment for this guide is 1220 bytes (1.19 KB, 0.60% of the reported 200 KB container size limit), MD5 94927878f8486f73fb3f546163529032, and passed 13 structural checks.