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

# Analytics Collected Events

> Reference of all events collected by the platform analytics pipeline

This document lists all events collected by the Meridian web frontend and sent to the platform analytics pipeline (`POST /v1/events`). For architecture and ingestion details, see [Platform Analytics (Event Pipeline)](/backend/analytics-platform).

***

## Admin Exclusion

When the `excludeAdminUsersFromTracking` config is enabled (default: `true`), users with the `admin` role are excluded from all tracking. No events are sent for admin users in this case. Configure this in **Feature Admin → Beacon → Analytics**.

***

## Session & System Events

| Event           | Type      | Description                              | Properties                                            |
| --------------- | --------- | ---------------------------------------- | ----------------------------------------------------- |
| `session_start` | System    | Fired when the analytics SDK initializes | —                                                     |
| `screen_view`   | Page View | Fired when a user views a screen/page    | `screen`, `event_id`, `org_id`, etc. (varies by page) |

***

## Event Pages & Actions

### Page Views

| Event         | Screen Name                  | Description                                                    | Properties               |
| ------------- | ---------------------------- | -------------------------------------------------------------- | ------------------------ |
| `screen_view` | Event Page                   | User views an event detail page                                | `event_id`, `event_name` |
| `screen_view` | Event Workspace              | User views event management workspace (Club Dashboard overlay) | `event_id`, `org_id`     |
| `screen_view` | Events Dashboard             | User views the main events dashboard                           | —                        |
| `screen_view` | Explore                      | User views the event explore/discovery page                    | —                        |
| `screen_view` | Orgs List                    | User views the organizations list                              | —                        |
| `screen_view` | Create Event                 | User views the event creation form                             | —                        |
| `screen_view` | Club Dashboard               | User views an org's club dashboard                             | `org_id`                 |
| `screen_view` | Events Management            | Org admin views events management                              | `org_id`                 |
| `screen_view` | Approval Dashboard (OIE)     | OIE/admin views approval dashboard                             | `approval_group`         |
| `screen_view` | Org Management               | Admin views org management (Atlas)                             | —                        |
| `screen_view` | Event System Config (Beacon) | Admin views event system configuration                         | —                        |

### Event Actions

| Event                          | Description                                                           | Properties                                 |
| ------------------------------ | --------------------------------------------------------------------- | ------------------------------------------ |
| `event_view`                   | User views an event detail page                                       | `event_id`, `source` (implicit from route) |
| `event_agenda_view`            | User opens the event agenda modal                                     | `event_id`                                 |
| `event_registration`           | User registers for an event                                           | `event_id`                                 |
| `event_registration_form_open` | User opens the registration form modal (before submitting or closing) | `event_id`                                 |
| `event_registration_withdraw`  | User withdraws registration from an event                             | `event_id`                                 |
| `event_checkin`                | User checks in to an event (during event time)                        | `event_id`                                 |
| `event_checkout`               | User checks out of an event                                           | `event_id`                                 |
| `event_create_click`           | User clicks to create event from dashboard                            | `source`                                   |
| `event_create_submitted`       | User successfully submits event creation                              | `event_id`, `as_draft`, `hosting_type`     |
| `event_workspace_view`         | Org admin views event dashboard/workspace                             | `event_id`, `org_id`                       |
| `event_workspace_tab_view`     | Org admin views a tab within event workspace                          | `event_id`, `org_id`, `tab`                |

**Event Workspace tabs:** `overview`, `agenda`, `jobs`, `analytics`, `edit`, `registrations`, `checkin`, `equipment`, `communications`

### Referrer Attribution (all events)

Because `document.referrer` does not update on client-side SPA navigation, the app tracks the previous pathname on every route change and injects it into `context.referrer` for **all** analytics events (track and screen). The analytics SDK automatically uses this SPA referrer when available, falling back to `document.referrer` for external links and new tabs.

This provides accurate referrers for any page view or event without per-page logic. The backend derives normalized sources from `context.referrer` for event analytics:

