# Track Gravity Forms Submissions in Google Analytics 4

> Sends a generate_lead event to Google Analytics 4 or Google Tag Manager when a Gravity Forms form shows its confirmation, including AJAX forms.

- Type: PHP
- Runs: Frontend only
- Category: [Forms](https://wpide.com/library/category/forms/)
- Tags: gravity-forms, analytics, ga4
- Author: WPIDE Team
- Installs: 0
- Updated: 2026-10-28
- Page: https://wpide.com/library/gf-ga4-conversion-event/

## Code

```php
$wpide_gf_event_name = 'generate_lead';

add_action( 'wp_footer', function () use ( $wpide_gf_event_name ) {
    if ( ! wp_script_is( 'gform_gravityforms', 'enqueued' ) && ! wp_script_is( 'gform_gravityforms', 'done' ) ) {
        return;
    }
    ?>
<script>
( function () {
    var name = <?php echo wp_json_encode( $wpide_gf_event_name ); ?>;
    function send( formId ) {
        var data = { form_id: String( formId ), form_type: 'gravity-forms' };
        if ( typeof window.gtag === 'function' ) { window.gtag( 'event', name, data ); }
        else { window.dataLayer = window.dataLayer || []; window.dataLayer.push( Object.assign( { event: name }, data ) ); }
    }
    if ( window.jQuery ) {
        window.jQuery( document ).on( 'gform_confirmation_loaded', function ( event, formId ) { send( formId ); } );
    }
    document.querySelectorAll( '.gform_confirmation_wrapper' ).forEach( function ( el ) {
        var match = el.id.match( /gform_confirmation_wrapper_(\d+)/ );
        if ( match ) { send( match[1] ); }
    } );
} )();
</script>
    <?php
}, 100 );
```

## Notes

Needs gtag.js or a GTM container already on the site; non-AJAX forms are tracked when the confirmation page loads.

## How to use it

Install the free WPIDE plugin (https://wordpress.org/plugins/wpide/), find "Track Gravity Forms Submissions in Google Analytics 4" in its snippet library and add it in one click; or create a new PHP snippet in WPIDE (or any code snippets plugin) and paste the code above. More snippets: https://wpide.com/library/
