# Установка и настройка плагина

Версия релиза **1.4.6** | Дата релиза **20.10.2025**

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

* Используйте Unity 2018.3+ версии.
* Используйте Android API level 22 (Android OS 5.1) и выше.
* Используйте iOS 13.0 и выше.
* Используйте Xсode 13 и выше.
  {% endhint %}

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

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

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

## Установка

### Общее описание процесса установки

Для установки Unity Plugin вам потребуется:

* Ознакомиться с демо-приложением
* Скачать и импортировать в проект последнюю версию плагина
* Настроить `External Dependency Manager`
* Проверить корректность установки с помощью инициализации плагин с включенным режимом отладки

### Скачайте плагин

1. Скачайте последнюю версию плагина по [ссылке](https://sdkpkg.sspnet.tech/unity/yabbi/latest/yabbi-unity-plugin.unitypackage).
2. Импортируйте плагин в проект через опцию `Custom Package`.\
   \
   Плагин включает в себя `External Dependency Manager`.\
   Вы можете его не импортировать, если он был установлен в проекте раньше.<br>

   <figure><img src="/files/pRQB9XQtG3o56hyuAOm2" alt=""><figcaption></figcaption></figure>

### Настройте External Dependency Manager

**External Dependency Manager** - плагин для разрешения конфликтов зависимостей.

Для разрешения конфликтов зависимостей в вашем приложении выполните следующие шаги:

1. Перейдите в `Build Settings` → `Android`→`Player Settings` → `Publishing settings`
2. Для `Unity 2018.4` - `Unity 2019.2`:  добавьте флаг `Custom Gradle Template` \
   Для `Unity 2019.3` или выше:  добавьте флаг `Custom Main Gradle Template`&#x20;

<figure><img src="/files/Cc9qHtmxqkueZV3LxZxK" alt=""><figcaption></figcaption></figure>

3. Перейдите в `External Dependency Manager` → `Android Resolver` → `Settings`
4. Включите настройку - `Patch mainTemplate.gradle`
5. Включите настройку - `Use Jetifier`&#x20;

<figure><img src="/files/F3A3bhzzKcaDkA3FYbhu" alt=""><figcaption></figcaption></figure>

6. Выберите опцию `Force Resolve` в `External Dependency Manager` → `Android Resolver` → `Force Resolve`
7. При успешном импорте зависимостей вы увидите оповещение `Resolution Succeeded`

### Обфускация кода

Если в вашем Android-приложении включена обфускация кода, то добавьте следующий текст в конец файла `proguard-rules.pro`:

```processing
-keep class sspnet.tech.**.* { *; }
```

### Добавьте ключ Applovin SDK&#x20;

Если вы используете адаптер для Applovin, то выполните следующие действия для платформы с которой вы работаете

{% tabs %}
{% tab title="Android" %}
Если вы используете адаптер для Applovin, то добавьте следующий `<meta-data>` элемент в свой `AndroidManifest.xml` внутри `<application>` элемента:

```xml
<meta-data android:name="applovin.sdk.key"
           android:value="APPLOVIN_SDK_KEY"/>
```

Ваш `APPLOVIN_SDK_KEY` вы сможете скопировать в разделе "Keys" в [личном кабинете](https://dash.applovin.com/o/account?r=2#keys) Applovin.
{% endtab %}

{% tab title="iOS" %}
Добавьте следующий в `Info.plist` следующий ключ:

```xml
<key>AppLovinSdkKey</key>
<string>APPLOVIN_SDK_KEY</string>
```

Ваш `APPLOVIN_SDK_KEY` вы сможете скопировать в разделе "Keys" в [личном кабинете](https://dash.applovin.com/o/account?r=2#keys) Applovin.
{% endtab %}
{% endtabs %}

### Проверка установки

Чтобы убедиться, что плагин установлен корректно, потребуется включить режим отладки и инициализировать плагин.

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

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

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

```csharp
Yabbi.EnableDebug(true);
```

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

1. Наследуйте класс который будет работать с SDK от интерфейса для отслеживания инициализации SDK.

```csharp
class YourClassName : IInitializationListener {    
    public void OnInitializeSuccess()
    {
        // Вызывется когда SDK установлена корректно
    }
    
    public void OnInitializeFailed(AdException error)
    {
        // Вызывется когда при установке SDK произошла ошибка
        // С помощью AdException error можно получить подробную информацию об ошибке
    }
}
```

2. Используйте код ниже, чтобы инициализировать плагин в вашем проекте. \
   \
   Ваш `publisher_id` вы сможете скопировать в разделе "Настройки" в [личном кабинете](https://publisher.yabbi.me) Yabbi.

```csharp
Yabbi.Initialize("publisher_id");
```

Если плагин установлен корректно, то вы увидите в консоли следующее сообщение.

```
Call to Initialize on not supported platform. To test advertising, install your application on the Android/iOS device.
```

Сообщениие сигнализирует что плагин установлен правильно, но показ рекламы возможен только после сборки приложения под Android/iOS.

Готово! Плагин установлен, можем переходить к [настройке рекламы](/yabbi-documentation/unity-plugin/rabota-s-reklamoi.md).

Рекомендуем вам не отключать режим отладки до завершения работы с рекламой.

### Если плагин устанавливается некорректно

В случае возникновения ошибок рекомендуем очистить кеш `External Dependency Manager` и выбрать `Force Resolve` в `External Dependency Manager` → `Android Resolver`.

<div data-full-width="false"><figure><img src="/files/fxOZauwvF9eFhuN1bZo0" alt=""><figcaption><p>Очистка кеша External Dependency Manager на Mac OS</p></figcaption></figure></div>

Если это не помогло, попробуйте установить плагин в чистый проект. Если плагин установился корректно, попробуйте отладить ошибки в вашем проекте.

Также рекомендуем взглянуть на установку и инициализацию в [демо-приложении](https://github.com/YabbiSDKTeam/yabbi-unity-demo).

Если у вас не получается корректно установить плагин, и действия выше не привели к успешной инициализации — обратитесь в поддержку.

## Обновление плагина и управление адаптерами для других рекламных сетей

{% hint style="warning" %}
Обязательно проверьте наличие обновления перед сборкой приложения.
{% endhint %}

Yabbi Unity Plugin предоставляет удобный интерфейс для обновления плагина и управления рекламными сетями. В окне Dependency Manager вы можете обновить плагин до последней версии, а так же выбрать рекламные сети, которые вы хотите использовать.

<figure><img src="/files/8M02NPigCbX69eGl5HA1" alt=""><figcaption></figcaption></figure>

## Дополнительные действия для повышения дохода

### Установка Apple ID

Для более эффективного работы таргетированной рекламы и повышения дохода Yabbi SDK собирает и передаёт с данными о пользователе [App ID](https://developer.apple.com/help/account/manage-identifiers/register-an-app-id/) - уникальный числовой идентификатор приложения из Apple AppStore.

Он определяется автоматически, но в некоторых случаях Yabbi SDK не может его определить.

Если Yabbi SDK не определил ваш App ID, то вы увидите в консоли следующее сообщение.

```
AppStore ID is nil. You must set AppStore ID manually.
```

В таком случае вам необходимо установить ID вручную.

Для установки Apple ID используйте метод `setCustomParams`

```csharp
Yabbi.SetCustomParams("appStoreAppID", "apple_id");
```

Замените `apple_id` на ваш App ID из кабинета разработчика AppStore. Вы можете найти его на странице приложения в [кабинете разработчика](https://appstoreconnect.apple.com/).

<figure><img src="/files/37yMBEOJoqYBRZjkBCLf" alt=""><figcaption><p>Расположение Apple ID в AppStore Connect</p></figcaption></figure>

### Рекламный идентификато Apple (IDFA)

Для более эффективного работы таргетированной рекламы и повышения дохода вы можете собирать рекламный идентификатор пользователя устройств Apple и передавать их в Yabbi SDK.

Чтобы включить сбор IDFA, включите следующие чекбоксы в настройках плагина:

`NSUserTrackingUsageDescription` - Разрешение для сбора рекламного идентификатора (Advertising Identifier IDFA)

<figure><img src="/files/mXBwKQ1RH7AYxtaqrhRX" alt=""><figcaption></figcaption></figure>

### Сбор данных о геолокации

Для более эффективного работы таргетированной рекламы и повышения дохода вы можете собирать в приложении данные о точной и/или примерной геолокации пользователя, и передавать их в Yabbi SDK.

{% tabs %}
{% tab title="Android" %}
Чтобы включить сбор данных о геолокации на Android, включите следующие чекбоксы в настройках плагина:

`ACCESS_COARSE_LOCATION` - Разрешение для сбора приблизительной геолокации пользователя

`ACCESS_FINE_LOCATION` - Разрешение для сбора точной геолокации пользователя

<figure><img src="/files/TlZo3fJHWfYMZ6qSjLrM" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="iOS" %}
Чтобы включить сбор данных о геолокации на iOS, включите следующие чекбоксы в настройках плагина:

`NSLocationWhenInUseUsageDescription` - Разрешение для сбора геолокации пользователя

<figure><img src="/files/mXBwKQ1RH7AYxtaqrhRX" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## Прочие настройки плагина

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

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

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

В Yabbi Unity Plugin реализован такой экран, вы можете добавить и настроить его с помощью библиотеки Consent Manager.

Подробнее о его установке и настройке вы можете узнать в соответствующем разделе.

{% content-ref url="/pages/GlpKAsV84M8JJdxGgEV3" %}
[Экран пользовательского согласия](/yabbi-documentation/unity-plugin/ekran-polzovatelskogo-soglasiya.md)
{% endcontent-ref %}

### Возможные ошибки

#### Library not loaded: @rpath/YabbiSDK.framework/YabbiSDK

Ошибка возникает из-за особенностей линковки xcframework в Unity. Для того чтобы исправить ошибку вам необходимо скачать `YabbiPostProcessBuildiOS.cs` по этой [ссылке](https://sdkpkg.sspnet.tech/unity/yabbi/utils/YabbiPostProcessBuildiOS.cs) и поместить его в папку `scripts` либо в другую папку для ваших скриптов.


---

# 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/unity-plugin/ustanovka-i-nastroika-plagina.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.
