One of the Analytics features available for manufacturers is a query page that allows manufacturers to gain insights on their extension usage. This query page provides a centralized dashboard for manufacturers to query and analyze events relating to their extension such as toolbox show/hide, snapper insert/select etc. This article covers some key concepts and instructions for developers to ensure that all the event data related to their extensions are being captured correctly, and as a result, be able to extract accurate insights via the query page.
Note: Information about Extension Analytics for Manufacturers and the query page functionality is accurate as of the time of writing. However, please be aware that the query page is still under development so screenshots and available features may change. That said, the interface and instructions for CET Extensions should still be valid and applicable for CET releases 15.0 and onwards.
Data source
The data that drives the query page for manufacturer's extensions are data that is collected from CET. User event log calls are placed throughout CET and are triggered when certain events occur, for instance opening or closing a window, inserting a snapper, selecting a snapper etc. These collected data are then sent and stored in the cloud. The query page allows developers and manufacturers to query against this data set to allow for.
Query fields in query page
The Query page allows extension owners and developers to visualize the data collected from everyday use of CET. Based on the field filters, users can get a result on number of events that occurred during the user-specified time span. The end result is a line graph that plots y-axis as number of occurrence and x-axis as time.
The basic fields that you can filter on in the query page are:
- Category: Snapper / UI / more to come in the future
- Package: Package where the event occurred.
- StatsEntityKey: The key that best represents the entity of event, and it is the property that developers should look to modify if the defaults do not suit their needs.
- Action: The action that occurred in this event, for example snapper_insert for snapper insert, dialog_show for frame window show.
All events should be filterable on these fields. For example if you want to know how many of FODataPanelFrame were inserted for the past 1 month, you need to set the following:
Query Period: last month
Category: Snapper
Package: custom.fika.office
Actions: snapper_insert
StatsEntityKey: FODataPanelFrame
Result Grouping: None
If you have specified package as all packages, that would work as well as long as the class name FODataPanelFrame is unique in all packages, but the query will take longer as it is searching on a bigger scope.
You can also group the results through the "Results Grouping" field. For example, you can filter on all inserted snappers and do group by className, then you will get a graph showing how many snappers inserted per snapper class.
For G3 events, there will be an advanced filter where you can filter on all additional fields, such as partNumber on DataSymbol.
Manufacturer exclusivity
The dataset available for developers and manufacturers to query against is manufacturer-exclusive. For a given developer MyConfigura account, the developer is only be able get insights from events that are specific to their associated manufacturer. This comprises of events specific to the manufacturer's owned extension, catalogues portfolios or libraries. In the subsequent article on "Developing for Extension Analytics", instructions on how to verify what data is captured and how to correct them if needed.
Events and Entities
The data collected in CET are known as events, more specifically G3 User Events. There is a legacy statistics system that collects events before this, which was being used internally. However, to support the query page, we designed and implemented a new system of events known as G3 User Events.
The structure of the new G3 events allows it to carry Entities (in CM, see G3StatsEntity
). Each entity carries information/fields specific to the context of the event. For instance, inserting a snapper will trigger the creation of a G3UserEvent, under this event, it will carry a SnapperStatsEntity to carry the information of the snapper that was inserted. There will also be cases where more than one entity is carried in the same event. For example, inserting a DataSymbol will create a G3UserEvent that carries both SnapperStatsEntity and DsDataStatsEntity, which provides additional information of the catalog that the DataSymbol originated from.
Supported user events
The event information and information about the entities of the events are captured automatically by the system. Right now, the system captures two categories of events, namely "Snapper" and "UI".
The type of "Snapper" events are:
- "snapper_insert" - this is logged when user inserts a Snapper (symbol) into the drawing space. And this event will contain information about the inserted Snapper.
- "snapper_select" - this is logged when user selects a Snapper that already exists in the drawing space. Note that only the information about the main Snapper (among a multi-selection of snappers) are captured in the event.
The type of "UI" events are:
- "dialog_show" / "dialog_hide" - this is logged when the user opens or closes a dialog (any Window object that extends from the class FrameWindow). This event will contain information of the Window object and in specific cases, it contains more contextual information of the dialog's content. For example, a Scheme dialog event would contain information about the Scheme system itself."
- "toolbox_click" - this is logged when the user clicks on the library card (to open the toolbox library). This event would contain information about the Window object (i.e. the Card) and information about the toolbox itself.
There are also "custom" events, which would the described in more detail in the subsequent article: Developing for Extension Analytics.
Analytics Event Viewer
The Analytics Event Viewer is a diagnostic tool for monitoring the generation of user events as part of the analytics system. It shows the events and it’s corresponding events captured on CET (from the user actions triggered).
Developers with CET Developer license will have access to this tool and it’s available on the “Statistics Test” extension.
Event List
The left half of the dialog the list of events as they are generated.
Note: There will be a slight delay between the event being generated and it is appearing in this list. The 'Time' value for the event represents the time the event was *generated*, not the time it was appended to the list. While events are generated immediately by the system, they are only 'reported' by a background task. This is the source of the delay.
Note: Using this dialog, you will be able to observe events of other manufacturer extension if those user actions are performed in your CET session. However, as mentioned above, aggregated results from those events won't be available on the query page if you don't have developer permissions for those other manufacturers.
Details View
The top right quadrant of the dialog contains information on the event itself. Any of the values can be clicked to copy the value to the clipboard.
Additionally, there is a button labeled 'Inspect Event' at the bottom of this section. This button will open the inspector for the event.
Entities View
The bottom right quadrant of the dialog contains information on the entities of the event. Every event will have a number of 'entities' attached to it to give more context to the event. Each entity will get its own shrinkable window. Any of the values can be clicked to copy the value to the clipboard.
Comments
0 comments
Please sign in to leave a comment.