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

# Verify your setup

> Test tracking, attribution, identity, and revenue before sending paid traffic.

Run this check on the published site. A correct install should preserve one journey from the landing page through identification and conversion.

## 1. Test a clean visit

Open a private window and visit a page with test campaign parameters:

```text theme={null}
https://example.com/?utm_source=docs_test&utm_medium=paid&utm_campaign=setup_check
```

Return to Datalyr and open **Events**. Find the newest `pageview` and confirm:

* The URL and path match the page you opened.
* `utm_source` is `docs_test`.
* `utm_medium` is `paid`.
* `utm_campaign` is `setup_check`.
* An anonymous or visitor ID is present.

Navigate to a second page. Its page view should use the same visitor and session.

## 2. Test identity

If users sign in, complete a sign-in in the same private window. Your application should identify the customer with a stable ID from your database.

```ts theme={null}
datalyr.identify('user_123', {
  email: 'person@example.com',
  name: 'Test Customer'
})
```

Confirm `$identify` appears in **Events** and the customer appears in **Users**. The earlier anonymous visit should remain part of that customer's journey.

<Warning>
  Do not use an email address as the primary ID if your database has a stable user ID. Emails can change.
</Warning>

## 3. Test a product event

Trigger one action that matters to your funnel:

```ts theme={null}
datalyr.track('signup_completed', {
  plan: 'starter',
  source: 'verification'
})
```

Open the event and check its properties. Event names should be stable, lowercase, and descriptive. Avoid generating event names from button text or page titles.

## 4. Test revenue

After connecting a revenue source, use its sandbox or test flow when supported. Confirm the purchase or subscription appears with a transaction ID, amount, currency, customer identifier, and source.

Then open the customer in **Users**. The landing visit, identity event, product event, and revenue event should form one journey.

## If an event is missing

Check in this order:

1. The change was published to the URL you tested.
2. The page contains one Datalyr install, not zero or two.
3. The workspace ID matches **Settings → Install**.
4. Analytics consent was granted, if your site requires it.
5. The test browser is not blocking the request.
6. The browser console has no Datalyr initialization error.

Enable debug logging temporarily:

```html theme={null}
<script
  defer
  src="https://track.datalyr.com/dl.js"
  data-workspace-id="YOUR_WORKSPACE_ID"
  data-debug="true"
></script>
```

Remove `data-debug="true"` after testing.

## If the event exists but attribution is missing

Start a new private session with the test URL. Check that redirects preserve the query string and that no landing-page script removes campaign parameters before Datalyr loads. For cross-domain journeys, configure the domains before testing.

<Check>
  You are ready when the page view, campaign fields, identity, key product event, and test revenue all appear on the expected customer journey.
</Check>
