Calculation Rules for Analytics Charts

This document provides detailed calculation rules for various analytics charts.

The CSV or OData data exported by the Wedia APIs should be used to build these charts.

For each chart, you will find a list of filters to apply to the input data. The value of each filter is provided here in its raw form (without internationalization).

Depending on the API used (OData or ODataTools), the output format is different. Therefore, it is highly recommended to verify the output data and, if necessary, apply the internationalization of the filter value (which is specific to each DAM and language).

It should also be noted that the OData API only exports data related to actions on DAM objects (and thus no information about connections, search, etc.). Therefore, it is recommended to use the ODataTools API.

General Explanations

Within our application, we use ElasticSearch, so to track these charts, we use specific queries that are unique to it. Therefore, the definition of each chart consists of a composition of N queries.

In the table below, you will find all the queries used in building the charts:

Nom 

Définition

mustEquals(field,value)

The value in the field must be strictly equal to the value.

Value is a unique value.

mustNotEquals(field,value)

The value in the field must not be equal to the value.

Value is a unique value.

mustObjectnameHaveTag(field,values)

Filters a field representing an object name (e.g., objectname) to only include objects with at least one of the specified tags.

The main use of this query is mustObjectnameHaveTag("objectname", "damobject").

This query is equivalent to mustIn("objectname", "List of object names of type damobject").

mustIn(field,values)

The value in the field must be at least one of the exact values in the values array.

Values is an array.

mustNotIn(field,values)

The value in the field must not be any of the values in the values array.

Values is an array.

mustNotPrefix(field,value)

The value in the field must not start with the specified value.

Value is a unique value.

 

In some cases, a single query is applied to an entire tab, but sometimes there is one query per chart. You will find the detailed list further in this document.

Once the query is applied, we perform an aggregation on a field or calculate a sum to obtain the displayed values.

It should be noted that some charts are plotted using batch data within the application, so these data are not exported, and it will be impossible to recreate the corresponding charts.

Each title corresponds to an entry in the menu located on the left side of the analytics module. Each subtitle corresponds to a tab located at the top of an entry in the menu. Each number within a subtitle corresponds to a chart.

Users and Assets

All charts in this section are the result of batch processing. Therefore, they cannot be reproduced as mentioned in the introduction.

Livestream

These charts are not meant to be reproduced. They combine the 50 latest download and search actions, which are not meaningful when using an export with a minimum granularity of a day.

Internal Asset Usage

Usage

To build eligible charts, in the case of using CSV export, the endpoint format is: /api/wedia/analytics/odataools/dam/csv*.

Creation

action_id

mustEquals

insert

session_type

mustNotEquals

admin

asset_objectname

mustObjectHaveTagName

damobject

  • Number -> Sum of the number of rows after filtering

  • Evolution -> Distribution of the sum over the period of your choice

  • Distribution of asset creations by asset -> Group by asset_objectname

  • Distribution of creations by user -> Group by surfer_uid

  • List of created assets -> Group by asset_name

Update

action_id

mustEquals

update

session_type

mustNotEquals

admin

asset_objectname

mustObjectHaveTagName

damobject

  • Number -> Sum of the number of rows after filtering

  • Evolution -> Distribution of the sum over the period of your choice

  • Distribution of asset updates by asset -> Group by asset_objectname

  • Distribution of updates by user -> Group by surfer_uid

  • List of updated assets -> Group by asset_name

Deletion

action_id

mustEquals

delete

session_type

mustNotEquals

admin

asset_objectname

mustObjectHaveTagName

damobject

  • Number -> Sum of the number of rows after filtering

  • Evolution -> Distribution of the sum over the period of your choice

  • Distribution of deletions by user -> Group by surfer_uid

Workflow actions

action_id

mustPrefix

wkf_

session_type

mustNotEquals

admin

asset_objectname

mustObjectHaveTagName

damobject

  • Number -> Sum of the number of rows after filtering

  • Evolution -> Distribution of the sum over the period of your choice

  • Distribution of actions by asset -> Group by asset_objectname

  • Distribution of actions by user -> Group by surfer_uid

  • List of updated assets -> Group by asset_name

Rankings

To build eligible charts, in the case of using CSV export, the endpoint is in the following format: /api/wedia/analytics/odataools/dam/csv*

Most viewed media:

action_id

mustEquals

view

session_type

mustNotEquals

admin

asset_objectname

mustObjectHaveTagName

