# Экран пользовательского согласия

Версия релиза **1.2.3** | Дата релиза **29.09.2025**

{% hint style="info" %}
Минимальные требования:

* Используйте Android API level 22 (Android OS 5.1) и выше.
  {% endhint %}

{% hint style="warning" %}
Информация, приведенная ниже, не является юридической консультацией. Yabbi не несет ответственности за последствия ее использования. Перед принятием юридически значимых решений рекомендуется проконсультироваться с юристом.
{% endhint %}

## Общая информация

Для соответствия требованиям магазина приложений и законов, регулирующих сбор, обработку и использование персональных данных пользователя, требуется получение его согласия на вышеуказанные действия. При получении отказа следует не собирать никаких данных о пользователе.

Помимо согласия пользователя, вам потребуется подготовить надлежащим образом политику конфиденциальности и другие документы, требуемые магазинами приложений и законодательством тех стран, в которых опубликовано ваше приложение.&#x20;

Получения однозначного согласия на сбор, обработку и использование пользовательских данных требуют большинство стран. Вот несколько основных документов, описывающих данный процесс:

* Федеральный закон от 27 июля 2006 г. N 152-ФЗ "О персональных данных"
* GDPR (General Data Protection Regulation, Постановление (Европейский союз) 2016/679)
* COPPA (Children's Online Privacy Protection Rule)
* CCPA (California Consumer Privacy Act)

{% hint style="warning" %}
Обращаем ваше внимание, что данный список не является исчерпывающим. Рекомендуем изучить законодательство, регулирующее персональные данные пользователей, в тех странах, в которых опубликовано ваше приложение, и проконсультироваться с юристом перед принятием юридически значимых решений.
{% endhint %}

## Consent screen и Consent Manager

Обычно получение согласия пользователя происходит на специальном экране при первом запуске приложения — consent-screen.

\
В Yabbi SDK реализован такой экран, вы можете добавить и настроить его с помощью работы с библиотекой **Consent Manager**. Вы можете использовать его, чтобы не создавать Consent Screen самостоятельно.

## Демо-приложение

Используйте наше демо-приложение в качестве примера.

{% embed url="<https://github.com/YabbiSDKTeam/yabbi-android-demo>" %}

## Установка

### Подготовьте Gradle

1. Установите Yabbi SDK. Подробно процесс установки описан в [соответствующем разделе](/yabbi-documentation/android-sdk/ustanovka-i-nastroika-sdk.md).
2. Добавьте в файл `build.gradle` зависимость для установки Consent manager.<br>

   ```groovy
   dependencies {
       // ... other dependencies
       
       // подключение зависимости Consent Manager SDK
       implementation 'sspnet.tech.consent:yabbi:1.2.3'
   }
   ```
3. Cохраните файл и нажмите `Gradle sync`.

## Настройка библиотеки Consent Manager

Перед использование экрана пользовательского согласия необходимо настроить его.

Для того, чтобы задать параметры, вызывайте методы переменной `builder`. Ниже представлен список всех доступных настроек:

* `appendPolicyURL` - устанавливает ссылку на политику конфиденциальности вашего приложения. Рекомендуем вам относиться к этому параметру как к обязательному. Ссылки на политики конфиденциальности Yabbi и наших партнёров уже добавлены на экран согласия.
* `appendBundle` - устанавливает кастомный Bundle. Он используется для установки иконки приложения в TopBar экрана пользовательского согласия.\
  Если параметр не заполнен, то отобразится существующая иконка приложения.
* `appendName` - устанавливает имя вашего приложения в TopBar экрана пользовательского согласия. Если параметр не заполнен, то отобразится существующее название приложения.
* `appendGDPR` - добавляет кнопку отказа от сбора данных.\
  \
  Consent screen с одной кнопкой, возможность отказа от сбора данных доступна пользователю только через ограничение настроек устройства.<br>

  <div align="left"><figure><img src="/files/zL3vQoUvysdXZ92x78Yq" alt="" width="156"><figcaption></figcaption></figure></div>

  \
  Consent screen с двумя кнопками, возможность отказа от сбора данных доступна пользователю по тапу на кнопку "Нет".<br>

  <div align="left"><figure><img src="/files/DZdnVKgmEOLXkyUyA1J0" alt="" width="156"><figcaption></figcaption></figure></div>

Взгляните на полный пример заполнения параметров:

```java
final ConsentBuilder builder = new ConsentBuilder()
        .appendPolicyURL("https://yabbi.me/policy")
        .appendGDPR(true)
        .appendBundle("me.yabbi.ads.app")
        .appendName("Example name");
        
consentManager.registerCustomVendor(builder);
```

## Работа с библиотекой Consent Manager

### Инициализация

Создайте в вашей `Activity` переменную `ConsentManager`.

```java
final ConsentManager consentManager = new ConsentManager();
```

Мы рекомендуем вызывать инициализацию SDK в вашей `MainActivity` - в `onCreate` методе.

```java
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    consentManager.loadManager();
}
```

### Показ экрана с запросом разрешений

Чтобы показать экран, необходимо вызывать метод `showConsentWindow`.

```java
consentManager.showConsentWindow();
```

### Узнать статус согласия пользователя

Если пользователь дал согласие на сбор данных, метод вернёт `true`:

```java
consentManager.hasConsent(this);
```

Если метод возвращает `false`, настоятельно рекомендуем не собирать никакие данные об этом пользователе.

### Обновление статуса согласия пользователя (метод SDK для работы с рекламой)

Для обновления статуса согласия в Yabbi SDK (для работы с рекламой) используется метод `setUserConsent`.

```java
Yabbi.setUserConsent(consentManager.hasConsent(this));
```

С остальными методами Yabbi SDK (для работы с рекламой) вы можете ознакомиться в [соответствующем разделе](/yabbi-documentation/android-sdk/rabota-s-reklamoi.md#metody-sdk).

### Режим отладки

Если вам требуется логирование ошибок и событий, включите режим отладки.\
По умолчанию он выключен.

Для включения режима отладки воспользуйтесь методом `enableDebug`.

```java
consentManager.enableDebug(true);
```

## Отслеживание событий

Consent Manager позволяет вам отслеживать события, связанные с согласием пользователя на сбор данных.

Для отслеживания событий необходимо предоставить класс для работы.

Ниже представлен пример установки рекламных событий.

```java
consentManager.setListener(new ConsentListener() {
    @Override
    public void onConsentManagerLoaded() {
        // Вызывается когда менеджер готов к показу
    }

    @Override
    public void onConsentManagerLoadFailed(String error) {
        // Вызывется если при загрузке произошла ошибка
    }

    @Override
    public void onConsentWindowShown() {
        // Вызывается при показе экрана
    }

    @Override
    public void onConsentManagerShownFailed(String error) {
        // Вызывется если при показе экрана произошла ошибка
    }

    @Override
    public void onConsentWindowClosed(boolean hasConsent) {
        // Вызывается при закрытии экрана
        // hasConsent - определяет дал ли пользователь согласие
    }
});
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://yabbi.gitbook.io/yabbi-documentation/android-sdk/ekran-polzovatelskogo-soglasiya.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
