Guide 114 · Container · GA4 + Tag Manager
Build a custom event trigger: fire a tag on a named event from the data layer
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.
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
- 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. - 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— theCEprefix marks it as a custom event trigger, the way the Day-1 container names its purchase triggerCE - purchase. - 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. - 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
- Tag Manager Help — Trigger types — Custom Event trigger type
- Tag Manager Help — Set up Google Analytics in Tag Manager — the GA4 Event tag and its trigger, and the custom event pattern in the Day-1 container
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.