Amplitude's Guides and Surveys SDK enables you to deploy Guides and Surveys on your website or application.
The Guides and Surveys React Native SDK requires:
Install the Guides and Surveys React Native SDK as a package with npm or Yarn.
npm install @amplitude/plugin-engagement-react-native
npm install @react-native-async-storage/async-storage
yarn add @amplitude/plugin-engagement-react-native
yarn add @react-native-async-storage/async-storage
@react-native-async-storage/async-storage ensures the native module links correctly, since the engagement native module uses it.Run pod install in the ios directory.
cd ios
bundle exec pod install
//index.js
import {Linking} from 'react-native';
import { init, add } from '@amplitude/analytics-react-native';
import { getPlugin, handleURL } from '@amplitude/plugin-engagement-react-native';
init('<<< YOUR API KEY HERE >>>');
add(getPlugin());
Linking.getInitialURL().then(async (url) => {
if (url) {
const didHandleURL = await handleURL(url);
if (didHandleURL) { return; }
// Handle a non-Amplitude SDK URL
}
});
Linking.addEventListener('url', async ({ url }) => {
const didHandleURL = await handleURL(url);
if (didHandleURL) { return; }
// Handle a non-Amplitude SDK URL
});
serverZone used to initialize @amplitude/analytics-react-native will automatically be used (ref), so you don't need to pass serverZone in the options argument to init.| Parameter | Type | Description |
|---|---|---|
apiKey |
string |
Required. API key of the Amplitude project you want to use. |
options.serverUrl |
string |
Optional. Sets a custom server URL for API requests. Useful for proxy setups. Default: https://gs.amplitude.com (US) or https://gs.eu.amplitude.com (EU) |
options.cdnUrl |
string |
Optional. Sets a custom CDN URL for static assets. Useful for proxy setups. Default: https://cdn.amplitude.com (US) or https://cdn.eu.amplitude.com (EU) |
options.mediaUrl |
string |
Optional. Sets a custom URL for proxying nudge images. Useful for proxy setups when images are blocked. Default: https://engagement-static.amplitude.com (US) or https://engagement-static.eu.amplitude.com (EU) |
options.logLevel |
LogLevel.None or LogLevel.Error or LogLevel.Warn or LogLevel.Verbose or LogLevel.Debug. |
Optional. Sets the log level. Default: LogLevel.Warn |
options.locale |
string |
Optional. Sets the locale for localization. Default: undefined. Not setting a language means the default language is used. |
Make sure the API key you provide to Guides & Surveys matches the API key used to initialize your Amplitude Analytics SDK.
Booting the plugin (with a user ID) enables Guides and Surveys to be shown:
import {
track,
setDeviceId,
setUserId,
} from '@amplitude/analytics-react-native';
import { useEffect } from 'react';
export default function App() {
useEffect(() => {
//
// setting the User ID in @amplitude/analytics-react-native
// --and-- passing it to boot() is necessary
//
setUserId('rn-test-user-1');
setDeviceId('test-device-1');
getPlugin().boot('rn-test-user-1', 'test-device-1');
}, []);
}
After installing the SDK, add your React Native application to your Amplitude project settings so it appears as a platform option when you create guides and surveys.
To add your application:
After you add your application, it appears as a platform option when you create or edit guides and surveys. This enables you to deliver guides and surveys to your React Native app users.
Pin and tooltip guides require the ability for the SDK to target specific views on screen. The Engagement SDK uses the "testID" property on an element in the React Native DOM.
In the example component below, "welcome-banner" is the element targeting string that should be used in the Guides and Surveys dashboard.
import React from 'react';
import { View, Text, StyleSheet } from 'react-native';
/**
* A simple component with a testID that can be targeted
* by the Amplitude Guides & Surveys SDK.
*/
export default function WelcomeBanner() {
return (
<View
testID="welcome-banner" // Element targeting via testID
style={styles.banner}
>
<Text style={styles.bannerText}>
Welcome to the App!
</Text>
</View>
);
}
If your app doesn't have deep linking enabled, follow the React Native instructions to add support for deep linking. Previewing guides and surveys on a phone, tablet, or simulator requires this configuration.
To locate the URL scheme:
amp-abcdefgh12345678.Pins and tooltips can't target tab bar items in navigation components (such as @react-navigation/bottom-tabs). Tab bars use native components that exist outside the standard React Native view hierarchy, which prevents the SDK from reliably locating and attaching guides to these elements.
Pins and tooltips can't target views or elements that are:
You can access the changelog here.
February 6th, 2026
Need help? Contact Support
Visit Amplitude.com
Have a look at the Amplitude Blog
Learn more at Amplitude Academy
© 2026 Amplitude, Inc. All rights reserved. Amplitude is a registered trademark of Amplitude, Inc.