Introduction
The Conviva App Sensor is a lightweight library that you embed in your application. Once installed and initialized, it observes the application as people use it and reports what happened — every screen, tap, network call, error, and crash — to Conviva's real-time analytics platform.
The sensor instruments the application's own UI and networking layers, so the majority of what you need arrives without writing tracking code for each button or screen. On top of that, you send your own business events through a single API without mapping them to a predefined schema, and the heavy computation happens server-side.
Three ideas behind the sensor
What the sensor collects
The sensor reports two things: events as they happen in the application, and the metadata attached to them. Metrics such as page load time, crash rate, rage clicks, and conversion are not computed in your app — Conviva derives them server-side from these events. Review the full list of metrics powered by the events collected by the sensor.
Plan, Integrate, Validate, Activate, Launch Process
Getting started is quick. On a supported platform the integration is an install, an initialization call, and a user ID — and auto-collection starts producing data immediately, without instrumenting a single button.
The five phases exist for the distance between data arriving and data you can build a business metric on. Every app is different — its navigation, its networking, its idea of what a conversion is. These phases are how that difference ends up reflected in clean data: events that fire where you expect and tags that mean the same thing everywhere.
Expand a phase for who leads it and what it involves.
Plan
App qualification
Event strategy
Kick-off
Led by Conviva account team
Integrate
Install and initialize
Set user ID
Add custom events
Led by your dev team
Validate
LiveLens
Event coverage
Fix and re-test
Led by your dev / QA team
Activate
Sensor Remote Control
Semantic Mapper
Metric Builder
Led by you, with Conviva
Launch
Production key
Release
Support handover
Led by your deployment team
PHASE 1PlanApp qualification · event strategy · kick-off
Led by the Conviva account team, with your architects and developers.
Qualify the application
Auto-collection instruments the platform's own UI and networking layers, so a few characteristics of your app decide how much arrives out of the box. Confirm these before integration begins:
- Frameworks in use. Conviva auto-collects from the standard UI frameworks on each platform. An unusual or in-house framework limits auto-collection and shifts more events to explicit reporting.
- Element identification. Can buttons and links be uniquely identified by an ID, class, or accessibility identifier? Click data is only as useful as the attributes your elements carry.
- WebViews and embedded content. A sensor on the native side does not see inside a WebView or iframe. Applications that mix native and Web surfaces usually need the sensor on both, with the client ID shared between them so the session stays whole.
- Networking stacks. Auto-collection covers the standard clients on each platform. Custom transports, or requests issued by a media player in its own process, are not captured.
- Where initialization happens. Initialize at app start. A sensor that starts on the third screen has already missed the first two, along with the launch and any early network calls.
- Local storage lifecycle. The sensor caches queued events and identity locally. Clearing that storage mid-session splits the session.
- Multiple domains or subdomains. Each one generates its own client ID unless you explicitly share it, which otherwise breaks a single journey into several.
Event and metadata strategy
Auto-collection covers the routine. What it cannot know is what matters to your business — what a conversion is, which screens form a funnel, what a completed order looks like. Agreeing on that up front is the metadata strategy, and it is part of your acceptance criteria.
- Decide the custom events you need beyond auto-collection, and the payload each carries.
- Decide the custom tags that should be attached to every event — tenant, environment, subscription tier, experiment group.
- Agree on the user ID, using a non-PII identifier. Matching it to the Video Sensor's Viewer ID is what lets you follow one person across app and playback.
- Keep naming uniform across platforms. The same event from iOS, Android, and Web must carry the same name and the same keys, or it cannot be compared.
Kick-off
Kick-off reviews the implementation lifecycle, timelines, and priorities, qualifies each application against the points above, selects the SDK for each one, and signs off the event and metadata strategy.
PHASE 2IntegrateInstall · initialize · user ID · custom events
Led by your application development team, supported by the Conviva account team.
Pick your platform from Supported Platforms and SDKs and follow the repository documentation for the specifics. Every platform follows the same shape — see Integration Steps.
AI-assisted integration
The Android, iOS, JavaScript, and React Native repositories each ship agent instructions, so you can hand the integration to an AI coding assistant — Cursor, Claude Code, GitHub Copilot, Codex, Gemini CLI, Android Studio AI — and let it read the repository and apply the changes. Point the assistant at the repository for your platform and it will follow the documented steps in order.
Tools and resources
- Conviva GitHub repositories — the SDK for each platform, with installation and integration documentation, sample applications, and agent instructions.
- LiveLens — for confirming, while you build, that events are arriving and correctly shaped.
- Pulse — your dashboards. The integrity of the data here follows directly from the quality of the integration.
- Conviva SSO — one set of credentials for Pulse, LiveLens, Activation, and the Conviva Developer Community.
Reporting beyond auto-collection
These are the things the sensor cannot infer, in rough order of how often they're needed:
- User ID — set it as soon as the person is identified, and clear it on logout.
- Page views — on Web, page views are not auto-collected. See the warning below.
- Custom events — one API, an event name, and a payload of whatever shape you need.
- Custom tags — global tags applied to every subsequent event for the lifetime of the application, until cleared.
- Revenue events — order total, transaction ID, and currency are required; tax, shipping, discount, cart size, payment method, and line items are optional. These power the revenue and conversion metrics.
- Caught errors — uncaught errors are auto-collected; errors you catch and handle yourself are reported explicitly on the platforms that support it.
PHASE 3ValidateSelf-serve — LiveLens, event coverage, payload checks
Led by your development and QA team · self-serve.
Validation is self-serve. LiveLens tests the data ingest for each application event type automatically and shows you the validation status per event, so your team can confirm the integration independently.
How to validate
- Open LiveLens and exercise the application while watching events arrive. Confirm the status for each expected event type.
- Check auto-collection coverage against your SDK's documented list. Everything it auto-collects should be appearing — if clicks or screens are missing, the cause is usually a build plugin that wasn't applied, a navigation container that wasn't wrapped, or a SwiftUI screen missing its view modifiers.
- Check page views explicitly on Web, page by page. This is the most common gap.
- Check custom event payloads — correct names, expected keys, correct types, and keys matching across platforms.
- Check custom tags are attached to events reported after they were set, and that they clear when you expect.
- Check user ID is present on identified sessions, absent on anonymous ones, and matches the Video Sensor's Viewer ID for the same person.
- Walk the error and edge cases, not just the happy path — forced errors and crashes, backgrounding mid-flow, offline then reconnect, logout and re-login.
- Re-run the affected cases after each fix, and confirm the data in Pulse.
Your Conviva account team can help with anything that looks wrong during validation.
PHASE 4ActivateSensor Remote Control · Semantic Mapper · Metric Builder
Led by you, with your Conviva account team.
Integration gets events flowing. Activation turns them into the metrics and journeys your teams actually look at, and it is all configured server-side.
Sensor Remote Control
Change what the deployed sensor collects without shipping a new build:
- Block unwanted events — stop collecting events that are noisy or meaningless for your analysis.
- Customize click tracking — go beyond buttons and links, or narrow collection to the elements that matter, by tag, type, ID, or selector.
- Filter network requests — define which requests are collected by matching rules.
- Intelligent collection — replace the default blocklist with hostname, path, or scheme rules to control request volume.
- Cohort Replay — reconstruct user navigation and actions for a sample of sessions to see how people actually move through the app.
Semantic Mapper
Map raw events, tag keys, and tag values into the vocabulary your business uses, so a metric can be defined on "checkout started" rather than on a raw event name and a tag. See Semantic Mapper.
Metric Builder
Define custom metrics and flows from an initial and a completing event — time between login and first playback, cart-to-purchase success rate, or any sequence that represents progress in your app. See Metric Builder.
PHASE 5LaunchProduction key · release · support handover
Led by your application deployment team, supported by the Conviva account team.
Deployment checklist
- Configure the app to use the production customer key.
- Confirm the application name and version are set correctly for the production build.
- Confirm the content security policy permits the Conviva endpoints, for Web applications.
- Confirm code shrinking and obfuscation rules are in place, where your platform requires them.
- Notify Conviva when the app will be released to the general public.
Support handover
After launch, the Conviva support team takes over your ongoing requests. If you change subsequent versions of your application — whether the change relates to Conviva or not — coordinate with your Conviva representative in advance so the integration can be checked. Navigation and UI refactors are the usual cause of silently lost auto-collection.
For production issues, contact support@conviva.com with your Conviva C3 account ID, platform, and SDK version.
Supported Platforms and SDKs
Pick your platform below; each row lists the frameworks that SDK supports. API marks a platform where interactions and navigation are reported explicitly rather than auto-collected. Installation, initialization, and API documentation live in each repository.
New to the App Sensor? The App Sensor Integration FAQ answers the questions that come up most often during integration.
Auto-Collection and Its Limits
Auto-collection is the point of the App Sensor, but what arrives out of the box differs by platform — and on some platforms a build plugin, a navigation wrapper, or a view modifier has to be in place for it to work at all. Each SDK repository publishes the current list of what it auto-collects and what needs an API call; that list is the authoritative one, so check it for your platform before you plan around a particular event.
Three differences are worth knowing up front because they are the ones that quietly produce missing data:
- Android and React Native auto-collect clicks, screens, and network requests only once the Conviva build plugin is applied — and on React Native, only with the navigation container wrapped. Without them those events never arrive, and nothing errors.
- iOS under SwiftUI does not auto-collect clicks or screen views. They are reported with the view modifiers the SDK provides.
- Web never auto-collects page views. They must be reported on every navigation, and cannot be backfilled.
Roku, C, and Rust have no auto-collection — every event is reported explicitly from your application. See Roku, C, and Rust for their integration instructions.
Collection limits worth knowing
These constraints are architectural, and apply wherever the capability exists:
- Network request bodies are collected only when the payload is small, its length is known, and the content type is JSON or plain text. Headers require the server to expose them via the appropriate CORS header.
- Media player requests issued by the platform's default video player are not captured, because the player runs in its own process. Playback telemetry comes from the Conviva Video Sensor instead.
- WebView and iframe content is not visible to a sensor running on the native side. Instrument both surfaces and share the client ID.
- Clicks suppressed in your own handlers — stopping propagation or preventing the default action also prevents the sensor from seeing the click.
- Interceptor ordering on Android — where another networking interceptor short-circuits the chain ahead of Conviva's, network auto-collection stops silently. The Android repository documents the fix.
Integration Steps
Every platform follows the same shape. The specifics — package names, initialization syntax, plugin setup — are in your platform's repository.
- Install the SDK.
Add the dependency for your platform, plus the build plugin where one is required for auto-collection, and any code-shrinking rules the SDK needs.
- Initialize the sensor with your test customer key and application name.
Initialize at application start, before the first screen renders and before any network calls, so nothing is missed.
- Enable auto-collection.
Apply the build plugin, wrap your navigation container, or add view modifiers as your platform requires. See Auto-Collection and Its Limits for what to watch for.
- Set the user ID.
Set it when the person is identified and clear it on logout. Use a non-PII identifier, and match it to the Video Sensor's Viewer ID to follow one person across app and playback.
- Report page views.
Required on Web, on every navigation — page views are never auto-collected.
- Report your own events and tags.
- Custom events for the business moments that matter, with the payload you agreed on in planning.
- Global custom tags for the dimensions that apply to every event.
- Revenue events for purchases and orders.
- Caught errors, on the platforms that support reporting them.
- Validate in LiveLens — confirm every expected event arrives with the right shape.
- Activate.
Tune collection with Sensor Remote Control, map events in Semantic Mapper, and define your metrics and flows in Metric Builder.
- Switch to the production customer key and release.
- Analyze your data in Pulse and start improving the experience.