GA4 Guide: Track 60 Sec Time on Page Event with GTM

Understanding and tracking meaningful time on page in GA4

Published by Marty Paukstys, founder of D2CEBL. 20+ years of Google PPC & Analytics experience. Google Ads Search and Google Analytics certified.

Knowing how long users spend actively engaging with your content is a crucial metric that goes beyond simple pageviews. But what constitutes a "meaningful" amount of time? The truth is, it varies.
 

Start with GA4's Built-in Metrics

Before setting up custom tracking, familiarize yourself with how GA4 already measures engagement:

  • Engaged Sessions: By default, GA4 counts a session as engaged if it lasts longer than 10 seconds, includes a conversion, or has 2+ pageviews. This 10-second baseline helps filter out immediate bounces.
  • Average Engagement Time: This metric reflects the average duration your web pages were actively visible (in the foreground) in users' browsers – a more reliable measure than older time-on-page calculations.

Analyze these metrics in your GA4 reports (especially Average engagement time for specific pages) to understand your current baseline user behavior.
 

What Makes Time "Meaningful"? Factors to Consider

The ideal time threshold depends on several factors:

  • Content Type & Length: A quick news update needs less time (maybe 30s) than a detailed guide (perhaps 3-5 minutes). Standard blog posts often fall in the 60-90 second range for meaningful reading.
  • Page Goal: Is the page for quick information (e.g., contact details - 15s might be enough) or in-depth consumption?
  • User Intent: Are users scanning quickly or settling in to read/watch?

Common Thresholds for Custom Tracking

If GA4's default engagement isn't granular enough, you might track specific thresholds via Google Tag Manager (GTM):

  • 30 Seconds: Good for shorter content, indicates more than a glance.
  • 60 Seconds (1 Minute): A popular benchmark for standard content (blogs, service pages), suggesting active reading.
  • 180+ Seconds (3+ Minutes): Suitable for long-form content, videos, or complex pages requiring significant focus.

Recommendation

Analyze your GA4 data first. If you decide a custom threshold is needed, segment by content type rather than using one global setting. For many standard content pages, 60 seconds is a reasonable and popular starting point to indicate genuine user interest beyond a basic engaged session.
 

How to Track a 60-Second Time Threshold in GA4 via GTM

If you've determined that tracking users who spend at least 60 seconds on a page is valuable, here’s how to set it up using Google Tag Manager.
 

Goal: Fire a GA4 event when a user has been on a page for 60 seconds.


Prerequisites:

  • Google Tag Manager (GTM) is installed on your website.
  • You have a Google Analytics 4 (GA4) property and know your Measurement ID (e.g., G-XXXXXXXXXX).
  • The Page URL Built-In Variable is enabled in GTM (usually enabled by default).

Step 1: Create the Timer Trigger

  1. In your GTM container, navigate to Triggers and click New.
  2. Name your trigger descriptively (e.g., Trigger - Timer 60 Seconds).
  3. Click "Trigger Configuration" and choose trigger type Timer (under "User Engagement").
  4. Configure the trigger settings:
    • Event Name: Leave as default (gtm.timer).
    • Interval: Enter 60000 (this is 60 seconds in milliseconds).
    • Limit: Enter 1. This is crucial! It ensures the trigger fires only once after 60 seconds, not repeatedly every 60 seconds on the same page load.
    • Enable this trigger when: Leave the default condition All Timers selected or set it to Page URL matches RegEx .*.
  5. Click Save.


Step 2: Create the GA4 Event Tag

  1. Navigate to Tags and click New.
  2. Name your tag descriptively (e.g., GA4 Event - Time on Page 60 Seconds).
  3. Click "Tag Configuration" and choose tag type Google Analytics: GA4 Event.
  4. In the Measurement ID field, enter your GA4 Measurement ID (starting with G-).
  5. For Event Name, use snake_case (e.g., time_on_page_60_sec). This name will appear in your GA4 reports.
  6. (Recommended) Add Page Context Parameter:
    • Under Event Parameters, click Add Parameter.
    • Event Parameter: page_location
    • Value: Click the {{}} icon and select {{Page URL}}. This tells you which page the user spent 60 seconds on.
  7. Under "Triggering," select the trigger you created in Step 1 (Trigger - Timer 60 Seconds).
  8. Click Save.


Step 3: Test Your Setup

  1. Click Preview in GTM (top right). Enter your site URL and connect.
  2. On your site (in the preview tab), stay on a single page for slightly longer than 60 seconds.
  3. Check the GTM debug console (tagassistant.google.com). After 60 seconds, you should see a Timer event (gtm.timer) appear in the left-hand summary.
  4. Click on that Timer event and verify that your GA4 Event - Time on Page 60 Seconds tag appears under "Tags Fired".
  5. (Optional) Check GA4's DebugView (Admin > DebugView) to see the time_on_page_60_sec event arrive.


Step 4: Publish Your Changes

  1. Once testing is successful, go back to GTM.
  2. Click Submit, choose Publish and Create Version.
  3. Add a descriptive Version Name (e.g., "Implement 60 Second Timer Event") and click Publish.


Now, GA4 will receive the time_on_page_60_sec event whenever a user spends 60 continuous seconds on a page. You can analyze this event in GA4 (Reports > Engagement > Events), segment users based on it, or potentially use it as a condition for triggering other actions or conversions. Remember to analyze which pages (page_location) trigger this event most often to understand where users are most engaged according to this specific time threshold.

Back to How To
  • Share
  • facebook
  • icon_linkedin
  • icon_x