# Other Amplitude Features


After you [set up Amplitude as a destination]({{< ref "destinations/streaming-destinations/amplitude/setup-guide.md" >}}) and send events in [JavaScript device mode]({{< ref "destinations/streaming-destinations/amplitude/device-mode.md" >}}), you can optionally add Amplitude Guides & Surveys and Experiment in your application.

These features run in the browser alongside the Amplitude Analytics instance that RudderStack loads in device mode. Amplitude Guides & Surveys requires Browser SDK version **2** — Experiment needs no additional RudderStack destination settings.

## Guides & Surveys

[Amplitude Guides & Surveys](https://amplitude.com/docs/sdks/guides-and-surveys/sdk#amplitude-browser-sdk-2) lets you deliver in-product guides and surveys through the Amplitude Engagement bundle.

Note that:

- Your Amplitude destination **must** use JavaScript device mode with [Amplitude Browser SDK version **2**]({{< ref "destinations/streaming-destinations/amplitude/device-mode.md#amplitude-browser-sdk-version" >}}).
- Register Guides & Surveys as a plugin on the same Amplitude Analytics instance so device, user, and session identity stay continuous — **do not load a second Amplitude Analytics SDK**.

### Setup {#setup-guides-and-surveys}

1. Set your Amplitude destination to [JavaScript device mode]({{< ref "destinations/streaming-destinations/amplitude/device-mode.md" >}}) and select [Amplitude Browser SDK version **2**]({{< ref "destinations/streaming-destinations/amplitude/device-mode.md#amplitude-browser-sdk-version" >}}).
2. Load `https://cdn.amplitude.com/script/AMPLITUDE_API_KEY.engagement.js` using the **same** Amplitude project API key configured in the RudderStack destination.
3. Because Amplitude Analytics is already loaded and initialized, load the Engagement bundle and register the plugin **after** `rudderanalytics.ready()`.

{{< warning >}}
Do not:

- Call another `amplitude.init()`, `engagement.init()`, or `engagement.boot()` — `amplitude.add(window.engagement.plugin())` handles initialization.
- Run a second, standalone Amplitude Analytics SDK on the page.
{{< /warning >}}

A sample CDN setup is shown below. Replace `AMPLITUDE_API_KEY` with your Amplitude project API key:

```html
<script>
  rudderanalytics.ready(function () {
    var script = document.createElement('script');
    script.src =
      'https://cdn.amplitude.com/script/AMPLITUDE_API_KEY.engagement.js';
    script.onload = function () {
      amplitude.add(window.engagement.plugin());
    };
    document.head.appendChild(script);
  });
</script>
```

{{< warning >}}
If your Amplitude destination uses a [Proxy server URL]({{< ref "destinations/streaming-destinations/amplitude/setup-guide.md#javascript" >}}) (custom `serverUrl`), do **not** use the Browser SDK plugin path above. Amplitude's Guides & Surveys plugin does not support proxy configuration.

Follow Amplitude's [standalone Guides & Surveys installation](https://amplitude.com/docs/sdks/guides-and-surveys/sdk#standalone-installation-other-amplitude-sdks-third-party-analytics-providers-and-proxy-setups) and [proxy configuration](https://amplitude.com/docs/guides-and-surveys/proxy) instead.
{{< /warning >}}

See Amplitude's [Guides and Surveys Web SDK](https://amplitude.com/docs/sdks/guides-and-surveys/sdk#amplitude-browser-sdk-2) documentation for full options and troubleshooting.

## Experiment

Your application loads and initializes [Amplitude Experiment](https://amplitude.com/docs/sdks/experiment-sdks/experiment-javascript). It requires **no** additional RudderStack-side integration changes.

When you use Amplitude Analytics through RudderStack JavaScript device mode, you can initialize Experiment with Amplitude's built-in analytics integration so it shares identity with the Analytics SDK instance on the page.

### Setup {#setup-experiment}

1. Load the Amplitude Experiment JavaScript client in your application.
2. Initialize it with a deployment key from the **same** Amplitude project you use for analytics.
3. Fetch or start the Experiment client and read variants according to Amplitude's current [Experiment SDK documentation](https://amplitude.com/docs/sdks/experiment-sdks/experiment-javascript).

A sample CDN setup is shown below. Replace `DEPLOYMENT_KEY` with your Amplitude Experiment deployment key:

```html
<script src="https://unpkg.com/@amplitude/experiment-js-client@1.15.5/dist/experiment.umd.js"></script>
<script>
  // Replace DEPLOYMENT_KEY with an Amplitude Experiment deployment key
  // from the same Amplitude project used for analytics.
  window.experiment =
    Experiment.initializeWithAmplitudeAnalytics('DEPLOYMENT_KEY');
</script>
```

{{< info >}}
If your site uses a consent management platform, gate Experiment initialization and variant fetching until the user grants consent. Amplitude's Experiment SDK does not provide a separate consent API — see [Manage user consent](https://amplitude.com/docs/sdks/experiment-sdks/experiment-javascript#manage-user-consent) in Amplitude's documentation.
{{< /info >}}

See Amplitude's [Experiment JavaScript SDK](https://amplitude.com/docs/sdks/experiment-sdks/experiment-javascript) documentation for fetch, start, and variant evaluation details.

<br />

