Skip to main content

Why isn't my Experience showing to the targeted users?

Learn how to diagnose why a Chameleon Experience isn't showing for a user.

Written by Amanda Oliveira
Updated today

If a Chameleon Experience is not showing despite the snippet being installed, the user being identified, and the URL matching, the most likely cause is that the current user does not match the Experience's target audience. This article walks through how to verify targeting and identify the specific property or rule that is excluding a user.


How to check if a user matches the target audience

Run the Debugger with your Experience ID:

chmln.debug("YOUR_EXPERIENCE_ID")

The Debugger output will let you know whether your current user is in the Experience's audience.

πŸ’‘ Tip: Not sure where to start? Try describing your issue to Copilot β€” it can help you interpret Debugger output and pinpoint what's going wrong with your targeting. Sometimes a quick question is the fastest fix.

How to check what properties Chameleon has for the current user

To see every user property Chameleon has received for the currently identified user:

chmln.data.profile.attributes

Compare this output to the Segment rules on your Experience. The property name, value, and data type in the console must all match what the Segment rule expects.

For company-level properties:

chmln.data.company.attributes


Common targeting issues

The property has not been sent yet

If chmln.data.profile.attributes does not include the property used in your Segment rule, Chameleon has never received it for this user. The user will not match any rule that depends on it.

Fix: Check that chmln.identify() includes the property in its second argument. If the property comes from an integration (Segment, Amplitude, Salesforce), confirm the integration is active and data is flowing.

Property type mismatch

Chameleon treats property types strictly. If you send plan: "1" (a string) but your Segment rule compares against the number 1, the rule will not match β€” even though the values look the same.

Fix: Check the type of the value in chmln.data.profile.attributes. Ensure your chmln.identify() call sends the same type your Segment rule expects. Numbers should be sent as numbers, not as strings.

Property value is stale

If a user's properties were updated recently β€” for example, they upgraded to a paid plan β€” but chmln.identify() has not been called again with the new values, Chameleon still holds the old data.

Fix: chmln.identify() must be called on every page load with the current values. Properties are not updated automatically between sessions unless a new identify call is made.

AND vs OR logic

Segment rules with multiple conditions can behave unexpectedly depending on whether they are joined by AND or OR.

ℹ️ AND: The user must satisfy all conditions. If any one is false, the user is excluded. OR: The user only needs to satisfy one condition.

Fix: Open the Segment in the Dashboard and review how conditions are grouped. Use the Debugger output to identify which specific condition is returning false.


Still stuck?

  • If the user matches the audience but the Experience still does not show, check rate limiting and recurrence. Read How to diagnose rate limiting and recurrence conflicts.

  • Contact Chameleon support with the output of chmln.debug("YOUR_EXPERIENCE_ID") and chmln.data.profile.attributes from the affected user's session, or paste them into Copilot.

Did this answer your question?