logo
This documentation provides step-by-step instructions for implementing custom user properties and event parameters in your Google Analytics 4 (GA4) property.

Overview

Each section below describes the implementation for one specific property or parameter:
  1. Ever Paid (ever_paid)
  1. Is Bot (is_bot)
  1. Customer Type (customer_type)
All examples include Google Tag Manager (GTM), and gtag.js approaches.

Ever Paid (User Property)

Tracks whether a user has ever made a payment or conversion on your platform.
Useful for differentiating actions of paying vs. non-paying users, especially for freemium or subscription-based businesses.

Expected Values

  • true – The user has made at least one payment.
  • false – The user has never paid.

Implementation via Google Tag Manager

  1. Create a Data Layer Variable for ever_paid.
  1. Create a Variable inside GTM that reads that value from the dataLayer, name it ever_paid.
    1. Image without caption
  1. If you don’t already have one, create a GA4 Event Settings Variable.
  1. Under the User Properties section, add:
      • Property Name: ever_paid
      • Value: Your Data Layer variable (e.g., {{ever_paid}})
      Image without caption
  1. Select this Event Settings Variable in all GA4 configuration and event tags.

Implementation via gtag.js

javascript
gtag('config', 'GA_MEASUREMENT_ID', { 'user_properties': { 'ever_paid': true // or false } });

Create Custom Dimension in GA4

  1. Go to Admin → Data display → Custom definitions.
  1. Click Create custom dimension.
  1. Set:
      • Scope: User
      • Dimension name: ever_paid
      • Description: Indicates if the user has ever paid
      • User property: ever_paid
      Image without caption
  1. Click Save.

Is Bot (User Property)

Flags users identified as bots or automated sessions. This allows filtering out bot traffic.

Expected Values

  • true – The session/user is identified as a bot.
  • false – The user is human.

Implementation via Google Tag Manager

  1. Create a Data Layer Variable for is_bot.
  1. Create a Variable inside GTM that reads that value from the dataLayer, name it is_bot.
    1. Image without caption
  1. If you don’t already have one, create a GA4 Event Settings Variable.
  1. Under the User Properties section, add:
      • Property Name: is_bot
      • Value: Your Data Layer variable (e.g., {{is_bot}})
      Image without caption
  1. Select this Event Settings Variable in all GA4 configuration and event tags.

Implementation via gtag.js

javascript
gtag('config', 'GA_MEASUREMENT_ID', { 'user_properties': { 'is_bot': true // or false } });

Create Custom Dimension in GA4

  1. Go to Admin → Data display → Custom definitions.
  1. Click Create custom dimension.
  1. Set:
      • Scope: User
      • Dimension name: is_bot
      • Description: Indicates if the user has ever paid
      • User property: is_bot
      Image without caption
  1. Click Save.

Customer Type (Event Parameter)

Tracks whether a conversion event comes from a new or returning customer.
Helps measure acquisition vs. retention performance.

Expected Values

  • new – The customer is making their first purchase.
  • returning – The customer has purchased before.

Implementation via Google Tag Manager

  1. Add a Data Layer Variable for customer_type to the conversion dataLayer event when a user completes a transaction.
  1. Create a Variable inside GTM that reads that value from the dataLayer, name it customer_type.
    1. Image without caption
  1. Open your GA4 tag that tracks the conversion.
  1. Under the Event Parameters section, add:
      • Property Name: customer_type
      • Value: Your Data Layer variable (e.g., {{customer_type}})
      Image without caption

Implementation via gtag.js

Example adding customer_type to the purchase event.
javascript
gtag('event', 'purchase', { transaction_id: 'T12345', value: 199.99, currency: 'USD', // Custom parameter: Customer Type customer_type: 'new' // "new" or "returning" });