The Conviva App SDK consists of several basic scripts accessible from the Conviva GitHub Repositories with basic README instructions and the related script files for each supported application platform. Lightweight integration of Conviva App 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 App SDK integration and platform support.
FAQs
|
Category |
Question |
Answer |
|||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Platform and Frameworks |
Which platforms are supported by the App SDK? |
Use these links to access details for each platform. |
|||||||||||||||||||||||||||
|
Which frameworks and libraries are supported for auto-collection? |
See the support details: |
||||||||||||||||||||||||||||
|
Web Apps with Multiple Sub-Domains and Native/Webview Hybrid Apps |
How does Conviva preserve end-to-end user journeys across subdomains, native apps, and webviews? |
When the Conviva App SDK initializes on an app instance for the first time, it generates a Client ID — a unique, Conviva-owned identifier used to attribute events to a single, continuous user. This ID contains no Personally Identifiable Information (PII) and exists only to distinguish one user's activity from another's inside Conviva's analytics. For more details, see Conviva Identity Sync Guide. |
|||||||||||||||||||||||||||
|
Conviva Cookies Usage |
What Conviva stores; why it is essential; and how it aligns with privacy frameworks? |
Conviva creates a limited set of cookies that are required for the core functionality of our service. These cookies are considered essential cookies and ensure accurate measurement, analytics, and reporting. Importantly, Conviva does not store any Personally Identifiable Information (PII) within these cookies. For more details, see Conviva Cookies Usage. |
|||||||||||||||||||||||||||
|
React Native app that uses Expo Router |
How do I track screen views in a React Native app that uses Expo Router? |
Expo Router does not work with Conviva's existing screen-view auto-tracking helper. Track screen views manually by calling |
|||||||||||||||||||||||||||
|
Storage Requirement |
What is the device local storage requirement of the App SDK? |
Events will be dispatched with 250KB size limit or 5 seconds interval. |
|||||||||||||||||||||||||||
|
Initialization |
When should I initialize the App 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 App SDK? |
Reference to App Metrics. |
|||||||||||||||||||||||||||
|
Events Video to App |
How do I send events from the Video SDK to the App SDK? |
With these Video SDK and App SDK versions, Conviva automatically sends video events to the App 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 App 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 App 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 App 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 App SDK block by default. |
Check the default blocklists: |
Android Support Details
Android FAQs, Gradle plugin dependencies, blocklist, and auto-collection details
Android 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 App SDK block by default. | Check the default SDK blocklist. |
| What is the size of the Android App 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 the App SDK. 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.
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 FAQs, performance impact, blocklist, and auto-collection details
iOS 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 the iOS App SDK? | 700 KB (approximate size) |
| Which network requests does the App 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 the App SDK. 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 App Sensor | 29.1% |
| 2 | With Conviva App 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, performance impact, blocklist, and auto-collection 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 the JS (Web) App SDK? | 141 KB (approximate size) |
| Which network requests does the App 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 npm as it improves the speed of execution at app startup. Due to this reason, it is not hosted on a CDN. To host the App SDK on a CDN, use the script version of the JS App 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 App Sensor v0.6.8 | 28.3 | 180.64 | 101.60 | 7 minutes 22 seconds |
| Without Conviva App 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 |