Nightly Piano Man

    TypeScript icon, indicating that this package has built-in type declarations

    0.1.1 • Public • Published


    NPM version Actions Status PR Welcome

    A lightweight React library to implement custom Google Tag Manager events.


    Designed to use and extend Google Analytics 4. Note: If upgrading from react-gtm 0.0.6 or older, or currently using an older version of Google Analytics, you'll need to upgrade. This library is also SSR safe and does not break when used without window existing. This package is intended to be used with React / older Next.JS apps, for Next.JS 11 and above we recommend using @phntms/next-gtm.


    Install this package with npm.

    npm i @phntms/react-gtm


    <TrackingHeadScript />

    Property Type Default Notes
    id string undefined ID that uniquely identifies GTM Container. Example format: GTM-xxxxxx.
    disable boolean false Used to disable tracking events. Use if you want user to consent to being tracked before tracking events.

    To initialize GTM, add TrackingHeadScript to the head of the page.

    Example initialization in Next.js:

    import Document, {
    } from "next/document";
    import { TrackingHeadScript } from "@phntms/react-gtm";
    const GA_TRACKING_ID = process.env.NEXT_PUBLIC_GA_TRACKING_ID || "";
    export default class MyDocument extends Document {
      render = () => (
            <TrackingHeadScript id={GA_TRACKING_ID} />
            <Main />
            <NextScript />

    Note: If used alongside any cookie consent scripts, <TrackingHeadScript /> must be placed after.


    Parameter Type Default Notes
    props EventTrackingProps undefined Custom tracking event to push to GTM container.

    Example of a basic tracking event:

    import { trackEvent } from "@phntms/react-gtm";
      event: "customEvent",
      data: {
        action: "Click - To:",
        category: "CTA",
        label: "Click",


    Parameter Type Default Notes
    id string undefined Same ID used in TrackingHeadScript. Example format: GTM-xxxxxx.
    enable boolean true Used to enable or disable tracking events.

    Note: This should only be used if needed, for example after user has consented to being tracked. You shouldn't need to toggle this in normal usage.


    Parameter Type Default Required Notes
    event string "customEvent" No Custom GTM event name, defaults to customEvent.
    data EventDataProps undefined No Supports any value(s) in the format [key: string]: any. Example of recommended properties to include; action, category and label.


    This library extends window and exposes the window.dataLayer GTM container object.

    Further Resources

    Useful resource for implementing custom GTM events:

    • Omnibug - Chrome browser extension to decode and display outgoing GTM events from within Inspect Element.

    🍰 Contributing

    Want to get involved, or found an issue? Please contribute using the GitHub Flow. Create a branch, add commits, and open a Pull Request or submit a new issue.

    Please read CONTRIBUTING for details on our CODE_OF_CONDUCT, and the process for submitting pull requests to us!


    npm i @phntms/react-gtm

    DownloadsWeekly Downloads






    Unpacked Size

    34 kB

    Total Files


    Last publish


    • dhiaphntm
    • jpedersen
    • digitaljohn
    • paulomfj