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

# Web Signup Flow

> Learn how to capture referral codes on your website

When users click referral links, they land on your website first. Capture the referral code (`ucc`) on this landing page to properly attribute future conversions.

Follow these steps to set up referral code capture:

## Step 1: Set up your landing page

Create a landing page for referral traffic. Choose one approach:

* Dedicated referral landing page
* Home page with Cello New User Banner

See the [landing page optimization guide](/guides/user-experience/optimizing-landing-pages) for best practices.

## Step 2: Install attribution script

The attribution script detects the `ucc` query parameter and stores it as a first-party cookie for later attribution of conversion events.

Install the Cello attribution script - [Attribution JS](/sdk/client-side/attribution-js-introduction) -  using one of these methods:

<CardGroup cols={2}>
  <Card title="Embedded Script Tag" icon="code" href="/sdk/client-side/embedded-script-tag" />

  <Card title="Google Tag Manager" icon="google" href="/sdk/client-side/google-tag-manager" />
</CardGroup>

The attribution script also enables you to:

* Fetch referrer names for [landing page personalization](/guides/user-experience/personalizing-referrals)
* Get campaign parameters to [display discounts](/guides/user-experience/new-user-discounts)
* Attach `ucc` to signup forms

See the [Attribution JS reference](/sdk/client-side/attribution-js-introduction) for complete details.

## Step 3: Verify installation

Verify that the `ucc` is available on your signup page:

1. Test your website with these query parameters:
   ```html theme={null}
   https://yourwebsite.com/?productId=test&ucc=test
   ```

2. Verify these values are saved as cookies: `cello-product-id` and `cello-referral`

3. On your signup page, test `ucc` access from the browser console:

   ```javascript theme={null}
   window.CelloAttribution('getUcc')
   ```

   Expected response:

   ```javascript theme={null}
   Promise {<fulfilled>: 'test'}
   ```

If this test passes, the script is installed correctly.

<Tip>
  **Using referral codes at signup**

  Use `getUcc()` during user signup to retrieve the referral code, then pass it in the [signup event](/attribution/tracking-signups) to Cello.

  For complex flows, save the `ucc` with your user record so it's available when sending [signup events](/attribution/tracking-signups).
</Tip>
