---
title: How the SDK works - Flutter (classic)
description: Understand how the Flutter SDK loads, tracks, and send data
lastUpdated: 28 April 2026
source_url:
  html: https://docs.contentsquare.com/en/flutter/how-the-sdk-works/
  md: https://docs.contentsquare.com/en/flutter/how-the-sdk-works/index.md
---

> Documentation index: https://docs.contentsquare.com/llms.txt
> Use this file to discover all available pages before exploring further.

The latest CSQ SDK is here! Learn how to [upgrade your app](https://docs.contentsquare.com/en/csq-sdk-flutter/experience-analytics/upgrade-from-cs-sdk/).

The SDK must be initialized by calling `Contentsquare().start()` and requires `Contentsquare().optIn()` to begin collecting data.

## Configuration

Upon initialization, our SDK fetches its configuration from our servers. Depending on the segmentation size defined in your contract, it will start collecting data from system and user events detected during runtime.

## Tracking

The SDK monitors application lifecycle events and the view hierarchy, generating analytics data from app behavior, screen content, and user interaction. These events are stored locally and eventually sent to our servers in batches. We aggregate this data to create actionable visual insights in our Web Application, enabling you to gather insights.

## Sending data

* Android

  Checkout the [Native Android SDK documentation for Sending data](https://docs.contentsquare.com/en/android/how-the-sdk-works/#sending-data)

* iOS

  Checkout the [Native iOS SDK documentation for Sending data](https://docs.contentsquare.com/en/ios/how-the-sdk-works/#sending-data)

## Session definition

A session is one continuous period of user interaction. It starts upon app launch and persists through state changes, including putting the app in the background or terminating and restarting it. As long as users interact at least once every 30 minutes, it remains the same session.
