---
title: Web analytics API
related:
  - https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/web-analytics.md
  - https://docs.kentico.com/k10/custom-development/database-table-api.md
  - https://docs.kentico.com/k10/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/configuring-web-analytics/web-analytics-api/adding-custom-web-analytics.md
  - https://docs.kentico.com/k10/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/configuring-web-analytics/web-analytics-api/logging-custom-conversions-through-the-api.md
  - https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/campaigns.md
  - https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/web-analytics/logging-custom-conversions-on-your-website.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

## Database tables

Web analytics use six primary database tables to store statistics and their values.

The **Analytics\_Statistics** table stores records that represent the statistics of a tracked event within a certain context, i.e. related to a specific object, site and culture.

Five other tables are used to store the exact number of hits for the statistics in the _Analytics\_Statistics_ table:

- **Analytics\_HourHits**
- **Analytics\_DayHits**
- **Analytics\_WeekHits**
- **Analytics\_MonthHits**
- **Analytics\_YearHits**

When a hit for a tracked statistic occurs, it is logged into all of these tables. The difference between them is in the unit of time used to separate hits into individual records. For example, a record in the **Analytics\_HoursHits** table contains the number of hits that were logged for a given statistic during one hour, while a single record in **Analytics\_MonthHits** counts all hits that occurred over an entire month.

The **Analytics\_ExitPages** table is used to temporarily store exit page candidates for the _Top exit pages_ statistic. The latest candidate recorded for a visitor when their session expires is then stored as the final exit page.

![](https://docs.kentico.com/docsassets/k10/web-analytics-api/image.png)

### Campaign statistic storage

The following tables store [campaign](https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/campaigns.md) tracking objects:

| Database table                | Description                                                                                                                                                                              |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Analytics\_Campaign           | Contains records representing campaigns and their settings.                                                                                                                              |
| Analytics\_CampaignAsset      | Stores relationships between campaigns and their assets specified by their GUID.                                                                                                         |
| Analytics\_CampaignAssetUrl   | Stores relationships between campaigns and their assets specified by their GUID for [MVC sites](https://docs.kentico.com/k10/developing-websites/developing-sites-using-asp-net-mvc.md). |
| Analytics\_CampaignConversion | Contains records representing campaign conversions.                                                                                                                                      |

> **Info:** Conversions used in campaigns are a different type of conversions that are used elsewhere, typically [A/B tests](https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/optimization-testing/a-b-testing-website-pages.md). If you are interested in the other type of conversions, see [Logging custom conversions on your website](https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/web-analytics/logging-custom-conversions-on-your-website.md).

### Custom conversion statistic storage

[Custom conversion](https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/web-analytics/logging-custom-conversions-on-your-website.md) tracking objects are stored in the **Analytics\_Statistics** table and the corresponding amount of hits for individual units of time are saved in the appropriate **Hits** table.

The following code names are used for custom conversion statistics:

- **conversion** – general statistic used to store the overall custom conversion records. This statistic is always logged when a custom conversion is performed on the website.
- **abconversion;;** – logged when a conversion is performed by a user who viewed the given page variant of an [A/B test](https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/optimization-testing/a-b-testing-website-pages.md).
- **mvtconversion;;** – logged when a conversion is performed by a user who viewed the given content combination on a page with a defined [multivariate test](https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/optimization-testing/multivariate-testing.md).

All types of custom conversions use the **StatisticsObjectName** column to store the code name of the logged custom conversion.

## API classes

You can find all web analytics classes under the **CMS.WebAnalytics** namespace.

| Class                                               | Description                                                                                                                          |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| **Analytics\_Statistics table API**                 |                                                                                                                                      |
| StatisticsInfo                                      | Represents the statistics of a certain event within a specific context.                                                              |
| StatisticsInfoProvider                              | Provides management functionality for statistic records.                                                                             |
| **Analytics\_Hits table API**                       |                                                                                                                                      |
| HitsInfo                                            | Represents the hits of statistics during a specific time interval.                                                                   |
| HitsInfoProvider                                    | Provides management functionality for statistic hits.                                                                                |
| **Analytics\_Campaign table API**                   |                                                                                                                                      |
| CampaignInfo                                        | Represents campaign tracking objects.                                                                                                |
| CampaignInfoProvider                                | Provides management functionality for campaigns.                                                                                     |
| **Analytics\_CampaignAsset table API**              |                                                                                                                                      |
| CampaignAssetInfo                                   | Represents the relationships between campaigns and their assets.                                                                     |
| CampaignAssetInfoProvider                           | Provides management functionality for the relationships.                                                                             |
| **Analytics\_CampaignAssetUrl table API**           |                                                                                                                                      |
| CampaignAssetUrlInfo                                | Represents the relationships between campaigns and their assets on MVC sites.                                                        |
| CampaignAssetUrlInfoProvider                        | Provides management functionality for the relationships.                                                                             |
| CampaignAssetUrlInfoHelper                          | Provides functionality for input validation.                                                                                         |
| **Analytics\_Campaign**Conversion\*\* table API\*\* |                                                                                                                                      |
| CampaignConversionInfo                              | Represents conversion tracking objects of campaigns.                                                                                 |
| CampaignConversionInfoProvider                      | Provides management functionality for campaign conversions.                                                                          |
| **Analytics\_Conversion table API**                 |                                                                                                                                      |
| ConversionInfo                                      | Represents custom conversion tracking objects of all other objects using custom conversions (e.g. A/B tests).                        |
| ConversionInfoProvider                              | Provides management functionality for custom conversions.                                                                            |
| **Other classes**                                   |                                                                                                                                      |
| AnalyticsHelper                                     | Provides general web analytics functionality and data.                                                                               |
| HitLogProvider                                      | Contains methods used to create the analytics log files for statistics.                                                              |
| HitLogProcessor                                     | This class defines the scheduled task that periodically processes analytics log files and transfers the information to the database. |
