Behavior signals in a native Android app
Behavior signals capture user interactions in your Android app and feed them to Connect, where they drive contact activity, journeys, and analytics. Once the Connect SDK is initialized, you can send signals by calling Connect.logSignal with a signal type and the relevant data fields.
Availability: Pro, Premium and Ultimate
Available signals
The following behavior signals are available in the Connect Android SDK.
Pro, Premium, and Ultimate
| Signal | Description |
|---|---|
addToCart | Captures when a user adds an item to their cart or selection |
removedFromCart | Captures when a user removes an item from their cart or selection |
order | Captures completed orders with totals and product breakdowns |
Premium and Ultimate
| Signal | Description |
|---|---|
pageView | Captures screen views as users navigate your app |
productView | Captures views of individual product or item detail screens |
productConfiguration | Captures interactions on product screens — selecting size, color, or other options |
onSiteSearch | Captures in-app search queries and result counts |
richMediaInteraction | Captures user interactions with video and audio content — play, pause, complete, and others |
error | Captures errors users encounter during critical flows, such as payment failures or invalid promo codes |
To identify users at sign-in or registration, use Connect.logIdentificationEvent instead of Connect.logSignal. See Enable user identification in a native Android app.
Prerequisites
The Connect SDK must be initialized via Connect.enable() before sending any signals. For setup instructions, see Integrate the Connect SDK into a native Android app (View-based) or Integrate the Connect SDK into a native Android app (Jetpack Compose).
Implementation
Each signal type has its own how-to guide with required and optional fields, code examples, and implementation guidance:
- Enable page view signals
- Enable add-to-cart signals
- Enable removed-from-cart signals
- Enable order signals
Important considerations
No pricing information
If your business does not display prices — for example, for insurance quotes or B2B requests — use placeholder values for required price fields such as unitPrice.
Third-party checkout
If users complete checkout in a separate payment processor flow — for example, Stripe or Braintree in a webview or external app — the SDK does not have access to those screens. Collect order data on your confirmation screen instead, or use a backend integration.
Identifier availability
Make sure user identifiers (email address, phone number, or customer ID) are accessible when a signal fires. A common pattern is to store the identifier in memory during sign-in and retrieve it from UserSession or SharedPreferences when building the audience object.
Verify signal capture
To confirm signals are flowing to Connect:
- Trigger signals in your app using a test account.
- Log in to your Connect subscription.
- Go to Data management > Audience.
- On the All contacts tab, select the contact you used for testing.
- In the activity feed, check for the signals you triggered.
NoteThe activity feed displays the last 1000 signals or signals from the last 30 days. Newly added signals may take a few minutes to appear.
To view all signals without limitations, go to Behavioral management > Signal management and select a signal type.
