> ## Documentation Index
> Fetch the complete documentation index at: https://www.mellowtel.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Підключення / Відключення

> Користувачі повинні явно дати згоду перед тим, як будь-яка пропускна здатність буде розділена, і можуть відкликати згоду в будь-який час

## Що це таке

Mellowtel не буде ділитися жодним байтом пропускної здатності, поки користувач явно не підключиться, і користувач завжди повинен мати очевидний спосіб відключитися. Це жорстка вимога SDK та жорстка вимога кожної політики магазину браузера, яка дозволяє розширення на основі Mellowtel.

## Чому це важливо

Це пропускна здатність користувача. Будь-яка згода, яка не є явною та відкликаною, є як неетичною, так і підставою для видалення з магазину. SDK розроблено так, щоб *простий* шлях також був *відповідним*. Якщо ти дотримуєшся рекомендованої реалізації, ти не зможеш випадково випустити версію, яка активується без згоди.

## Як це працює

При першій установці (і при будь-якому оновленні, яке вперше вводить Mellowtel) ти повинен показати користувачеві не закривається відмову від відповідальності, яка пояснює, що робить Mellowtel, а потім зафіксувати їх вибір. Відтоді посилання на налаштування повинно бути доступним з якогось очевидного місця у твоєму інтерфейсі, щоб вони могли змінити своє рішення.

<Frame caption="Приклад відмови від відповідальності">
  <img src="https://mintcdn.com/mellowtel/-NaMUO-H7VMwBlS7/images/mellowtel_disclaimer.png?fit=max&auto=format&n=-NaMUO-H7VMwBlS7&q=85&s=ab77574d21e0e4879d5f55977eab0223" width="1058" height="898" data-path="images/mellowtel_disclaimer.png" />
</Frame>

Ти маєш два варіанти реалізації:

1. **Рекомендовано:** відкрити попередньо створену сторінку підключення Mellowtel за допомогою `generateAndOpenOptInLink()`. Один виклик методу, повністю відповідний, максимізує конверсію підключення.
2. **Користувацький інтерфейс:** створити власну поверхню згоди та викликати `optIn()` / `optOut()` самостійно.

## API поверхня

| Метод                        | Повертає           | Використовуй для                                                                          |
| ---------------------------- | ------------------ | ----------------------------------------------------------------------------------------- |
| `generateAndOpenOptInLink()` | `Promise<void>`    | Відкрити розміщену сторінку підключення (рекомендований шлях).                            |
| `getOptInStatus()`           | `Promise<boolean>` | Перевірити, чи вже користувач підключився.                                                |
| `optIn()`                    | `Promise<void>`    | Зафіксувати згоду з твого власного інтерфейсу.                                            |
| `optOut()`                   | `Promise<void>`    | Відкликати згоду з твого власного інтерфейсу.                                             |
| `start()`                    | `Promise<void>`    | Почати обслуговування запитів після підключення.                                          |
| `generateSettingsLink()`     | `Promise<string>`  | URL до розміщеної сторінки налаштувань, щоб користувачі могли змінити свій вибір пізніше. |

Усі методи доступні з будь-якої частини твого розширення: спливаюче вікно, скрипт контенту або фоновий скрипт.

## Рекомендована реалізація

Повний посібник з інтеграції знаходиться у швидких стартових посібниках платформи. Вони показують, де розмістити SDK, як підключити його до життєвого циклу встановлення/оновлення та як його тестувати:

* [Швидкий старт для плагінів браузера](/browser-plugins/quickstart)
* [Швидкий старт для настільних додатків](/desktop-app/quickstart)
* [Швидкий старт для вебсайтів](/website/quickstart)
* [Швидкий старт для мобільних додатків](/mobile-app/quickstart)

Коротко кажучи, після `new Mellowtel(...)` та `initBackground()`, виклич `generateAndOpenOptInLink()` з твого обробника встановлення/оновлення. Це все.

## Користувацький інтерфейс

Якщо ти хочеш повністю контролювати поверхню згоди, зафіксуй вибір користувача у своєму інтерфейсі та передай його до SDK:

```javascript theme={null}
// Користувач погодився
await mellowtel.optIn();
await mellowtel.start();

// Користувач відмовився або пізніше відкликав
await mellowtel.optOut();

// Перевірити статус (наприклад, для відображення перемикача)
const hasOptedIn = await mellowtel.getOptInStatus();
```

Який би інтерфейс ти не створив, він повинен:

1. Бути не закривається при першій установці.
2. За замовчуванням бути відключеним, поки користувач активно не погодиться.
3. Бути повторно відкривається з якогось очевидного місця у твоєму продукті, щоб користувачі могли змінити свій вибір.

## Посилання на налаштування

Користувачі завжди повинні мати легкий спосіб змінити свої налаштування. Використовуй `generateSettingsLink()`, щоб отримати URL до розміщеної сторінки налаштувань і розмісти його десь постійно: у твоєму спливаючому вікні, на сторінці опцій, на екрані облікового запису.

```javascript theme={null}
const settingsUrl = await mellowtel.generateSettingsLink();
```

## Оголошення Mellowtel для існуючих користувачів

Якщо ти додаєш Mellowtel до розширення, яке вже має користувачів, ти повинен повідомити їм, що змінилося, перш ніж запитувати згоду. Ми надаємо [шаблон оголошення для копіювання та вставки](/concepts/update-announcement), який ти можеш адаптувати.

## Пов'язані

* [Конфіденційність](/concepts/privacy): що користувачі фактично погоджуються ділитися.
* [Обмеження швидкості](/concepts/rate-limiting): як SDK захищає користувачів, які підключилися.
