About Tracking

Ad Platform Tracking

Meta Pixel + CAPI TikTok CAPI LinkedIn CAPI Snapchat CAPI Pinterest CAPI Quora Pixel Bing + UET Tag

Google Ecosystem

Google Ads Tracking GA4 Setup & Audit Google Tag Manager

Advanced Solutions

Server-Side Tracking Looker Studio Offline Conversion
Case Studies Blog Free Checklist Book Free Audit →

GA4 automatically collects page views, session starts, and first visits. But the actions that actually matter for your business — button clicks, form submissions, checkout steps, video plays — you have to define yourself. These are custom events, and getting them right is the foundation of any useful analytics setup.

This guide covers when to use custom events, how to set them up with and without Google Tag Manager, and how to mark them as conversions for reporting and Google Ads bidding.

What GA4 Custom Events Are (and What They Are Not)

GA4 groups events into four categories:

  1. Automatically collected eventspage_view, session_start, first_visit. No configuration needed.
  2. Enhanced measurement events — scroll, outbound clicks, site search, video engagement. Enabled in your GA4 data stream settings.
  3. Recommended events — events with predefined names and parameters that Google suggests for specific industries: purchase, add_to_cart, sign_up, generate_lead. You implement these yourself but follow Google’s exact naming convention.
  4. Custom events — anything that does not fit the above. You define the name and parameters.

The most important rule: if a recommended event name exists for what you want to track, use it. Recommended events have built-in support in GA4 reports. Custom event names appear in a catch-all category unless you build custom explorations around them.

Which Events to Track

Do not track everything. Focus on events that either indicate strong purchase intent or act as a measurable milestone in your conversion funnel. High-value custom events for most ecommerce and lead gen sites:

Start with the top two or three events that are closest to revenue. Get those verified and reporting correctly before adding more.

Method 1: Set Up Custom Events with Google Tag Manager

GTM is the recommended approach. It does not require code changes on your site and lets non-developers manage tracking changes independently.

Step 1: Identify the Trigger

  1. Open GTM Preview mode and navigate to the page with the element you want to track.
  2. Perform the action — click the button, submit the form, play the video.
  3. In the Tag Assistant panel, find the corresponding event (usually Click or Form Submission).
  4. Open the Variables tab to see Click ID, Click Classes, Click Text, and Click URL.

Use one of those attributes to build a precise trigger. For a “Book My Free Audit” button: trigger type Click — All Elements, condition Click Text contains "Book My Free Audit".

Step 2: Create the GA4 Event Tag

  1. In GTM, create a new tag → Google Analytics: GA4 Event.
  2. Select your GA4 configuration tag (or enter your Measurement ID directly).
  3. Set the Event Name. Use a recommended name if one fits. For a CTA click: cta_button_click.
  4. Add Event Parameters to provide context in GA4 reports:
    • button_text → {{Click Text}} (built-in GTM variable)
    • page_location → {{Page URL}}
  5. Set the trigger to the click trigger you built in Step 1.
  6. Save and publish your GTM container.

Step 3: Verify in GA4 DebugView

  1. Enable GTM Preview mode — this automatically enables GA4 debug mode for your session.
  2. In GA4, go to Admin → DebugView.
  3. Perform the action on your live site.
  4. The event should appear in real-time in DebugView with all parameters visible.

DebugView data is not saved to your main reports. Allow 24–48 hours for the event to appear in the standard Events report. Do not assume the setup is broken if you do not see data on day one.

Method 2: Set Up Custom Events with gtag.js (Direct Code)

If you are not using GTM, push events directly using the gtag() function:

// On form submission
document.getElementById('contact-form').addEventListener('submit', function() {
  gtag('event', 'generate_lead', {
    form_name: 'contact_form',
    page_location: window.location.href
  });
});

// On button click
document.getElementById('cta-btn').addEventListener('click', function() {
  gtag('event', 'cta_button_click', {
    button_text: this.innerText,
    page_location: window.location.href
  });
});

One important limitation: if the page redirects immediately after the form submission (common with thank-you page redirects), the event may not finish sending before the page unloads. To handle this, either use GTM’s Form Submit trigger (which handles timing correctly) or add a short callback delay before the redirect in your form handler.

Method 3: Create Custom Events from Existing Events in the GA4 UI

GA4 lets you create new events by filtering existing ones — no GTM or code required:

  1. In GA4, go to Admin → Events → Create event.
  2. Set the new event name (e.g. book_audit_click).
  3. Add matching conditions: event_name equals click AND click_text equals Book My Free Audit.
  4. Copy parameters from the source event so they carry over.
  5. Save.

This method is useful for quickly segmenting a generic click event into a specific named event without touching GTM. The limitation is that it only works on events GA4 already collects — you cannot create something from nothing.

Marking Custom Events as Conversions

Once your event has collected data for at least 24 hours:

  1. In GA4, go to Admin → Events.
  2. Find your event in the list.
  3. Toggle Mark as conversion on.

The event will now appear in your Conversions report and become available to import into Google Ads for bidding.

Only mark events as conversions if they represent genuine business value. Marking scroll depth or tab interactions as conversions floods your conversion count and sends confusing signals to any Smart Bidding campaign you run.

Making Event Parameters Visible in Reports

Event parameters appear in raw event data but are not visible in GA4’s standard reports until you register them as custom dimensions:

  1. In GA4, go to Admin → Custom definitions → Create custom dimension.
  2. Set the dimension name (visible in reports).
  3. Set the scope to Event.
  4. Set the event parameter to match exactly what you pass in your tag code — e.g. button_text.
  5. Save.

Custom dimensions are available in Explore reports within 24–48 hours. GA4 allows up to 50 custom event-scoped dimensions on the free tier.

Common Mistakes with GA4 Custom Events

Build a Measurement Plan First

Before setting up any event, write a one-page measurement plan. This prevents duplicate events, unclear naming, and tracking noise:

Event NameTriggerParametersConversion?
generate_leadContact form successform_name, page_locationYes
begin_checkoutClick “Proceed to Checkout”item_count, cart_valueNo (funnel step)
cta_button_clickClick any primary CTA buttonbutton_text, page_pathNo (analysis only)
phone_clickClick phone number linkphone_number, page_locationYes

If you want these events captured even when a user has an ad blocker installed, you will need server-side tracking — the approach changes significantly once events need to bypass browser-level restrictions.

Related Articles

Want Someone to Audit Your GA4 Setup?

Custom events are only useful if they are firing correctly. If you are not sure your setup is tracking what you think it is, we offer a free 20-minute tracking audit — we will look at your GA4 events live and tell you exactly what to fix.

Book your free tracking audit →

Leave a Reply

Your email address will not be published. Required fields are marked *