I wanted to create a report on particular page events. In Sitecore 7.2 we had a PageEvents table; in Sitecore 8 xDB, this table seems to be missing from the Reporting DB.

I checked the Interactions collections in MongoDB, and each interaction has a page associated and every page has various page events.

As specified in documentation, reporting should come from the Reporting DB. Are we missing the PageEvents table in Reporting DB?

  • I don't have practical experience with the scenario. but did you check the sitecore kb for trouble shooting? link here. Also, as I understand the visits are written to Mongo Db after session ends. But the interactions are to be processed to get into reporting db. check the link for processing overiview.
    – phani
    Commented Dec 5, 2016 at 14:14

2 Answers 2


The only place I can see page events for SC8 is in the Fact_Conversions table. There is a field GoalId that has a foreign key to the PageEventDefinitions table. All the triggered page events should be stored in there.

Fact_Conversions table definition

Remember that 2 things have to happen for it to get there. First the data must be written to MongoDb once the users session ends. Also the aggregation service needs to run to aggregate all the Mongo data into the reporting DB.

  • Keep in mind that this table only stores data for triggered goals; it won't have aggregated data for other types of page events. Data for all types of page events is available from the table SegmentRecords via xAnalytics reports. Commented Dec 5, 2016 at 19:59
  • @DmytroShevchenko Im sorry im new to this, i did not get what you mean by only stores data for triggered goals? Also the Segments records does not seem to have any field that matches the pageevent defintion id.
    – user1234
    Commented Dec 6, 2016 at 16:57
  • @DmytroShevchenko i dont see my page event entry in this fact_conversions table
    – user1234
    Commented Dec 6, 2016 at 17:45
  • @user1234 you don't see it, most likely, because your page event is not a Goal. Try to define it as a goal first—follow the documentation here: doc.sitecore.net/sitecore_experience_platform/digital_marketing/… Commented Dec 6, 2016 at 18:19
  • @user1234 Segments store all kinds of data. That table is defined in a generic way, so that it can store aggregated information for any set of dimensions. Please follow the links in my answer below to find out how to work with segments and define custom filters and reports. Commented Dec 6, 2016 at 18:21

The ways in which data is stored and accessed have changed drastically between DMS (up to Sitecore 7.2) and xDB (Sitecore 7.5 and onward).

In 7.2, all collected and reporting data was stored in the Analytics database in SQL.

In xDB, collected data is stored in the Collection database (MongoDB), while reporting data is processed and stored in the Reporting database (SQL Server). Data in the Reporting DB is actually stored in two different ways:

  1. Fact and Dimension tables (used by older reports):
    • Fact_*
    • Keywords, Contacts, Languages, etc.
  2. Dimensions, segments and metrics (used by Experience Analytics):
    • DimensionKeys
    • Segments
    • SegmentRecords
    • SegmentRecordsReduced
    • Fact_SegmentMetrics
    • Fact_SegmentMetricsReduced

The Experience Analytics tables store (among other types of data) page event data as segments.

If you want to create a custom Experience Analytics report, you'll want to use the data in the Experience Analytics tables. You may need to create custom aggregation logic for your data, but keep in mind that these tables, most likely, already store all the data you need. So you'll just need to create custom filters and segments.

To create a custom Experience Analytics report, follow the guidelines from the official Sitecore documentation:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.