| Source     | Condition (pathname or URL contains) |
| ---------- | ------------------------------------ |
| `org_page` | `/org/` or `/club-dashboard/`        |
| `explore`  | `/events-dashboard`                  |
| `direct`   | Empty, external URL, or unrecognized |

To add new sources, extend the backend aggregation's path-matching logic in `eventAnalyticsRoutes.js`. The raw `context.referrer` is available for custom analytics or downstream consumers.

***

## Organization Pages & Actions

### Page Views

| Event         | Screen Name | Description                              | Properties           |
| ------------- | ----------- | ---------------------------------------- | -------------------- |
| `screen_view` | Org Page    | User views an organization's public page | `org_id`, `org_name` |

### Org Actions

| Event          | Description                                         | Properties |
| -------------- | --------------------------------------------------- | ---------- |
| `org_join`     | User joins an organization (or submits application) | `org_id`   |
| `org_leave`    | User leaves an organization                         | `org_id`   |
| `org_follow`   | User follows an organization                        | `org_id`   |
| `org_unfollow` | User unfollows an organization                      | `org_id`   |

***

## Mobile App Landing Page

The Mobile Landing page (`/mobile`) promotes the Meridian mobile app and tracks install-related actions.

### Page Views

| Event         | Screen Name    | Description                            | Properties |
| ------------- | -------------- | -------------------------------------- | ---------- |
| `screen_view` | Mobile Landing | User views the mobile app landing page | —          |

### Mobile Landing Actions

| Event                             | Description                                        | Properties                                                  |
| --------------------------------- | -------------------------------------------------- | ----------------------------------------------------------- |
| `mobile_landing_app_store_click`  | User clicks the App Store badge                    | `source` (e.g. `hero`, `cta_section`)                       |
| `mobile_landing_play_store_click` | User clicks the Play Store badge                   | `source`                                                    |
| `mobile_landing_qr_expanded`      | User clicks "Show QR" on desktop to reveal QR code | —                                                           |
| `mobile_landing_feature_click`    | User clicks a feature card                         | `feature` (e.g. `explore`, `shuttle_tracker`, `qr_scanner`) |

***

## Event Envelope

All events conform to the [event envelope schema](/backend/analytics-platform#event-envelope-schema). Key fields:

* **event** — Event name (e.g. `screen_view`, `event_registration`)
* **ts** — Client timestamp (ISO 8601)
* **event\_id** — Unique id for idempotency (UUID)
* **anonymous\_id** — Device-scoped persistent id
* **user\_id** — Set when user is logged in
* **session\_id** — Session identifier
* **platform** — `web`
* **app** — `meridian`
* **context** — `screen`, `route`, `referrer`, `locale`, `timezone`
* **properties** — Event-specific payload (no PII)

***

## Adding New Events

To add new events:

1. Use `analytics.track('event_name', { ...properties })` for actions
2. Use `analytics.screen('Screen Name', { ...properties })` for page views
3. Keep event names in `snake_case`
4. Avoid PII in properties (email, name, phone, etc. are stripped)
5. Update this document when adding new event types

***

## Related pages

<CardGroup cols={2}>
  <Card title="Platform analytics" icon="chart-line" href="/backend/analytics-platform">
    Philosophy, ingestion API, envelope schema, and storage in `analytics_events`.
  </Card>

  <Card title="Referrer sources" icon="share-nodes" href="/backend/analytics-referrer-sources">
    How URLs map to `source` buckets for dashboards and aggregations.
  </Card>

  <Card title="Mobile analytics" icon="smartphone" href="/mobile/analytics">
    Mobile SDK usage, batching, and parity with web event names.
  </Card>

  <Card title="Atlas event analytics" icon="chart-column" href="/atlas/event-analytics">
    Product-facing analytics built on the same event taxonomy.
  </Card>

  <Card title="Event check-in" icon="qrcode" href="/atlas/event-checkin">
    Flows that emit registration and check-in related events.
  </Card>

  <Card title="Web client best practices" icon="browser" href="/frontend/best-practices">
    Where `analytics.track` / `screen` are wired in the Meridian web app.
  </Card>
</CardGroup>
