> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pnlight.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Core concepts

> Learn the PNLight concepts you use during integration, including projects, SDK tokens, users, events, attribution sources, and Remote UI placements.

PNLight has a small set of concepts that appear in both the SDK and dashboard.

## Project

A project represents one app in PNLight. It stores the app identifiers, SDK token, App Store integration settings, product IDs, attribution settings, Remote UI placements, team access, and analytics.

## SDK token

The SDK token identifies the PNLight project from your app. Copy it from [Integration](/dashboard/sdk-status) and pass it to the SDK during initialization.

<Warning>
  Treat the SDK token as an app configuration value. Do not publish it in public examples, screenshots, or issue reports.
</Warning>

## User ID

PNLight creates or returns a stable user ID through the SDK. Use this ID when you send events, attribution, and Remote UI requests.

## Attribution

Attribution links a user to a source such as AppsFlyer or internal click attribution. PNLight uses ad networks and campaigns to group paid traffic in the dashboard. You can choose the priority order in **Settings** and set how long PNLight should wait for a preferred attribution source before falling back.

## Remote UI

Remote UI lets your app render screens configured in the dashboard. A UI request uses a placement ID, locale, and user ID. Common placements include paywalls, onboarding prompts, and upgrade screens.

## Placement

A placement is a named location where your app can show Remote UI. Use stable placement IDs such as `paywall`, `onboarding_offer`, or `upgrade_prompt`.

## Analytics

Analytics pages show how users, app events, and purchases move through your app. Use the dashboard to review clicks, installs, revenue, spend, trials, subscriptions, ARPPU, rebills, App Events, Remote UI, and funnel performance. Use **Customers** and **Events** when you need user-level or raw event debugging.
