---
title: "Integrate your app"
description: "Install an SDK and display your first Experience."
search:
  tags: ["Getting started"]
  keywords: ["install", "setup", "Expo", "pk_test", "Connected", "Shown"]
  boost: 3
---

Integrate the Nuxie SDK to show onboarding, paywalls, and other Experiences inside your app. The SDK handles presentation and sends customer activity back to Nuxie. After this one-time integration, you can publish changes to your Experiences without shipping another app build.

## Before you start

You'll need an App in Nuxie and access to your application's code. To test delivery, [create and publish an Experience](/docs/guides/publishing) with an event trigger such as `upgrade_requested`.

Open **Connect your app** after publishing to get the setup instructions, publishable keys, and exact trigger for that Experience.

## Integrate with a coding agent

1. **Choose your framework**

    Open **Connect your app** and select your framework's tab.

2. **Copy the setup prompt**

    Return to **Coding agent** and choose **Copy setup prompt**. The prompt includes your build keys, the SDK guide, and the event to call from your app.

3. **Integrate in your app**

    Paste the prompt into the coding agent working on your application.

Once the integration is ready, run your development build and [display the Experience](#display-your-first-experience). To integrate manually, follow the guide for your framework below.

## Choose your framework

| Your app uses | Integration guide |
| --- | --- |
| Swift / SwiftUI / UIKit | [iOS](/docs/sdks/ios) |
| Kotlin | [Android](/docs/sdks/android) |
| React Native / Expo | [React Native](/docs/sdks/react-native) |
| Flutter | [Flutter](/docs/sdks/flutter) |
| Unity | [Unity](/docs/sdks/unity) |
| Godot | [Godot](/docs/sdks/godot) |
| Unreal Engine | [Unreal](/docs/sdks/unreal) |

Use the guide for your framework, even when it runs on another platform. For example, a Flutter app on an iPhone uses the Flutter SDK.

Each guide covers installation, initialization, and sending an event from your app.

## App keys and environments

Your publishable key identifies the App, platform, and environment that receives the SDK's requests. **Connect your app** labels these keys by build type:

| Build | Key | Experience version |
| --- | --- | --- |
| **Debug builds** | `pk_test_` | Preview, including updates published to **Your device first** |
| **Release builds** | `pk_live_` | Production, including updates published with **Go live** |

For frameworks that target both iOS and Android, supply the key for each platform as shown in the integration guide.

Keep the SDK key, published Experience, and Nuxie environment aligned. Test customer activity stays separate from live activity.

<span id="what-youll-verify"></span>

## Display your first Experience

1. **Connect the SDK**

    Run the app with the SDK configured. **Connect your app** shows **Connected** after the SDK connects.

2. **Send the trigger**

    Perform the app action where you added the trigger, such as tapping an upgrade button. Use the exact event name from the published Experience.

3. **Display the Experience**

    Check that your published screen appears and **Connect your app** shows **Shown**. Complete or dismiss it to finish the run.

Nuxie shows the Experience when the customer matches its audience and re-entry rules. For repeated testing, allow re-entry on your test Experience or use a fresh test customer.

Now edit a line of text in the Project and publish an update to **Your device first**. Reopen the same development build, let the SDK synchronize, and trigger a new run. The updated text appears without rebuilding the app. See [Versions and updates](/docs/guides/versions-and-updates) to release the change to production.

<span id="5-trigger-it-at-the-right-moment"></span>
<span id="choose-the-right-moment"></span>

## App events

Put the trigger at the relevant point in your app, such as opening a premium feature or finishing sign-up. [Delivery rules](/docs/guides/delivery) control the audience and how often the Experience appears.

For a paywall, continue with [purchase setup](/docs/guides/paywalls). For personalized targeting, add [customer properties](/docs/guides/customer-properties).

## Connect customer identity

The SDK creates an anonymous identity before sign-in. Once a customer signs in, identify them with the same stable account ID used by your app. Reset the SDK on sign-out.

Use that same account ID with a connected billing provider so purchases and Feature access belong to the right person. Each [SDK reference](/docs/reference) documents its identity methods.

## Add app behavior

An Experience can hand control to your app through an App Action—for example, opening a native screen after onboarding. Configure the named action in the Project and register its handler in your SDK. See [Interactions and flows](/docs/guides/screens-and-interactions).

If the Experience sells access, configure the Product's Feature grants and check those Feature keys in the app. The [monetization guide](/docs/monetization/overview) covers purchases, access, and usage together.

## Resolve integration problems

**Connected** confirms a successful SDK connection. **Shown** confirms that an Experience appeared. If the connection succeeds but nothing appears, check publication, trigger, audience, and re-entry rules for the test customer.

Use [Troubleshooting](/docs/get-started/troubleshooting) for connection, delivery, identity, and purchase problems.
