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

Версия релиза **1.5.10** | Дата релиза **20.06.2025**

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

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

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

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

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

## Установка

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

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

* Ознакомиться с демо-приложением
* Установить плагин через `npm`
* Объявить переменную для использования плагина
* Проверить корректность установки с помощью инициализации плагина с включенным режимом отладки

### Установите плагин

1. Откройте терминал в папке с проектом и пропишите команду для установки зависимости.

```bash
 cordova plugin add cordova.plugin.yabbi
```

2. Объявите переменную для использования плагина после вызова события `deviceready`.

```javascript
document.addEventListener('deviceready', onDeviceReady, false);

var Yabbi;

function onDeviceReady() {
    Yabbi = cordova.require('cordova.plugin.yabbi.Yabbi');
}    
```

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

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

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

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

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

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

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

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

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

```java
Yabbi.initialize("publisher_id");
```

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

```
SDK initialized(<номер версии Yabbi SDK>)
```

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

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

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

В случае возникновения ошибок рекомендуем очистить кеш `npm`.

```bash
npm cache clean --force
```

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

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

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

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

### Установка 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`

```javascript
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, вставьте следующий код в файл `config.xml` вашего приложения:

```xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="your.app.id" version="1.0.0" xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
   <!-- ... other settings -->
   
    <platform name="ios">
        <config-file target="*-Info.plist" parent="NSUserTrackingUsageDescription">
            <string>We need this permission for better ad targetting</string>
        </config-file>
    </platform>
</widget>
```

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

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

{% tabs %}
{% tab title="Android" %}
По умолчанию  разрешения на геолокацию включены в Android SDK.

Если вы не хотите предоставлять данные о геолокации, вставьте следующий код в файл `config.xml` вашего приложения:

```xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="your.app.id" version="1.0.0" xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
   <!-- ... other settings -->
   
    <platform name="android">
    
        <!-- ... other settings -->
        
        <!-- Нужно обязательно добавить эту строку -->
        <edit-config file="app/src/main/AndroidManifest.xml" target="/manifest" mode="merge">
            <manifest xmlns:tools="http://schemas.android.com/tools" />
        </edit-config>
        
        <!-- Разрешение для сбора приблизительной геолокации пользователя -->
        <config-file target="app/src/main/AndroidManifest.xml" parent="/*">
            <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove" />
        </config-file>
        
        <!-- Разрешение для сбора приблизительной геолокации пользователя -->
        <config-file target="app/src/main/AndroidManifest.xml" parent="/*">
            <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="remove" />
        </config-file>
    </platform>
</widget>
```

{% endtab %}

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

```xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="your.app.id" version="1.0.0" xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
   <!-- ... other settings -->
   
    <platform name="ios">
        <config-file target="*-Info.plist" parent="NSLocationWhenInUseUsageDescription">
            <string>We need this permission for better ad targetting</string>
        </config-file>
    </platform>
</widget>
```

{% endtab %}
{% endtabs %}


---

# 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/cordova-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.
