Performing Drill-Down Analysis
DPI provides a rich set of out-of-box metrics and features for deep drill-down cross-dimensional analysis for easy analysis across dimensions, such as device model, application version, and error messages.
For information on Trends, see Trends.
DPI Metrics and Metadata
DPI metrics display in metric widget time series and dimension tables.
-
Slice anomalies and spikes (for example, high points in network request duration)
-
Drill-down in dimension tables for quick root cause analysis (for example, by URL hosts)
In addition to analyzing metric performance in metric time series widgets, click Presets and select a desired preset option to quickly get started with commonly used metrics and metadata use cases.
This examples shows the Preset for quick network request analysis.
Preset: Network Request Example
Preset: Server-Side Performance Example
Out-of-Box DPI Metrics
For a complete list of DPI metric definitions and support, see DPI Metrics.
| Category | Metrics | ||
| Audience and Engagement |
App Active Time (Formerly Active Time) |
||
| QoE and KPI Metrics |
Mins with High App Startup Time |
||
| Web User Experience | Avg DNS Lookup Time | ||
| Mobile User Experience | |||
| Service Performance |
Mins with 0 Network Response Code |
||
Out-of-Box DPI Metadata
|
Category |
Metadata |
||
|---|---|---|---|
| App |
App Name Application Build Application Version |
Bundle Info Platform Sensor Version |
|
|
Device |
Browser Name Browser Version Device Hardware Type Device Manufacturer Device Marketing Name |
Device Model Device Name Device Operating System Device Operating System Family Device Operating System Version |
|
| GEO & ISP |
Cities Connection Countries |
ISPs States Zipcode |
|
| Page (Web) |
Edited Page Title First Launch Page Host Page Path Page Query |
Page Referrer Page Title Page Url Referrer Host |
|
| Screen (Mobile) |
Edited Screen Title Previous Screen Title |
Screen Title | |
| Network Request |
Network Request Endpoint Network Request Http Method Network Request Response Code |
Network Request Url Host Network Request Url Path |
|
| Events | Event Category | Event Name | |
| Errors | ANR Reason | Error Message | Stack Trace |
| Global Tags | Dimensions that are based on global tags. | ||
| Event Tags | Dimensions that are based on event tags. | ||
Out-of-Box Events
Check the auto-ingested events and minimum player versions for details about auto-collected event support.
Out-of-Box Events
DPI provides a robust set of metrics to enable application performance monitoring and user behavior analysis across your web and native applications. Metric values appear as time series and distributions in metric widgets, and alongside dimensional values in the dimension drill-down tables.
| OOB Events | Android | iOS | JavaScript (WEB) |
React Native on Android and iOS |
c-SDK | Rust | Roku | Flutter on Anroid | Flutter on iOS | Flutter on WEB (JS) |
|---|---|---|---|---|---|---|---|---|---|---|
| periodic_heartbeat | Auto-collected | Auto-collected | NA | Auto-collected | Auto-collected | Auto-collected | Auto-collected | Auto-collected | Auto-collected | NA |
| page_ping | NA | NA | Auto-collected | NA | NA | NA | NA | NA | NA | Auto-collected |
| network_request | Auto-collected | Auto-collected | Auto-collected | Auto-collected | API Config | API Config | API Config | Auto-collected only for HTTP, Dio, Chopper, and Retrofit clients | Auto-collected | Auto-collected only for HTTP, Dio, Chopper, and Retrofit clients |
| screen_view | Auto-collected | Auto-collected | NA | Auto-collected | API Config | API Config | API Config | API Config | API Config | NA |
| page_view | NA | NA | API Config | NA | NA | NA | NA | NA | NA | API Config |
| application_error | Auto-collected | Auto-collected | Auto-collected | Auto-collected | API Config | API Config | API Config |
Auto-collected; only Java and Kotlin errors |
Auto-collected | Auto-collected |
| button_click | Auto-collected | Auto-collected | Auto-collected | Auto-collected | NA | API Config | API Config | API Config | API Config | API Config |
| Any clickable UI items (including button and link) | NA | Auto-collected from Conviva Sensor ver1.1.2 onwards | NA | NA | NA | NA | NA | NA | API Config | NA |
| application_background | Auto-collected | Auto-collected | Auto-collected | Auto-collected | Not Implemented | API Config | NA | Auto-collected | Auto-collected | Auto-collected |
| application_foreground | Auto-collected | Auto-collected | Auto-collected | Auto-collected | Not Implemented | API Config | NA | Auto-collected | Auto-collected | Auto-collected |
| app_install | Auto-collected | Auto-collected | NA | Auto-collected | Not Implemented | API Config | Not Implemented | Auto-collected | Auto-collected | NA |
| deep_link_received | Auto-collected | NA | NA | NA | Not Implemented | API Config | Not Implemented | Auto-collected | API Config | NA |
| anr_start | Auto-collected | NA | NA | NA | API Config | API Config | Not Implemented | Auto-collected | NA | NA |
| anr_end | Auto-collected | NA | NA | NA | Not Implemented | Not Implemented | Not Implemented | Deprecated | NA | NA |
| conviva_fragment_view | Auto-collected | NA | NA | NA | NA | NA | NA | Auto-collected | NA | NA |
| conviva_compose_view | Auto-collected | NA | NA | NA | NA | NA | NA | Auto-collected | NA | NA |
| first_app_launch | NA | NA | Auto-collected | NA | API Config | API Config | Not Implemented | NA | NA | Auto-collected |
| page_loaded | NA | NA | Auto-collected | NA | NA | NA | NA | NA | NA | Auto-collected |
| soft_navigation | NA | NA | Auto-collected | NA | NA | NA | NA | NA | NA | NA |
| conviva_revenue_event | API Config | API Config | API Config | NA | NA | NA | NA | NA | NA | NA |
| conviva_webvitals_lcp | NA | NA | Auto-collected | NA | NA | NA | NA | NA | NA | Auto-collected |
| conviva_webvitals_inp | NA | NA | Auto-collected | NA | NA | NA | NA | NA | NA | NA |
| conviva_webvitals_cls | NA | NA | Auto-collected | NA | NA | NA | NA | NA | NA | NA |
| conviva_webvitals_fcp | NA | NA | Auto-collected | NA | NA | NA | NA | NA | NA | NA |
| conviva_webvitals_ttfb | NA | NA | Auto-collected | NA | NA | NA | NA | NA | NA | NA |
Agentic Events
Conviva JavaScript (WEB) Sensor supports the collection of agentic events:
-
Server-sent events
-
WebSocket message stream
-
Event source message stream
Predefined Mapping Event
DPI offers a comprehensive set of predefined mapped events that enable you to create custom metrics and perform application performance monitoring and user behavior analysis on the Trends dashboard.
In the Scope column:
-
Trends and Activation: The events can be used on the Trends dashboard and all pages in Activation.
-
Activation: The events can be used on all pages within Activation.
-
Metric Builder: The events can be used on the Metric Builder page of Activation.
|
Predefined Mapped Event |
Raw Event Name |
Mapping Rules |
Scope |
|---|---|---|---|
| conviva_screen_view | conviva_screen_view | Mapped directly | Trends and Activation |
| conviva_page_view | conviva_page_view | Mapped directly | Trends and Activation |
| conviva_application_error | conviva_application_error | Mapped directly | Trends and Activation |
| conviva_network_request | conviva_network_request | Mapped directly | Trends and Activation |
| conviva_window_loaded | conviva_window_loaded | Mapped directly | Trends and Activation |
| conviva_app_backgrnd_before_page_view | conviva_app_backgrnd_before_page_view | Mapped directly | Trends and Activation |
| conviva_application_foreground | conviva_application_foreground | Mapped directly | Trends and Activation |
| conviva_application_background | conviva_application_background | Mapped directly | Trends and Activation |
| conviva_application_startup | conviva_screen_view | event_name = 'conviva_screen_view' and os_type in ('android') AND unstruct_event_com_snowplowanalytics_mobile_screen_view_1_0_0.previous_name = 'Unknown' OR event_name = 'conviva_screen_view' and os_type in ('ios', 'tvos') AND unstruct_event_com_snowplowanalytics_mobile_screen_view_1_0_0.previous_id is null | Activation |
| - | conviva_session_start | find event that triggerd a new session based on the session definition, and duplicate this event as the session start event | Metric Builder |
| - | conviva_session_end | find the session end time based on the session definition, and create a dummy event on this time point | Metric Builder |
| conviva_video_play | conviva_video_events | event_name = 'conviva_video_events' AND unstruct_event_com_conviva_conviva_video_events.name = c3.video.play | Activation |
| conviva_video_attempt | conviva_video_events | event_name = 'conviva_video_events' AND unstruct_event_com_conviva_conviva_video_events.name = c3.video.attempt | Activation |
| conviva_ad_break_start | conviva_video_events | event_name = 'conviva_video_events' AND unstruct_event_com_conviva_conviva_video_events.name = c3.ad.ad_break_start | Activation |
| conviva_ad_break_end | conviva_video_events | event_name = 'conviva_video_events' AND unstruct_event_com_conviva_conviva_video_events.name = c3.ad.ad_break_end | Activation |
| conviva_video_sdk_init | conviva_video_events | event_name = 'conviva_video_events' AND unstruct_event_com_conviva_conviva_video_events.name = c3.sdk.init | Activation |
| conviva_video_set_content_info | conviva_video_events | event_name = 'conviva_video_events' AND unstruct_event_com_conviva_conviva_video_events.name = c3.video.set_content_info | Activation |
| conviva_video_bitrate_switch | conviva_video_events | event_name = 'conviva_video_events' AND unstruct_event_com_conviva_conviva_video_events.name = c3.video.bitrate_switch | Activation |
| conviva_video_buffering | conviva_video_events | event_name = 'conviva_video_events' AND unstruct_event_com_conviva_conviva_video_events.name = c3.video.buffering | Activation |
| conviva_video_pause | conviva_video_events | event_name = 'conviva_video_events' AND unstruct_event_com_conviva_conviva_video_events.name = c3.video.pause | Activation |
| conviva_video_end | conviva_video_events | event_name = 'conviva_video_events' AND unstruct_event_com_conviva_conviva_video_events.name = c3.video.end | Activation |
| conviva_sdk_custom_event | conviva_video_events | event_name = 'conviva_video_events' AND unstruct_event_com_conviva_conviva_video_events.name = c3.sdk.custom_event | Activation |
| conviva_video_custom_event | conviva_video_events | event_name = 'conviva_video_events' AND unstruct_event_com_conviva_conviva_video_events.name = c3.video.custom_event | Activation |
| conviva_defined_error | conviva_application_error and conviva_network_request | event_name = 'conviva_network_request' AND responseStatusCode in range 500-510 OR event_name = 'conviva_application_error' AND platform = 'mob' | Metric Builder |
| app crash | conviva_application_error | event_name = 'conviva_application_error' AND platform = 'mob' | Trends and Activation |
| 5XX server error | conviva_network_request | event_name = 'conviva_network_request' AND responseStatusCode in range 500-510 | Trends and Activation |
| conviva_<element>_click | conviva_<element>_click |
Mapped directly. Note: <element> can be any UI element (such as button, link, radio_button, checkbox, and div). |
Trends and Activation |
For more details about Conviva DPI, see
Dimensional Data Drill-Downs
Select up to eight dimensions enabling advanced analysis across dimension tables for deep data drill-downs. Clicking dimension values in dimension tables provides advanced analysis across dimensional value combinations, such as Apple TV 4k, app version 5.6.2 and user ID 2163548, for flexible impact and combined data analysis
Use Case-Analyzing App Crashes
The use case provides a step-by-step guide on how to analyze app crashes using key features in DPI.
-
Check metrics:
-
Start by accessing the Metric panel and checking the available metrics.
-
To zoom, select, and zoom to select the desired period when most app crashes occurred by using the toolbar options.
-
-
Explore dimensional data:
-
To access more detailed information, move to the Dimension table.
-
To check more information, click Add Dimension to add more Dimension tables, such as adding Application Version.
-
Set the data to be ordered by app crashes for a better understanding.
-
-
Narrow down data:
-
To refine your analysis, click a specific application version, such as 5.7.1.
-
Further filter the data by selecting Device Model and clicking a specific device model, like Android TV with Chromecast.
-
Identify error messages by selecting Error Message.
Now focus on the error messages generated when the app crashes in version 5.7.1 on Android TV with Chromecast.
These error messages are crucial for engineers to optimize the app for that specific configuration.
-
-
Analyze user behavior:
-
Refer to the User ID dimension table to identify the user, for example, User 1144090, who experienced the most app crashes.
-
To analyze the user's behavior and understand the root causes of the app crashes, click the Users tab, then select the User ID to access the User Timeline page.
-
-
Deepen analysis with user timeline:
-
On the User Timeline page, explore the timeline that showcases more data about the user and the events.
By following these steps, effectively analyze app crashes, identify error messages, and gain insights into user behavior using the various features available in DPI.
-
Next Step: Automate