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

# Ingestion

> Get player data into Audience CDP from SDKs, Funnel Page, and CSV upload

Ingestion is how player data enters Audience CDP. Most studios combine sources; the CDP merges them into one profile per player. The same events power [Analytics](/docs/products/audience/analytics/overview), [Engage](/docs/products/audience/engage), and [Attribution](/docs/products/attribution/overview).

## Sources at a glance

| Source              | Best for                                           | Start here                                                                                                                                                   |
| ------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **SDKs & REST API** | Live events from your site, game, or backend       | [Web](/docs/products/audience/analytics/web-sdk) · [Unity](/docs/products/audience/analytics/unity-sdk) · [REST](/docs/products/audience/analytics/rest-api) |
| **Funnel Page**     | Pre-launch signups and referrals on Immutable Play | [Funnel Page](/docs/products/attribution/funnel-page)                                                                                                        |
| **CSV upload**      | Existing waitlists and CRM exports                 | [Hub](https://hub.immutable.com) → your game → import                                                                                                        |

Events from one source enrich profiles created by another. A CSV email that later signs in via the Web SDK becomes one player, not two.

## SDKs and REST API

Use first-party instrumentation when you control the client or server:

| Integration   | Role                                                                                           |
| ------------- | ---------------------------------------------------------------------------------------------- |
| **Web SDK**   | Landing pages, SPAs, web games—page views, custom events, UTM parameters, click IDs            |
| **Unity SDK** | Sessions, progressions, purchases, and identity in native builds                               |
| **REST API**  | Server-authoritative events (for example confirmed purchases) that must not rely on the client |

You need a Hub project and a [publishable key](/docs/guides/advanced-setup/api-keys). Schemas live in the [Data Dictionary](/docs/products/audience/analytics/data-dictionary).

<Steps>
  <Step title="Create keys in Hub">
    Generate a publishable key for Sandbox, then Production when you ship. See [API Keys](/docs/guides/advanced-setup/api-keys).
  </Step>

  <Step title="Install and init">
    Follow the Web or Unity quick start, or POST events to the REST API.
  </Step>

  <Step title="Identify after login">
    Call `identify` (or the REST equivalent) so anonymous activity joins the known profile.
  </Step>
</Steps>

<CardGroup cols={2}>
  <Card title="Web SDK" icon="code" href="/docs/products/audience/analytics/web-sdk">
    Install and track on web
  </Card>

  <Card title="Unity SDK" icon="unity" href="/docs/products/audience/analytics/unity-sdk">
    Instrument Unity games
  </Card>

  <Card title="REST API" icon="server" href="/docs/products/audience/analytics/rest-api">
    Send events from your backend
  </Card>

  <Card title="Data Dictionary" icon="book" href="/docs/products/audience/analytics/data-dictionary">
    Event and property schemas
  </Card>
</CardGroup>

## Funnel Page

A [Funnel Page](/docs/products/attribution/funnel-page) is a conversion-focused landing experience on Immutable Play. Signups, linked social accounts, referrals, and quest activity ingest into Audience CDP automatically—no extra site pixel required for that traffic.

Use it when you want Immutable to host pre-launch acquisition and still share profiles with your post-launch SDKs.

## CSV upload in Hub

Bring lists you already have (waitlists, CRM exports, creator audiences) into the CDP:

1. Open your game in [Hub](https://hub.immutable.com).
2. Open the audience import flow and choose **CSV upload**.
3. Map columns (email, external IDs, traits) to Audience fields.
4. Confirm. Matching identifiers merge into existing profiles; new identifiers create profiles.

<Tip>
  Use stable IDs (email, Steam ID, your internal player ID). That is what lets later SDK events attach to the same person.
</Tip>

CSV is best for one-time or periodic imports. Pair it with SDKs or a Funnel Page so profiles keep updating after the upload.

## What to use when

| Situation                              | Recommended path                       |
| -------------------------------------- | -------------------------------------- |
| Pre-launch, minimal engineering        | Funnel Page (+ CSV for existing lists) |
| Own marketing site                     | Web SDK                                |
| Unity game in development or live      | Unity SDK                              |
| Authoritative purchase or login events | REST API                               |
| Migrating an old CRM                   | CSV first, then SDKs for new activity  |

## Next steps

<CardGroup cols={2}>
  <Card title="Engage" icon="heart-pulse" href="/docs/products/audience/engage">
    Message players from unified profiles
  </Card>

  <Card title="Analytics" icon="chart-mixed" href="/docs/products/audience/analytics/overview">
    Explore quality, funnels, and segments
  </Card>
</CardGroup>
