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

# Attribution

> Connect marketing spend to the players and conversions that matter

Attribution answers **which campaigns and channels produced which players and outcomes**. It uses the same event stream and profiles as [Audience CDP](/docs/products/audience/overview)—you instrument once, then measure spend here and activate players in the CDP.

For Steam titles, that means going beyond wishlist counts: credit the ads that created Funnel Page signups and, after ship, installs and in-game conversions—not only store wishlists you cannot message.

## What you get

| Question                                | Where in docs                                                                |
| --------------------------------------- | ---------------------------------------------------------------------------- |
| Which channels drive signups and value? | Models below + Hub **Sources** / **Campaigns**                               |
| Where should paid traffic land?         | [Funnel Page](/docs/products/attribution/funnel-page)                        |
| What counts as a conversion?            | [Conversion Goals](/docs/products/attribution/conversion-goals)              |
| How do ad networks learn from outcomes? | [Conversion Postbacks](/docs/products/attribution/postbacks/overview)        |
| How do we send the events?              | SDKs below (same pipeline as [Ingestion](/docs/products/audience/ingestion)) |

## Audience CDP vs Attribution

|                   | **Audience CDP**                                                                                  | **Attribution**                                  |
| ----------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| Job               | Collect, unify, engage, analyze players                                                           | Credit acquisition and close the paid-media loop |
| Typical next step | [Engage](/docs/products/audience/engage), [Analytics](/docs/products/audience/analytics/overview) | Goals, postbacks, Funnel Page, source reports    |

## Credit models

<AccordionGroup>
  <Accordion title="Source attribution" icon="map-pin">
    Credit paid, organic, influencer, referral, or direct for the signup.
  </Accordion>

  <Accordion title="Value attribution" icon="gem">
    Rank sources by paying and high-engagement players—not raw signup volume.
  </Accordion>

  <Accordion title="Cross-channel journeys" icon="arrows-split-up-and-left">
    Example path: ad click → Discord → Funnel Page signup → email → game launch.
  </Accordion>
</AccordionGroup>

Player quality and segments are explored in [Audience Analytics](/docs/products/audience/analytics/overview); Attribution focuses on **source credit and conversion feedback**.

## Funnel Page

Send measurable traffic to a [Funnel Page](/docs/products/attribution/funnel-page) when you want a Play-hosted landing surface that also ingests into the CDP. For your own marketing site, use the Web SDK below.

## Paid media loop

1. Define [Conversion Goals](/docs/products/attribution/conversion-goals).
2. Connect networks and enable [Conversion Postbacks](/docs/products/attribution/postbacks/overview).
3. Use Hub source quality to exclude low-value traffic and build lookalikes.
4. Re-engage cold signups with [Engage](/docs/products/audience/engage).

Postbacks are server-to-server. No extra browser tags are required after the SDKs and Hub integrations are in place.

## Instrument once

Same prerequisites and Web SDK snippets used across Audience and Attribution:

* An [Immutable Hub](https://hub.immutable.com) account with a project
* A publishable key from your project settings ([API keys guide](/docs/guides/advanced-setup/api-keys))

### Install

<Tabs>
  <Tab title="npm">
    ```bash theme={null}
    npm install @imtbl/audience
    ```
  </Tab>

  <Tab title="yarn">
    ```bash theme={null}
    yarn add @imtbl/audience
    ```
  </Tab>

  <Tab title="pnpm">
    ```bash theme={null}
    pnpm add @imtbl/audience
    ```
  </Tab>

  <Tab title="CDN">
    ```html theme={null}
    <script src="https://cdn.immutable.com/audience/v1/imtbl.js"></script>
    ```

    The CDN bundle attaches `ImmutableAudience` to `window` with the same API surface: `init`, `AudienceEvents`, `IdentityType`, `canTrack`, `canIdentify`, and `version`.

    <Info>
      If your site uses a Content Security Policy, see [Content Security Policy](/docs/products/audience/analytics/web-sdk#content-security-policy) for the directives CDN users need to allow.
    </Info>
  </Tab>
</Tabs>

### Initialize

<Tabs>
  <Tab title="npm">
    ```typescript theme={null}
    import { Audience, AudienceEvents, IdentityType } from '@imtbl/audience';

    const audience = Audience.init({
      publishableKey: 'YOUR_PUBLISHABLE_KEY',
    });
    ```
  </Tab>

  <Tab title="CDN">
    ```html theme={null}
    <script src="https://cdn.immutable.com/audience/v1/imtbl.js"></script>
    <script>
      var audience = ImmutableAudience.init({
        publishableKey: 'YOUR_PUBLISHABLE_KEY',
      });
    </script>
    ```

    Subsequent steps call methods on the `audience` variable. `AudienceEvents` and `IdentityType` are available as `ImmutableAudience.AudienceEvents` and `ImmutableAudience.IdentityType`.
  </Tab>
</Tabs>

Then identify players after login and send game events from Unity or REST as needed.

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

  <Card title="Unity SDK" icon="unity" href="/docs/products/audience/analytics/unity-sdk">
    Desktop and mobile Unity builds
  </Card>

  <Card title="REST API" icon="server" href="/docs/products/audience/analytics/rest-api">
    Server-authoritative events
  </Card>

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

## In Hub

| Area             | Use it for                      |
| ---------------- | ------------------------------- |
| **Sources**      | Channel mix and quality         |
| **Campaigns**    | Performance by campaign         |
| **Goals**        | Conversion definitions          |
| **Integrations** | Ad network postback connections |

## Next steps

<CardGroup cols={2}>
  <Card title="Funnel Page" icon="browser" href="/docs/products/attribution/funnel-page">
    Landing surface for measurable traffic
  </Card>

  <Card title="Conversion Goals" icon="bullseye-arrow" href="/docs/products/attribution/conversion-goals">
    Define conversion events
  </Card>

  <Card title="Conversion Postbacks" icon="share-from-square" href="/docs/products/attribution/postbacks/overview">
    Feed outcomes to ad networks
  </Card>

  <Card title="Audience CDP" icon="chart-line-up" href="/docs/products/audience/overview">
    Ingestion, Engage, and Analytics
  </Card>
</CardGroup>
