Guides and Surveys React Native SDK

Amplitude's Guides and Surveys SDK enables you to deploy Guides and Surveys on your website or application.

This SDK is in Open Beta

This feature is in open beta and under active development.

Requirements

The Guides and Surveys React Native SDK requires:

Installation

Install the SDK

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

Async storage

Explicitly adding @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

Initialize the SDK

//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
});

Amplitude server zone

The 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.

Configuration options

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.

Use the same API key for Guides & Surveys and Analytics

To avoid analytics mismatches and ensure accurate data collection, use the same API key for both Guides & Surveys and your Analytics SDK. Both should reference the same Amplitude project. Using different API keys can cause:

  • The SDK to fetch guides and surveys from the wrong project
  • Analytics data to appear in different projects
  • Insights and survey responses are incomplete or mismatched

Make sure the API key you provide to Guides & Surveys matches the API key used to initialize your Amplitude Analytics SDK.

Boot the plugin

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');
  }, []);
}

Note

At this point, you are technically done installing. While optional, Amplitude recommends that you set up URL handling for preview mode.

Add your application to project settings

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:

  1. Navigate to Settings > Projects in Amplitude.
  2. Select your project.
  3. Navigate to the Guides and Surveys tab.
  4. In the App Management section, expand and click + Add App.
  5. Select React Native from the dropdown.

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.

Element targeting

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>
  );
}

Configure linking

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.

Locate the mobile URL scheme

To locate the URL scheme:

  1. Navigate to Settings > Projects in Amplitude.
  2. Select your project.
  3. Navigate to the General tab.
  4. Find the URL scheme (mobile) field.
  5. Copy its value, for example, amp-abcdefgh12345678.

Known limitations

Tab bar element targeting

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.

Workaround

Use screen-based targeting or event-based triggers to show guides when users navigate to specific tabs. Do not pin directly to tab bar items.

Targeting animated elements and elements inside moving containers

Pins and tooltips can't target views or elements that are:

  • Animated or in an animated container (they move around the screen).
  • In a container that can move based on user interaction.

Note

Scrollviews usually work.

Workaround

Use screen-based targeting or event-based triggers to show guides, perhaps with a delay to ensure any animations have completed. Do not pin directly to elements in animated containers or containers which can be moved via user interaction.

Changelog

You can access the changelog here.

Was this page helpful?

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.