Chameleon pricing is based on Monthly Tracked Users (unique user profiles identified to Chameleon) because that directly contributes to our cost base and is the opportunity for you to leverage in-product experiences for better adoption, improved conversion, and reduced churn. 

In some cases, you may want to only install Chameleon for a specific group of users, for example:

  • Only new users

  • Only desktop (and not mobile) users

  • Only on certain pages

  • Only within certain products

What needs to change (when installed manually)

If you have chosen to install the Chameleon code snippet manually (using JavaScript) then simply suppress the call to chmln.identify. Your developers can add some logic before the Chameleon script that decides whether it should be called or not. 

if(userShouldBeIdentifiedToChameleon) {
chmln.identify(UID, options);

Note: If your developers are not aware of how this can be done or need some guidance on the logic to do this, feel free to speak with us!

What needs to change (when installed with Segment)

If you have installed Chameleon with Segment, then you will have to use the Integrations Object within Segment to restrict whether Chameleon is called as part of the analytics.identify call, for example:

const userShouldBeIdentifiedToChameleon = false; /* your logic here */

analytics.identify('user_123', {
email: '',
name: 'Jane Kim'
}, {
integrations: {
'Chameleon': userShouldBeIdentifiedToChameleon

Segment also has the option to filter data via its web application, such as Destination Filters, which allows you to restrict data being sent to integrations. This can prevent event data from being sent to Chameleon but will not be sufficient in preventing users from being identified, and so will not reduce the MTU count.

Selectively disabling Chameleon

This elusive option is available as a global off-switch for advanced use cases where finer-grained control than managing domains allows (you can fully disable Chameleon per sub-domain.

Chameleon has two parts that can appear inside your application: the Builder used by admins of your Chameleon account and the Experiences that show to your end-users (e.g. Tours, Microsurveys, etc.). For example, if your main app dashboard and marketing homepage are both on the same subdomain (

To hide Chameleon Experiences for your end-users

chmln.elusive = 'user'; 

To hide the Chameleon Builder from you and your team

chmln.elusive = 'admin';

To hide both the Chameleon Builder and Experiences from everyone

chmln.elusive = 'user,admin';

Note, if you installed Chameleon via, you will need to add the following to initialize the chmln object.

window.chmln || (window.chmln = {});
window.chmln.elusive = 'admin';


👉 Have any questions or issues during this implementation process? Let us know how we can help!

Find out more

Did this answer your question?