Intempt Docs
Developer DocsSDK

Autocapture and automatic events

What the web, Android, iOS and React Native SDKs capture without being asked, what is on by default, and how to switch each part on or off.

Autocapture and automatic events

Web, Android and iOS follow one model. The only deliberate difference: autocapture starts on for web and off for mobile. React Native follows the native platform it runs on.

The four groups

Everything an SDK captures without you calling it belongs to one of four groups.

GroupWhat it isWebAndroidiOS
SessionsSession eventsAlways onOn by defaultOn by default
App lifecycleInstall, update, app open, app backgroundDoesn't applyOff by defaultOff by default
AutocaptureUI activity: pages or screens, clicks or taps, form and control changesOn by defaultOff until the app starts itOff until the app starts it
Commerce integrationCommerce events detected from a store platform, like a product viewOff until you add &shopify=1 or &magento=1NoneNone

Everything else is an explicit call: track(), record(), identify() and the product calls. Autocapture settings never stop an explicit call.

Web autocapture is on by default so you have data from the first page load. Mobile autocapture is off by default because it hooks the app's own UI code, and a mobile release takes weeks to replace if something goes wrong.

Autocapture families

Each platform lets you switch parts of autocapture on or off.

WebAndroidiOS
Pages and screenspageview: View Page, Leave PagescreenViewsscreens, screenExits
Clicks and tapsclick: Click OncontrolInteractions (taps and changes)taps, rawTouches
Form and control changesinput: Change OnPart of controlInteractionscontrolChanges
Form submitssubmit: Submit OnDoesn't applyDoesn't apply
How you switch it&autocapture=false, or a list like &autocapture=pageview,submitisAutoCaptureEnabled in intempt-config.json, or Intempt.autocapture.start() / stop()intempt.autocapture.configure(...) then start() / stop()

On React Native, intempt.autocapture.configure({ screenViews, controlInteractions }) then start() maps onto the native options above. iOS rawTouches isn't exposed there, because a tap on a control already emits its own event.

See each SDK page for the details: JavaScript, Android, iOS, React Native.

Commerce integrations

An integration is a connector to a store platform you name. On web that's Shopify or Magento.

  • It's off until you add it to the script URL.
  • The autocapture setting never touches it. With every autocapture family off, Shopify product events still arrive.
  • Mobile has no integrations. Commerce there comes only from the product calls: productView, productAdd and productOrdered.

Commerce isn't an autocapture family on purpose. Autocapture is UI activity that starts on and that you trim. Commerce is revenue data you asked for. Keeping them apart means turning off clicks can never cost you revenue events.

Two rules on every platform

  • What a user types is never captured. Typed fields come through masked, on change and on submit, and there's no setting to capture them. A field's name, a checkbox or a selection, and a button's label still come through. To send a typed value on purpose, pass it in an explicit call.
  • Commerce is never autocaptured. It comes from an integration you switch on, or from the product calls.

Versions

SDKBehaviour on this page from
JavaScriptThe release that adds the autocapture family list. The CDN serves it to every site once deployed
Android5.0.0. On 4.x, autocapture starts at initialize() unless isAutoCaptureEnabled is false, and typed text is captured
iOSEvery published version
React NativeFollows the Android SDK it bundles. It bundles intempt-android 4.0.1 by default. Set intemptAndroidVersion to 5.0.0 in gradle.properties for this behaviour on Android

On this page