damobject

Aggregation is then performed on the asset_name or asset_uid field.

Most downloaded media:

action_id

mustEquals

download

session_type

mustNotEquals

admin

asset_objectname

mustObjectHaveTagName

damobject

Aggregation is then performed on the asset_name or asset_uid field.

Videos

action_id

mustEquals

playfinish

session_type

mustNotEquals

admin

asset_objectname

mustObjectHaveTagName

damobject

asset_type

mustEquals

video

Average completion percentage of a video is calculated as follows:

  • the player sends "playFinish" events every X% (default is 5, but configurable via an existing option of the player called "wediaStatsPlayFinishStep"),

  • we calculate the average of the "playFinish_percentage" events.

  • For the calculation, we determine the completion rate throughout the playback using the formula 100.0 * self.position() / duration.

  • It's important to note that if the user seeks back during playback, the sent completion rate will be the highest value calculated previously.

  • Average percentage of video completion: Calculate the average of "playfinish_percentage" over the period.

  • List of viewed videos: Group by asset_name or asset_uid.

  • List of fully viewed videos: Add a condition "playfinish_percentage".mustEquals(100) and group by asset_name or asset_uid.

  • Distribution of views by reference: The complete referer is not exported, only the domain (see next point).

  • Distribution of views by domain: Group by referer.

Portal

Connections

The data used to build these charts is not exported.

Views

To build eligible charts, in the case of using CSV export, the endpoint is in the following format: /api/wedia/analytics/odataools/dam/csv*

session_type

mustEquals

portal

asset_objectname

mustObjectHaveTag

damobject

action_id

mustEquals

view

  • Number of viewed assets: Sum of the number of rows.

  • Distribution of asset views by country: Group by country.

  • Distribution of asset views by role: Group by user_role_id.

  • Distribution of asset views by asset: Group by asset_objectname.

  • List of top asset viewers: Group by surfer_uid.

In addition to these charts, a chart is displayed for each property that has the tag "analytics_extra" (see Wedia Analytics documentation for the functioning of this tag). No additional queries are applied to these charts. There is also a chart for the property "analytics_surfer_extra" (see Wedia documentation).

Downloads

To build eligible charts, in the case of using CSV export, the endpoint is in the following format: /api/wedia/analytics/odataools/dam/csv*

session_type

mustEquals

bo

asset_objectname

mustObjectHaveTag

damobject

action_id

mustEquals

download

  • Number of downloaded assets: Sum of the number of rows.

  • Distribution of downloads by country: Group by country.

  • Distribution of downloads by role: Group by user_role_id.

  • Distribution of downloads by asset: Group by asset_objectname.

  • Ranking of users by number of downloads: Group by surfer_id.

In addition to these charts, a chart is displayed for each property that has the tag "analytics_extra" (see Wedia Analytics documentation for the functioning of this tag). No additional queries are applied to these charts. There is also a chart for the property "analytics_surfer_extra" (see Wedia documentation).

Search

The data used to build these charts is not exported.

Tables

The data used to build these charts is not exported.

Others

The data used to build these charts is not exported.

 

Back-Office

Connections

To build eligible charts, in the case of using CSV export, the endpoint is in the following format: /api/wedia/analytics/odataools/connexion/csv*

session_type

mustEquals

bo

  • Number of logged-in users: Sum of unique values of surfer_uid.

  • Number of connections: Sum of the number of rows.

  • Evolution of the number of connections: Sum of the number of rows and distribution per chosen period.

  • Distribution of connections by location: Group by country.

  • Distribution of connections by user role: Group by user_role_id.

Views

To build eligible charts, in the case of using CSV export, the endpoint is in the following format: /api/wedia/analytics/odataools/dam/csv*

session_type

mustEquals

bo

asset_objectname

mustObjectHaveTag

damobject

action_id

mustEquals

view

  • Number of viewed media: Sum of the number of rows.

  • Distribution of media views by country: Group by country.

  • Distribution of media views by role: Group by user_urole_id.

  • Distribution of media views by asset: Group by asset_objectname.

  • List of top media viewers: Group by surfer_uid.

Downloads

To build eligible charts, in the case of using CSV export, the endpoint is in the following format: /api/wedia/analytics/odataools/dam/csv*

session_type

mustEquals

bo

asset_objectname

mustObjectHaveTag

damobject

action_id

mustEquals

