Web analytics API
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 Exit pages statistic. Exit page candidates are updated as visitors browse pages on the website (bound to individual users through a cookie). After an exit page candidate remains unchanged for 20 minutes, it is stored as an exit page.
Campaign statistic storage
The following tables store campaign 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 page assets specified by their GUID. |
Analytics_CampaignConversion | Contains records representing campaign conversions. |
API classes
You can find the web analytics API classes and services under the CMS.WebAnalytics namespace.
Class | Description |
Analytics logging service | |
IAnalyticsLogger | Service that allows logging of web analytics hits. We recommend obtaining instances of the service using dependency injection. |
Analytics_Statistics table API | |
StatisticsInfo | Represents the statistics of a certain event within a specific context. |
StatisticsInfoProvider | Provides management functionality for statistic records. |
Analytics_<time interval>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 page assets. |
CampaignAssetUrlInfoProvider | Provides management functionality for the relationships. |
CampaignAssetUrlInfoHelper | Provides functionality for input validation. |
Analytics_CampaignConversion table API | |
CampaignConversionInfo | Represents conversion tracking objects of campaigns. |
CampaignConversionInfoProvider | Provides management functionality for campaign conversions. |