---
title: Reliable Targets - Flutter (classic)
description: Reliable targets enables the analysis of data across various Screenshots from different dates and versions, including layouts or A/B testing variations
lastUpdated: 14 January 2026
source_url:
  html: https://docs.contentsquare.com/en/flutter/reliable-targets/
  md: https://docs.contentsquare.com/en/flutter/reliable-targets/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/).

Contentsquare SDK uses zoning identifiers that relies heavily on the structure of the widget tree. Consequently, changes to the widget tree, such as moving, nesting, or removing a widget, may result in the loss of tracking data.

For instance, consider the widget tree of a Flutter app as illustrated below:

**main.dart**

```dart
Widget _buildMyAwesomeContent() {
  return Column(
    children: const [
      Text('Answer to the Ultimate Question of Life, The Universe, and Everything'),
      Text('is'),
      Text('42'),
    ],
  );
}
```

In many cases, maintaining a `Reliable Target`, despite changes in its position within the tree, is essential. This consistency ensures reliable analysis of data across different `Screenshots`, dates, and versions, including variations in layouts or A/B testing.

Having a `Reliable Target` for a widget enables the analysis of data across various `Screenshots` from different dates and versions, including layouts or A/B testing variations.

Here are some scenarios where the Reliable Targets feature proves beneficial:

* Tracking elements capable of dynamically shifting on a page (example: customizable profile page).
* Monitoring elements across various app versions, even if their positions change (example: carousel transitioning from top to bottom).
* Tracking elements amidst A/B testing (example: testing old and new product pages within the same version).
* Monitoring elements used across multiple pages (example: search bar).
* Ensuring a unique identifier for a call to action regardless of its location on the screen (example: "Add to Cart" button).

To facilitate this, the `Contentsquare` Flutter SDK offers a `ReliableTarget` widget, designed to encapsulate the widget intended for reliable tracking.

The `ReliableTarget` widget requires a mandatory `name` argument for identifying the component to track. Below is an example of implementing it with the provided code:

**main.dart**

```dart
Widget _buildMyAwesomeContent() {
  return ReliableTarget(
    name: '42_is_the_answer',
    child: Column(
      children: const [
        Text('Answer to the Ultimate Question of Life, The Universe, and Everything'),
        Text('is'),
        Text('42'),
      ],
    ),
  );
}
```

Limitations

* `name` MUST be unique
* `name` should NOT be empty
* `name` for the same `ReliableTarget` must be the same across different versions of the app