download

  • Number of downloads: Sum of the number of rows.

  • Distribution of downloads by country: Group by country.

  • Distribution of downloads by role: Group by user_role_id.

  • Distribution of downloads by asset: Group by asset_objectname.

  • Ranking of users by number of downloads: Group by surfer_uid.

Search

To build eligible charts, in the case of using CSV export, the endpoint is in the following format: /api/wedia/analytics/odataools/fulltext/csv*

session_type

mustEquals

bo

asset_objectname

mustObjectHaveTag

damobject

action_id

mustEquals

search

  • Number of searches: Sum of the number of rows.

  • Distribution of searches by success: Group by actionid.

  • Distribution of full-text searches by language: Group by fulltextLocales.

  • Distribution of searches by user: Group by surfer_uid.

  • Most searched terms in full-text: Group by fulltext.

Filters

The information to build these charts is not exported in the CSV stream.

 

Media Delivery

To build eligible charts, in the case of using CSV export, the endpoint is in the following format: /api/wedia/analytics/odataools/dam/csv*

Volume

session_type

mustIn

“cdnakamai”,“cdnamazon”

asset_objectname

mustObjectHaveTag

damobject

referer

mustNotEquals

“your server name”

  • Number of hits: Sum of the number of rows.

  • Evolution of the number of hits: Sum and distribution per chosen period.

  • Distribution of hits by country: Group by country.

  • Distribution of hits by pages: Not exported in the CSV, only reference domains.

  • Distribution of hits by referring domain: Group by referer.

  • Distribution of hits by media: Group by asset_name or asset_uid.

Tables

The information is calculated by internal processes and is therefore not exported via the ODataTools API.

 

Web-to-Print

To build eligible charts, in the case of using CSV export, the endpoint is in the following format: /api/wedia/analytics/odataools/dam/csv*

Documents

session_type

mustNotEquals

admin

asset_objectname

mustEquals

monodoc

  • Number of created documents: Add a condition "actionid".mustEquals("insert") and sum the number of rows.

  • Number of users who created a document: Add a condition "actionid".mustEquals("insert") and sum the number of unique values in the surferuid field.

  • Number of check-ins: Add a condition "actionid".mustEquals("w2p_cico_checkint") and sum the number of rows.

  • Number of checkouts: Add a condition "actionid".mustEquals("w2p_cico_checkout") and sum the number of rows.

  • Evolution of the number of created documents: Add a condition "actionid".mustEquals("insert") and distribute by period.

  • Evolution of the number of compositions: Add a condition "actionid".mustEquals("w2p_user_sendwxml") and distribute by period.

  • Users with the most check-ins and checkouts: Add a condition "actionid".mustIn("w2p_cico_checkin", "w2p_cico_checkout") and group by the surfer_uid field.

  • Documents with the most check-ins and checkouts: Add a condition "actionid".mustIn("w2p_cico_checkin", "w2p_cico_checkout") and group by asset_uid or asset_name.

  • Users who created the most documents: Add a condition "actionid".mustEquals("insert") and group by surfer_uid.

  • Documents with the most compositions during the period: Add a condition "actionid".mustEquals("w2p_user_sendwxml") and group by asset_uid or asset_name.

Templates

session_type

mustNotEquals

admin

asset_objectname

mustIn

monodocmodel, zsnippet

  • Number of created templates: Add a condition "actionid".mustEquals("insert") and sum the number of rows.

  • Number of users who created a template: Add a condition "actionid".mustEquals("insert") and sum the number of unique values in the surferuid field.

  • Number of check-ins: Add a condition "actionid".mustEquals("w2p_cico_checkint") and sum the number of rows.

  • Number of checkouts: Add a condition "actionid".mustEquals("w2p_cico_checkout") and sum the number of rows.

  • Users with the most check-ins and checkouts: Add a condition "actionid".mustIn("w2p_cico_checkin", "w2p_cico_checkout") and group by the surfer_uid field.

  • Templates with the most check-ins and checkouts: Add a condition "actionid".mustIn("w2p_cico_checkin", "w2p_cico_checkout") and group by asset_uid or asset_name.

  • Users who created the most templates: Add a condition "actionid".mustEquals("insert") and group by surfer_uid.

  • Most used snippets in a document: Add a condition "objectname".mustEquals("zsnippet") and group by asset_uid or asset_name.

  • Most used templates to create a project: Add a condition "actionid".mustEquals("used_media_created") and group by asset_uid or asset_name.