# Interface: FidesExperienceConfig

In addition to the base functionality code, the FidesJS script will automatically determine which experience to provide the end user by matching configured privacy notices, locations, and languages to the user's session.

You can access the properties of the config used to provide the user's experience in the [Fides](/content/docs/privacy-center-fidesjs/fidesjs/reference/interfaces/Fides/index.html) global object at `Fides.experience.experience_config` which may be useful in further customizing the user's experience within your own environment (e.g. `if (Fides.experience.experience_config.component==='banner_and_modal') {...}`).

See the list of reliable properties below for details.

## Properties

### auto_detect_language?  
> `optional` **auto_detect_language**: `boolean`

This property corresponds with the "Auto detect language" configuration toggle in the Privacy experience config

* * *

### auto_subdomain_cookie_deletion?  
> `optional` **auto_subdomain_cookie_deletion**: `boolean`

This property corresponds with the "Delete from host’s subdomain" Cookie Deletion option.

* * *

### cookie_deletion_based_on_host_domain?  
> `optional` **cookie_deletion_based_on_host_domain**: `boolean`

This property corresponds with the "Delete from host’s domain" Cookie Deletion option.

* * *

### component  
> **component**: `string`

Each configured experience is presented to the user as one of 4 types of components: "banner_and_modal", "modal", "privacy_center", or "tcf_overlay". This property corresponds with the current user's Experience type.

* * *

### dismissable?  
> `optional` **dismissable**: `boolean`

This property corresponds with the "Allow user to dismiss" configuration toggle. If disabled, it will return `false` and the "X" button in the upper right corner of the banner/modal will be removed.

* * *

### id  
> **id**: `string`

Every configured experience has a unique ID that can be used to distinguish it from other experiences.

* * *

### layer1_button_options?  
> `optional` **layer1_button_options**: `string`

This property corresponds with the "Banner options" in the Banner and Modal components. This helps determine which buttons are visible on the banner presented to the user. (e.g. "acknowledge", "opt_in_opt_out", or "opt_in_only" (TCF))

* * *

### name?  
> `optional` **name**: `string`

Full name of the configured experience (e.g. "US Modal")

* * *

### regions?  
> `optional` **regions**: `string`[]

List of region codes that apply. For more information on valid values see [PrivacyNoticeRegion](/content/docs/privacy-center-fidesjs/fidesjs/reference/enumerations/PrivacyNoticeRegion/index.html)

#### Example
```
[ "us_ca", "us_co", "us_ct", "us_ut", "us_va", "us_or", "us_tx" ]
```

* * *

### show_layer1_notices?  
> `optional` **show_layer1_notices**: `boolean`

On Banner and Modal components, this option corresponds to the "Add privacy notices to banner" configuration toggle. When enabled, the list of privacy notice names will appear—comma separated—on the banner, without forcing the user to open the modal to know which are applicable.

* * *

### translations  
> **translations**: `Record`<`string`, `any`>[]

List of all available translations for the current experience.

* * *

### reject_all_mechanism  
> **reject_all_mechanism**: `string`

This corresponds with the "Reject all mechanism" configuration option for TCF overlay experiences. Determines whether opting out of all purposes blocks everything (both consent and legitimate interest processing) or only blocks consent-based processing while allowing legitimate interest to continue.

* * *

### resurface_behavior?  
> `optional` **resurface_behavior**: `string`[]

This corresponds with the "Resurface banner" configuration option. Controls when to show the consent banner again after the user has interacted with it. Can include "reject", "dismiss", both, or be empty/null for default behavior (only resurface on cookie expiration or vendor changes).

#### Example
```
["reject"]  // Resurface only on reject
["dismiss"]  // Resurface only on dismiss
["reject", "dismiss"]  // Resurface on both
null  // Default behavior (no resurfacing)
```
