Conviva Digital Product Insights (DPI) sensor module consists of several basic scripts accessible from the Conviva GitHub Repositories with basic README instructions and the related script files for each the supported DPI application platforms. Lightweight integration of Conviva DPI sensor enables automatic, semantic-less data collection. Deploy custom events for advanced metrics and dimension analysis.
Use these FAQs to help answer common questions related to Conviva Digital Product Insights (DPI) sensors integration and the DPI platform support.
FAQs
|
Category |
Question |
Answer |
|||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Platform and Frameworks |
Which platforms are supported by the DPI SDK? |
Use these GitHub links to access the platform details.
|
|||||||||||||||||||||||||||
|
Which frameworks and libraries are supported for auto-collection? |
See the support details: |
||||||||||||||||||||||||||||
|
Hybrid Apps |
How do I instrument a hybrid app? (native / webapp) |
We support React Native and Flutter Hybrid Apps. |
|||||||||||||||||||||||||||
|
Storage Requirement |
What is the device local storage requirement of the DPI SDK? |
Events will be dispatched with 250KB size limit or 5 seconds interval. |
|||||||||||||||||||||||||||
|
Initialization |
When should I initialize the DPI SDK? |
Conviva SDK should be initialized as early as possible, preferably before the first screen loads and first HTTP client object is created. |
|||||||||||||||||||||||||||
|
Events Auto-Collected |
Which events are auto-collected by the DPI SDK? |
Reference to DPI Metrics. |
|||||||||||||||||||||||||||
|
Events Video to DPI |
How do I send events from the VSI SDK to DPI SDK? |
With these VSI and DPI SDK versions, Conviva automatically sends video events to the DPI SDK:
For more details about event support, see Getting Started with Events. |
|||||||||||||||||||||||||||
|
Events and Tags |
What is the difference between custom event and custom tag. When to use events or tags? |
Custom events need to be used when a specific event needs to be reported from the app at a specific time and with all the details. Custom tag is recommended when some specific information needs to be reported that remains static through the app sessions (such as device model). |
|||||||||||||||||||||||||||
|
Performance Impact |
Will there be any performance impact if I include the DPI SDK in my app? |
CPU Performance impact due to Android, iOS, and JS SDK's is 0.5-1% |
|||||||||||||||||||||||||||
|
Logging Levels |
What is the recommended log level setting during testing vs production? |
Conviva recommends:
Performance KPI validation needs to be executed on Production builds. |
|||||||||||||||||||||||||||
|
Other Analytics Tools |
We use other analytics in our app. Does the order in which we initialize them matter? |
No, the order does not matter. |
|||||||||||||||||||||||||||
|
Validation |
How do I verify if my instrumentation is correct? |
Verify the basic integrations steps in the integration guide and then access Conviva Pulse to verify the metrics and metadata based on the integrated data. |
|||||||||||||||||||||||||||
|
Troubleshooting and Data Monitoring |
Why is the DPI SDK not monitoring data after instrumentation? |
Verify that the tracker is initialized with the correct customer key and app name. |
|||||||||||||||||||||||||||
|
Why are some of my network requests missing? |
|
||||||||||||||||||||||||||||
|
After app startup, the app uses a remote config to decide which analytics to initialize. Is that a problem? |
Not initializing the DPI SDK at the time of app launch may cause some events to not be reported. Also, the app launch time values may not be reported accurately. |
||||||||||||||||||||||||||||
|
Which network requests does the DPI SDK block by default. |
Check the default blocklists: |
||||||||||||||||||||||||||||
|
Conviva Cookies Usage |
What Conviva stores; why it is essential; and how it aligns with privacy frameworks? |
Conviva uses essential cookies to maintain session continuity and enable accurate analytics. No personally identifiable information (PII) is stored in cookies. Conviva's cookie practices are aligned with major privacy frameworks. |
|||||||||||||||||||||||||||
|
React Native Expo Router |
How do I track screen views in a React Native app that uses Expo Router? |
Expo Router requires a manual |
Android Support Details
Android Support Details
FAQs
|
Question |
Answer |
|---|---|
| Which devices are currently supported by the SDK? |
|
| Which development frameworks are currently supported by the SDK? |
|
| What is the target SDK version? | The SDK is targeted for Android 14 (API level 34). |
| What is the minimum Android version required to use the SDK? | To use the SDK, the devices should run on at least Android 5.0 (Lollipop) version (API level 21). |
| Which network requests does the DPI SDK block by default. | Check the default SDK blocklist. |
| What is the size of DPI Android SDK? | 230 KB (approximate size) |
| How to get and set the Client ID? |
|
| How do I track events if they are not auto-collected? |
Use the
|
|
Why are some events that are supposed to be auto-collected not reported? |
Add the following proguard rules to keep Conviva SDK classes from obfuscation.
|
| The Android application is crashing during runtime after adding DPI. What could be the reason? |
If multidex is enabled and a multidex-config.pro is being used by the application, please add the following rule to the config.pro – CadActive file. -keep class com.conviva. { *; } Exclude any classes that you do not want Conviva to track.
|
Android Gradle Plugin Dependencies
| Android Gradle Version | Conviva Sensor Version | Conviva Plugin Version |
|---|---|---|
| Any Android Gradle Version | >=0.9.3 | 0.3.5 |
| 7.2 and above | >=0.9.0 | 0.3.3 |
| below 7.2 | >=0.9.1 | 0.2.4 |
| below 7.2 | 0.9.0 | 0.2.3 |
(Mobile Only) Impact to Download/Install Size
Increase in Install Size due to Conviva - 250KB (measured in 0.9.7)
Increase in CPU Usage due to Conviva
(0.5 - 4 %) (measured in 0.9.7)
Network Requests Tracking Blocklist for Android
| Network requests tracking is blocked for the default URL patterns: | ||
|---|---|---|
|
/ctp |
/wsg | pings.conviva.com |
|
.m3u8 |
.mpd | .ism |
|
.m4 |
.ts | .jpeg |
| .jpg | .png | .bmp |
| google-analytics.com | googlesyndication.com | googleapis |
| stats.g.doubleclick | chartbeat.com | omtrdc.net |
| app-measurement.com | firebase | newrelic |
| bitmovin.com/impression | bitmovin.com/analytics | api.segment.io |
| youbora // NPAW! | hotjar | mixpanel.com |
| nr-data.net | clevertap | auryc // heap.io |
| .aac | .vtt | .googlevideo |
| webp | appsflyer | |
| dynatrace | mparticle | npaw |
| doubleclick | bookkeeper | |
| kochava | mp3 | marketingcloudapis |
| demdex | scorecardresearch | lura.live |
| perimeterx.net | permutive.app | segment.com |
| vaicore.site | boomtrain | ketchcdn |
| qualtrics | .svg | amplitude |
| datadoghq | branch.io | hotjar |
| splunkcloud | heap | |
Autocollection Details/Limitations
Sensor Version on which the implementation details or limitations are added: 0.9.4
| Feature | Implementation Details / Limitations | Explanation |
|---|---|---|
| Network Request |
We support only the
|
Response and Request Body atributes are collected only when the:
Response and Request Headers are collected only when the:
|
| Screenview |
We support:
|
|
|
App or Screen Load times |
We support only:
Doesn’t support the:
|
As the screen load times are not reliable and are inaccurate for Fragments/Compose, we will not be able to collect it in future as well. |
|
User Click Tracking |
We support any clickable element clicking for:
|
|
|
Traceparent Header Generation |
Supported for each request with new traceparent id | |
|
App Crashes |
We support collecting:
We don't support:
Conviva Android SDK listens to the unhandled exceptions leading to app crashes and attempts sending the crash events before app exits. If an app crash event is not sent before the app exists, SDK attempts to send that crash event only after the next app launch, which will be discarded if sent after 90 seconds of original crash timestamp. |
iOS Support Details
iOS Support Details
FAQs
|
Question |
Answer |
|---|---|
| Which Apple devices are currently supported by the SDK? |
|
| Does the SDK support Apple Watch (watchOS)? | No, Apple Watch is not supported at this time. |
| Which development frameworks are supported by the SDK? |
|
| What is the size of DPI iOS SDK? | 700 KB (approximate size) |
| Which network requests does the DPI SDK block by default. | Check the default SDK blocklist. |
| How to get and set the Client ID? |
|
| How do I track events if they are not auto-collected? |
Use the two APIs to track custom events:
Examples:
|
| The iOS/tvOS application is crashing during compilation after adding DPI. What could be the reason? |
Verify you have added "-ObjC" in Other Linker Flags section in Xcode. |
Impact to Download/Install Size
Increase in Install Size due to Conviva - 700 KB
(Mobile Only) Performance Impact(CPU Usage):
Streaming is on while taking samples
Sent 100 network requests with 50 in parallel
Used get request as mentioned in video
| Sl No | Feature set | CPU Usage |
|---|---|---|
| 1 | Without Conviva DPI Sensor | 29.1% |
| 2 | With Conviva DPI Sensor | v0.2.28 37% |
Network Requests Tracking Blocklist for iOS
| Network requests tracking is blocked for the default URL patterns: | ||
|---|---|---|
|
/ctp |
/wsg | conviva.com |
| remote_config.json | nr-data.net | firebase |
|
app-analytics-services.com |
newrelic | googleapis |
| .bitmovin.com/impression | bitmovin.com/analytics | omtrdc.net |
| chartbeat.com | stats.g.doubleclick | app-measurement.com |
| mixpanel.com | hotjar | google-analytics.com |
| doubleclick.net | googlesyndication.com | api.segment.io |
| youbora | auryc | heap |
| clevertap | .m3u8 | .ts |
| .m4 | .mp4 | .mpd |
| .ism | .jpg | .png |
| .jpeg | .bmp | .aac |
| .vtt | .googlevideo | webp |
| appsflyer | dynatrace | |
| mparticle | npaw | doubleclick |
| bookkeeper | kochava | |
| mp3 | marketingcloudapis | demdex |
| scorecardresearch | lura.live | perimeterx.net |
| permutive.app | segment.com | vaicore.site |
| boomtrain | ketchcdn | qualtrics |
| .svg | amplitude | datadoghq |
| branch.io | hotjar | splunkcloud |
Auto-collection Details / Limitations
|
Feature |
Implementation Details / Limitations |
Explanation |
|---|---|---|
|
Traceparent Header Generation |
Not Implemented yet, Once implemented will be auto-collected. |
No planned date as of now. |
|
Application Not Responding |
Not Implemented yet, Once implemented will be auto-collected. |
No planned date as of now. |
|
Network Request |
Supports
|
|
|
Screen View |
We support:
|
|
|
App Crashes |
We support collecting:
We don't support:
|
Web (JS/React) Support Details
Web (JS/React)
FAQs
|
Question |
Answer |
|---|---|
| Which devices are supported by the SDK? |
|
| Which development frameworks are supported by the SDK? |
|
| What is the size of DPI JS(Web) SDK? | 141 KB (approximate size) |
| Which network requests does the DPI SDK block by default. | Check the default SDK blocklist. |
| What defines a 'page view' event in an app? |
The definition of a page view event depends on the type of application:
Optionally call |
Is the trackPageView() call mandatory for tracking page view events?
|
No, the trackPageView() call is optional for the Conviva JS SDK. However, most customers use it to track the page views and collect important metric Average Largest Contentful Paint Time.
|
When should I call trackPageView()? |
Call Example:
|
What if I forget to call trackPageView()? |
If you skip the |
| How to get and set the Client ID? |
|
| How do I track events if they are not auto-collected? |
Use the This API provides 2 fields to describe the tracked events:
|
|
Why are my application page views not being auto-collected? |
When you navigate within a single-page application, new pages are not loaded, so they will not be tracked as page views. To track page views in single page applications, call the trackpageview API. |
|
Is Conviva SDK hosted on a CDN? |
Conviva prefers using npn as it improves the speed of execution at app startup. Due to this reason, it is not hosted on a CDN. To host the DPI SDK on a CDN, use the script version of the JS DPI SDK: GitHub - Conviva/conviva-js-script-appanalytics: App analytics sensor specially made for JS script tag based integrations. |
Impact to Download/Install Size
| Sensor Version | Download Size |
|---|---|
| v0.6.8 | 141KB |
(Web Only) Performance Impact
These results based on actual Conviva customer data.
Process Memory
MinUsage, MaxUsage, AverageUsage refer to the process memory (Mbytes) used during a video player application.
| App config | MinUsage **( Mbytes ) | MaxUsage ( Mbytes ) | AverageUsage ( Mbytes ) | Duration |
|---|---|---|---|---|
| Conviva DPI Sensor v0.6.8 | 28.3 | 180.64 | 101.60 | 7 minutes 22 seconds |
| Without Conviva DPI Sensor | 22.36 | 179.62 | 103.42 | 7 minutes 46 seconds |
Network
AverageReceivedSpeed :- Referring to the average data receive speed over network(KB/sec) in a given duration,
AverageSendSpeed: Referring to the average data send speed over network(KB/sec) in a given duration.
SendTotal: Referring to the total data send over network(KB) in a given duration.
Network Requests Tracking Blocklist for Web (JS/React)
| Network requests tracking is blocked for the default URL patterns: | ||
|---|---|---|
| cws.conviva.com | /wsg | /ctp |
| remote_config | pings.conviva.com | .m3u8 |
| .mpd | .ism | .m4 |
| .mp4 | .ts | .png |
| .jpg | .jpeg | .bmp |
| google-analytics.com | googlesyndication.com | googleapis |
| stats.g.doubleclick | chartbeat.com | omtrdc.net |
| app-measurement.com | firebase | nr-data.net |
| newrelic | bitmovin.com/impression | bitmovin.com/analytics |
| api.segment.io | youbora | hotjar |
| mixpanel.com | clevertap | auryc |
| .aac | .vtt | .googlevideo |
| webp | appsflyer | |
| dynatrace | mparticle | npaw |
| bookkeeper | kochava | |
| mp3 | marketingcloudapis | demdex |
| scorecardresearch | lura.live | perimeterx.net |
| permutive.app | segment.com | vaicore.site |
| boomtrain | ketchcdn | qualtrics |
| .svg | amplitude | datadoghq |
| branch.io | hotjar | splunkcloud |
Auto-collection Details/Limitations
Sensor Version on which the implementation details or limitations are added: 0.6.8
| Feature | Implementation/Limitations |
|---|---|
|
Network Request |
We support only :
|
|
Page View |
Page Title can be passed as part of trackPageView api, if title is not set then page title is autodetected using api document.title when trackPageView api is called. |
|
Button Click Tracking |
We support click on input element type button or if element tag name is button. if customer application adds stopPropagation or preventDefault in there button click event listener then conviva will not be able to detect the click. |
|
Link Click Tracking |
We support link click tracking on element if element tag name is . if customer application adds stopPropagation or preventDefault in there link click event listener then conviva will not be able to detect the click. |
|
Application Not Responding |
Not Implemented yet, implemented will be Autocollected |
React Native
| Feature | Implementation/Limitations |
|---|---|
|
App or Page Load Time |
Not available, will be via API |
|
Application Not Responding |
Not available in iOS, will be autocollected. |
|
Traceparent Header Generation |
Not available in iOS, will be autocollected. |