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

# Analytics Reporting

> Hook your embedded dashboards up to your own analytics endpoints or configure Javascript events to receive information about page views and clicks. 

## Configuring Analytics

On the settings page, there's a subsection in the Developers section for
Analytics. From here, you can supply a URL and, optionally, authorization token
for Explo to send information to and select the set of actions you want
reported.

Note that the url must be formatted as a valid url with `http://` or `https://`.

If you'd like to receive a Javascript Event when an Analytics Event is sent, set up an event listener for `analyticsEventFired`. Read about [javascript events](/general-features/custom-js-events).

<img src="https://mintcdn.com/explo/4Y9DMZyhe_6AAnca/images/dashboard-features/analytics-reporting-1.png?fit=max&auto=format&n=4Y9DMZyhe_6AAnca&q=85&s=9a4a638950268bc950efab90c049c8fb" alt="" width="751" height="398" data-path="images/dashboard-features/analytics-reporting-1.png" />

## Analytics Data

When, for example, your dashboard is viewed from a Share link, Explo will send a
request to the supplied URL with the following shape.

| Field              | Type   | Description                                           |
| ------------------ | ------ | ----------------------------------------------------- |
| user\_id           | string | Id of the user who triggered the event                |
| name               | string | The type of event triggered                           |
| properties         | json   | Metadata about the event                              |
| custom\_properties | json   | Custom metadata passed in to embedded `web component` |

For javascript events, the metadata described above will be contained in the detail of the event message.

## Event Types

#### Shared Event Types

| Name                         |
| ---------------------------- |
| Portal Dashboard Page Viewed |
| Data Panel PDF Downloaded    |
| CSV Downloaded               |
| Table Sorted                 |
| Table Paged                  |
| Table Filtered               |
| Dropdown Selected            |
| Multiselect Selected         |
| Datepicker Selected          |

#### Explore Specific Event Types

| Name                         |
| ---------------------------- |
| Dashboard Page Viewed        |
| Shared Dashboard Page Viewed |
| Shared Chart Viewed          |
| Share Button Clicked         |

## Metadata Properties

#### Shared Properties

| Field                  | Type    |
| ---------------------- | ------- |
| team\_id               | int     |
| team\_name             | string  |
| customer\_id           | int     |
| customer\_name         | string  |
| customer\_provided\_id | string  |
| customer\_is\_demo     | boolean |

#### Explore Properties

| Field                     | Type   |
| ------------------------- | ------ |
| dashboard\_template\_id   | int    |
| dashboard\_template\_name | string |

#### Page View Event Additional Properties

| Field          | Type   | Description                                                  |
| -------------- | ------ | ------------------------------------------------------------ |
| is\_production | bool   | true if this is a production dashboard                       |
| environment    | string | the environment tag supplied when the dashboard was embedded |
| is\_strict     | bool   | whether the dashboard was embedded in strict mode            |
| embed\_source  | string | share or iframe, depending on how the dashboard was embedded |

## Recommended Ways to Test

Internally, we use [Beeceptor](https://beeceptor.com/) to test these endpoints. It ensures the requests are sending and that the request body is structured as expected. All you need to do is launch a mock server and use that generated endpoint, like `garytesting.free.beeceptor.com`, in the `URL` field in the [Explo app](https://app.explo.co/settings/analytics).

Then, open your embedded dashboard and fire some events to see it flow to Beeceptor.
