US English (US)
ES Spanish

Submit Article Requests

Do you have a suggestion for an article you would like to see created?
Feel free to submit this form and add your suggestions to our document board.

Please fill out the contact form below and we will reply as soon as possible.

  • Appcues Certifications & Training
  • Integration Hub
  • Contact Us
English (US)
US English (US)
ES Spanish
  • Docs home
  • Installation & Developers
  • Installing Appcues on Web

Exclude a subset of users from your Appcues installation

Methods to exclude a subset of users from your installation and reduce your MAU count

Updated at January 26th, 2026

Submit Article Requests

Do you have a suggestion for an article you would like to see created?
Feel free to submit this form and add your suggestions to our document board.

Please fill out the contact form with the details about the help content you'd like to see.

  • Home

  • Getting Started

    • Installation & Developers

      • Web Experiences

        • Mobile Experiences

          • Workflows

            • Analytics & Data

              • Account Management

                • Best Practices

                  • Integrations

                    Table of Contents

                    What counts as a Monthly Active User (MAU)? Option 1: Do not call identify for excluded users Option 2: Skip identify in non-production environments Recommended best practices

                    There are some cases where you may want certain users not to count toward your Monthly Active Users (MAU) usage. Common examples include:

                    • Internal team members using your product
                    • Test accounts and QA sessions
                    • Staging or sandbox environments
                    • Automated or bot traffic

                    You can control this by excluding specific users from your identify call in your Appcues installation.

                    What counts as a Monthly Active User (MAU)?

                    A MAU is typically defined as a unique user ID that:

                    • Is identified via an identify call, and
                    • Is active (ie logs in) within the billing period.

                    If a user never appears in your identify calls they will not count toward your MAU number.

                    Option 1: Do not call identify for excluded users

                    The most reliable way to ensure a user never counts toward MAU is to skip the identify call completely for that user.

                    You can do this by adding a simple condition around your identify logic.

                    Example: Exclude internal team members by email domain

                    function shouldIdentifyUser(user) {
                    	const email = user.email || "";
                    	const isInternal =
                    		email.endsWith("@yourcompany.com") ||
                    		email.endsWith("@contractor-company.com");
                    
                    	// Skip identify for internal/QA emails
                    	return !isInternal;
                    }
                    
                    if (shouldIdentifyUser(currentUser)) {
                    	appcues.identify(currentUser.id, {
                    		email: currentUser.email,
                    		name: currentUser.name,
                    		plan: currentUser.plan,
                    	});
                    }
                    

                    In this example:

                    • Users with @[yourcompany.com](<http://yourcompany.com>) or @[contractor-company.com](<http://contractor-company.com>) emails are not identified.
                    • Since they are never identified, they will not count as MAU.

                    Example: Exclude users based on role or feature flag

                    const user = window.currentUser;
                    
                    const isNonBillableRole = ["internal", "qa", "demo"].includes(user.role);
                    const isExcludedByFlag = user.features?.excludeFromMAU === true;
                    
                    if (!isNonBillableRole && !isExcludedByFlag) {
                    	appcues.identify(user.id, {
                    		email: user.email,
                    		role: user.role,
                    		account_id: user.accountId,
                    	});
                    }
                    

                    Only users whose role is not internal, qa, or demo, and who do not have an excludeFromMAU flag set, will be identified.

                    Option 2: Skip identify in non-production environments

                    If you run Appcues in multiple environments, you can use environment checks to avoid identifying users outside production.

                    Example: Only identify users in production

                    const isProduction =
                    	window.location.hostname === "app.yourproduct.com" ||
                    	window.location.hostname === "www.yourproduct.com";
                    
                    if (isProduction) {
                    	appcues.identify(currentUser.id, {
                    		email: currentUser.email,
                    		name: currentUser.name,
                    	});
                    } else {
                    	// Staging/local – do not identify users
                    	console.debug("Skipping identify in non-production environment");
                    }
                    

                    You can also use:

                    • Environment variables (e.g., process.env.NODE_ENV === "production")
                    • Custom config flags (e.g., [window.APP](<http://window.APP>)_ENV)

                    This ensures staging and local testing traffic never appears in MAU calculations.

                    Recommended best practices

                    To keep MAU usage clean and predictable:

                    • Define a clear policy for who should count as a MAU

                    For example: paying customers and trial users, but not internal staff, QA, or demo accounts.

                    • Implement a single shared resource

                    Wrap your identify logic in one reusable function so every part of your app uses the same exclusion rules.

                    • Exclude at the earliest point possible

                    Prefer skipping identify entirely for users who should never be billable.

                    • Keep your exclusion rules versioned and documented

                    Document which email domains, roles, or flags are considered non-billable, so other teams can safely add or remove cases.

                    exclude users from installation limit mau dont identify users

                    Was this article helpful?

                    Yes
                    No
                    Give feedback about this article

                    Related Articles

                    • Calling Appcues.page() vs Appcues.identify()
                    • Installation Guide for Developers
                    Appcues logo

                    Product

                    Why Appcues How it works Integrations Security Pricing What's new

                    Use cases

                    Appcues Integration Hub User Onboarding Software Feature Adoption Software NPS & Surveys Announcements Insights Mobile Adoption

                    Company

                    About
                    Careers

                    Support

                    Developer Docs Contact

                    Resources

                    The Appcues Blog Product Adoption Academy GoodUX Case studies Webinar Series Made with Appcues Appcues University

                    Follow us

                    Facebook icon Twitter icon grey Linkedin icon Instagram icon
                    © 2022 Appcues. All rights reserved.
                    Security Terms of Service Privacy Policy

                    Knowledge Base Software powered by Helpjuice

                    Expand