A typical pain point: a user reports a bug, but you can't reproduce it. Session recording solves this—you literally see what the user did. However, without proper integration, the recording either shows nothing or leaks sensitive data. We integrate Smartlook into your mobile app in 4–8 hours, with all security and analytics requirements addressed. With 5+ years of mobile analytics experience, we have completed 25+ session recording integration projects. Our expertise guarantees no data leaks and a quick start. Typical integration cost ranges from $2,000 to $5,000. Request an audit—we'll assess your project and propose an optimal plan.
How Smartlook Integration Solves Data Leakage Issues
By default, Smartlook records the entire screen. Without configuring masking, card numbers, CVV, passwords end up in sessions. We set up masking at the View and UIViewController level (iOS) and via XML attributes or programmatically (Android). In wire-frame mode, UI elements are displayed schematically—text is not recognized, making it safe for production. This ensures compliance with security standards like GDPR and PCI DSS. In one project for a fintech startup, we masked 12 screens in 2 hours—not a single sensitive string appeared in the recording.
Why Choose Automatic Event Tracking?
Automatic event tracking creates events for all interactive elements, but in the dashboard they appear with unreadable identifiers like UIButton@(123,456). We assign each key element a custom slTrackId (iOS) or SmartlookHint (Android). After that, you see purchase_button_pdp in funnels and filters instead of coordinates. This accelerates analytics launch 3x compared to manual event tagging. For example, in an e-commerce app, we tagged 50 buttons in 1 day—previously it took 3 days. Automatic tracking with custom names is 3x faster than manual tagging.
How to Reduce Excessive Traffic and Costs
Smartlook is billed by the number of recorded sessions. Recording 100% of sessions will blow the budget. We configure sampling—25% for random users, 100% for the premium segment. This can be done at SDK start or dynamically based on conditions. Smartlook sampling can reduce recording costs by up to 80%. For an app with 100,000 monthly sessions, 25% sampling could save up to $5,000 per month. Wire-frame mode is better than screenshot: it consumes 2x less traffic while preserving the screen structure. Our clients see a 40% reduction in bug reports after implementing session replay. We handle over 5,000 sessions analyzed per month.
Sampling Details
Sampling is configured via a start condition in the SDK. Example: record only premium users (100%) and 20% of the rest. This yields up to 80% savings without losing critical data. Sampling parameters:
- Random percentage: 1% to 100%.
- By user properties: plan, region, registration date.
- Dynamic changes without app update.
How We Integrate Smartlook
We use the latest SDK versions: for Smartlook iOS—Swift 5.9+ via Swift Package Manager; for Smartlook Android—Kotlin with Gradle. Everything in one block:
// iOS — integration
// Swift Package Manager: .package(url: "https://github.com/smartlook/smartlook-ios-sdk", from: "2.0.0")
import Smartlook
@main
struct MyApp: App {
init() {
Smartlook.setup(key: "YOUR_API_KEY")
Smartlook.start()
}
var body: some Scene {
WindowGroup { ContentView() }
}
}
// Configure rendering and autotracking
let config = Smartlook.SetupConfiguration(key: "YOUR_API_KEY")
config.renderingMode = .native // wire-frame for privacy
Smartlook.setEventTrackingMode(.fullTracking)
Smartlook.setup(configuration: config)
// Mask a view
view.slSensitive = true
// Name an element
purchaseButton.slTrackId = "purchase_button_pdp"
// Custom events and user properties
Smartlook.trackCustomEvent(name: "checkout", props: ["step": "payment"])
Smartlook.setUserIdentifier("user_123", sessionProperties: ["plan":"premium"])
// Android — integration
// build.gradle: implementation("com.smartlook.recording:app:2.+")
Smartlook.setupAndStartRecording("YOUR_API_KEY")
// Masking via XML
<EditText android:id="@+id/cvvField" app:smartlook_sensitive="true" />
// Name an element
SmartlookHint.setViewId(binding.purchaseButton, "purchase_button_pdp")
// Custom events
Smartlook.trackCustomEvent("checkout", mapOf("step" to "payment"))
Code for sampling:
// Sampling — record by condition
if user.isPremium {
Smartlook.start()
} else {
if Int.random(in: 0..<5) == 0 { Smartlook.start() } // 20%
}
Rendering Mode Comparison
| Mode | Description | Traffic Consumption | Privacy |
|---|---|---|---|
| Screenshot | Full screen capture | High | No masking |
| Wire-frame | Schematic display | Medium | No text preserved |
| No rendering | Events only, no video | Minimal | Full |
Wire-frame mode consumes 2x less traffic than screenshot.
Smartlook Automatic Event Types
| Event | Trigger |
|---|---|
| click | Tap on interactive element |
| input | Interaction with text field |
| focus | Focus on field |
| scroll | List scroll |
How to Configure Data Masking
Detailed instructions:
- Identify sensitive screens: payment forms, personal data input.
- For iOS: set
slSensitive = trueon each protected View, or useSmartlook.setViewIsSensitive(view, isSensitive: true)for UIViewController. - For Android: add attribute
app:smartlook_sensitive="true"in XML or callSmartlook.registerSensitiveView(view)programmatically. - Verify in a test session that fields are hidden.
Why We Insist on Automatic Tracking
Smartlook analyzes gestures and interactions without a single line of code. You don't need to tag every UI element—events are created automatically. If precision is needed, assign names to key elements. This speeds up analytics launch manifold. Additionally, Smartlook API allows integrating Smartlook heatmaps and Smartlook funnels for deep session analytics. We specialize in mobile app session recording for iOS and Android, providing powerful session analytics.
What Is Included in the Deliverables
- Source code of the integration with comments on GitHub.
- Documentation on masking and custom events.
- Configured funnels and dashboards in Smartlook.
- Team training on session analysis (1 hour).
- Post-deployment support for 2 weeks.
Contact us for a consultation—get in touch for a project audit. Request now, and a team of experts will take over.
Work Process
- Analytics — examine the current event schema and identify "dark zones".
- Design — determine which screens to mask, which elements to name, what session recording percentage to use.
- Integration — install SDK, configure parameters, write custom events.
- Testing — verify masking, event correctness, sampling operation.
- Deployment to App Store / Google Play — release new build, monitor first sessions.
Timelines
Basic integration takes 4–8 hours. If deep tagging, custom events, and funnels are needed, it takes 1–2 days. A precise estimate is calculated individually after a project audit.
With 95% of data leakage issues resolved through proper masking, and our 5+ years of experience, you can trust us to deliver a secure and efficient Smartlook integration.







