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

# Preferences

> Configure analytics settings and preferences

## Overview

You can configure analytics preferences for your project. Go to **Project > Analytics > Preferences**

<img src="https://mintcdn.com/beyondwords/6v-xuioZrdejSSCf/assets/images/new-images/analytics/analyticspreferences.png?fit=max&auto=format&n=6v-xuioZrdejSSCf&q=85&s=d756009c71d8d747ce70109431e898db" alt="player" width="3006" height="1568" data-path="assets/images/new-images/analytics/analyticspreferences.png" />

### General

#### Track analytics

You can enable or disable analytics tracking for your project. You will need to **Save changes** to apply changes.

#### Track unique users

You can enable or disable unique user tracking for your project. You will need to **Save changes** to apply changes.

## Integrations

### Send data to Google Analytics

To send data to Google Analytics:

1. Enter your Google Analytics tracking ID.
2. Turn on **Send data to Google Analytics**.
3. Click **Save changes**.

#### BeyondWords metrics in Google Analytics

A page view involving an embedded BeyondWords Player will trigger one of five events, which together form the BeyondWords Player Event Category.

| Event        | Recorded When...                                              |
| ------------ | ------------------------------------------------------------- |
| Load         | The BeyondWords Player loads on the webpage.                  |
| Play         | A user clicks 'play' on a BeyondWords Player.                 |
| x% Listened  | A user plays a percentage of the audio (e.g. 10%, 20%, etc.)  |
| Advert Click | A user clicks the advertised link while an advert is playing. |
| Complete     | A user plays 100% of the audio.                               |

#### Create BeyondWords Player Event reports

You can create reports for specific events - for example, the **Play** action:

1. Go to **Explore** in the left sidebar and click on **Blank** to create a new exploration.
2. Give the exploration a name and then click **+** besides **Segments** followed by **Create a new segment**.
3. Choose **Event segment** as the segment type.
4. Enter a segment name and description — for example, **BeyondWords Player plays**.
5. In the **Add new condition** dropdown, select the dimension **Event** and choose **Event name**.
6. Press **Add filter** and edit the condition to contain the event **Play** and select **Apply**.
7. Add the dimension **Page title** in dimensions and metric **Event count** in metrics.
8. Add the imported segments, dimensions and metrics in the **Settings** tab to build a report.
9. You can now view the event count for specific pages which can better help you analyze your audience engagement. You can also import different dimensions and metrics to build meaningful reports that suit your needs.

### Send data to Custom analytics URL

To send data to a custom analytics URL:

1. Enter the URL to send data to.
2. Turn on **Send data to Custom analytics URL**.
3. Click **Save changes**.

You will need to provide an endpoint that can receive the events. Events will
be sent as POST requests according to the [Event Schema](/docs-and-guides/analytics/event-schema).

### Cross-origin requests

If your endpoint is located on a different domain than the player, you will
also need to support OPTIONS requests and respond with the necessary headers to
support cross-origin requests. Here are the headers we set on our own
metrics.beyondwords.io endpoint for reference:

```sh theme={null}
curl -I -X OPTIONS https://metrics.beyondwords.io

HTTP/2 204
date: Mon, 1 Jan 2026 12:00:00 GMT
content-type: text/plain; charset=utf-8
access-control-allow-origin: *
access-control-allow-credentials: true
access-control-allow-headers: Content-Type,Access-Control-Allow-Headers,Authorization,X-Requested-With
access-control-allow-methods: POST,OPTIONS
access-control-max-age: 1728000
```

The browser will send the OPTIONS request first and if it succeeds, the POST
request will be sent to the custom endpoint.
