# Node SDK

### **Начать**

Чтобы начать отслеживание с помощью Node SDK Offer18, вам нужно интегрировать SDK в ваше веб-приложение как node-модуль.

\
Узнать последнюю стабильную версию пакета Node

{% embed url="<https://www.npmjs.com/package/offer18-sdk>" %}

***

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

Вы можете установить пакет с помощью npm:

```bash
npm install offer18-sdk
```

или

```bash
npm i offer18-sdk
```

***

### Использование

#### Импорт

```javascript
import Offer18SDK from 'offer18-sdk';
```

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

```javascript
const Offer18WebSDK = new Offer18SDK();
```

#### Доступные методы

```javascript
// Инициализировать конверсию
Offer18WebSDK.initializeUrlParam('YOUR-CLICK-ID-PARAMETER');

// Зарегистрировать клик
Offer18WebSDK.trackClick(options);

// Зарегистрировать показ
Offer18WebSDK.trackImpression(options);

// Зарегистрировать конверсию
Offer18WebSDK.trackConversion(options);

// Сбросить cookie
Offer18WebSDK.clearCookies();

// Включить логгер
Offer18WebSDK.activateDebugMode();
```

***

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

Поток конверсии — это последовательность, в которой Node SDK будет отслеживать только конверсии. Чтобы реализовать поток конверсии, после инициализации SDK вам нужно добавить методы в следующем порядке::

<mark style="color:пурпурный;">Размещение: при загрузке страницы или после монтирования компонента</mark>

```javascript
Offer18WebSDK.initializeUrlParam('YOUR-CLICK-ID-PARAMETER');
```

затем

<mark style="color:пурпурный;">Размещение: страница благодарности/страница успешного заказа</mark>

```javascript
Offer18WebSDK.trackConversion(options);
```

{% hint style="info" %}
Узнать больше о **YOUR-CLICK-ID-PARAMETER** **&** **опции** в [**Обзор методов**](#method-overview)
{% endhint %}

***

### Поток SDK

Поток SDK — это последовательность, которая позволяет отслеживать весь процесс конверсии в Node SDK, включая отслеживание показов, кликов и конверсий. После инициализации SDK вам нужно добавить методы в следующем порядке:

<mark style="color:пурпурный;">Размещение: при загрузке страницы или после монтирования компонента</mark>

```javascript
Offer18WebSDK.trackImpression(options)
```

затем

<mark style="color:пурпурный;">Размещение: можно размещать на всех страницах (при загрузке страницы или после монтирования компонента)</mark>

```javascript
Offer18WebSDK.trackClick(options);
```

затем

<mark style="color:пурпурный;">Размещение: страница благодарности/страница успешного заказа</mark>

```javascript
Offer18WebSDK.trackConversion(options);
```

{% hint style="info" %}
Узнать больше о **опции** в [**Обзор методов**](#method-overview)
{% endhint %}

***

### Обзор методов

#### initializeConversion('**YOUR-CLICK-ID-PARAMETER**')

Этот метод используется для инициализации конверсии. Вам нужно добавить этот метод либо при загрузке страницы, либо после монтирования компонента.&#x20;

{% hint style="info" %}
Замените **YOUR-CLICK-ID-PARAMETER** на ключ параметра, который используется для принятия значения из **{tid}** токена в URL предложения.
{% endhint %}

#### trackClick(options)

Этот метод используется для отслеживания кликов.

* **Параметры**:
  * `опции` (object): параметры конфигурации.

<table><thead><tr><th width="166">Параметр</th><th width="92">Тип</th><th>Описание</th></tr></thead><tbody><tr><td><code>trackingURL</code></td><td>строка</td><td><strong>Обязательно</strong>: URL для отслеживания, который можно извлечь из панели управления Offer18</td></tr><tr><td><code>keymapping</code></td><td>массив</td><td>Массив параметров Offer18 и собственных параметров в формате <code>&#x3C;OFFER18-PARAMETER>:&#x3C;YOUR-PARAMETER></code>. Пользователь может заменить <code>&#x3C;OFFER18-PARAMETER></code> параметрами Offer18, такими как <code>aff_sub1</code>, <code>aff_sub2</code> и <code>&#x3C;YOUR-PARAMETER></code> с их параметрами, из которых пользователь получает значения от своей сети.</td></tr></tbody></table>

**Пример кода**&#x20;

```javascript
Offer18WebSDK.trackClick({
    trackingURL: 'https://example.o18.click/c?o=0000000&m=0000',
    keymapping: ['a:<YOUR-PARAMETER>']
});
```

#### trackImpression(options)

Этот метод используется для отслеживания показов.

* **Параметры**:
  * `опции` (object): параметры конфигурации.

<table><thead><tr><th width="184">Параметр</th><th width="97">Тип</th><th>Описание</th></tr></thead><tbody><tr><td><code>impressionURL</code></td><td>строка</td><td><strong>Обязательно</strong>: URL для отслеживания, который можно извлечь из панели управления Offer18</td></tr><tr><td><code>keymapping</code></td><td>массив</td><td>Массив параметров Offer18 и собственных параметров в формате <code>&#x3C;OFFER18-PARAMETER>:&#x3C;YOUR-PARAMETER></code>. Пользователь может заменить <code>&#x3C;OFFER18-PARAMETER></code> параметрами Offer18, такими как <code>aff_sub1</code>, <code>aff_sub2</code> и <code>&#x3C;YOUR-PARAMETER></code> с их параметрами, из которых пользователь получает значения от своей сети.</td></tr></tbody></table>

**Пример кода**&#x20;

```javascript
Offer18WebSDK.trackImpression({
    impressionURL: 'https://example.o18.click/i?o=0000000&m=0000',
    keymapping: ['a:<YOUR-PARAMETER>']
});
```

#### trackConversion(options)

Этот метод используется для отслеживания конверсий.

* **Параметры**:
  * `опции` (object): параметры конфигурации.

<table><thead><tr><th width="257">Параметр</th><th width="149">Тип</th><th>Описание</th></tr></thead><tbody><tr><td><code>domain</code></td><td>строка</td><td><strong>Обязательно</strong>: Домен постбэка пользователя.</td></tr><tr><td><code>accountId</code></td><td>строка</td><td><strong>Обязательно</strong>: Идентификатор аккаунта Offer18 пользователя.</td></tr><tr><td><code>offerId</code></td><td>строка</td><td><strong>Обязательно</strong>: Идентификатор кампании.</td></tr><tr><td><code>coupon</code></td><td>строка</td><td>Здесь можно использовать код купона.</td></tr><tr><td><code>postbackType</code></td><td>строка</td><td>Это может быть либо 'iframe', либо 'pixel', значение по умолчанию — 'iframe'.</td></tr><tr><td><code>isGlobalPixel</code></td><td>булево</td><td>Пользователь может настроить глобальный пиксель, установив это значение в true, значение по умолчанию — false.</td></tr><tr><td><code>allowMultiConversion</code></td><td>булево</td><td>Пользователь может разрешить множественные конверсии, установив это значение в true, значение по умолчанию — false.</td></tr><tr><td><code>conversionData</code></td><td>объект</td><td>Этот объект содержит параметры, которые можно использовать для получения значений из сети.</td></tr></tbody></table>

<mark style="color:пурпурный;">conversionData</mark> **Объект**

<table><thead><tr><th width="167">Параметр</th><th width="126">Тип</th><th>Описание</th></tr></thead><tbody><tr><td><code>event</code></td><td>строка</td><td>Название события (пожалуйста, укажите событие)</td></tr><tr><td><code>payout</code></td><td>строка</td><td>Сумма выплаты (пожалуйста, укажите сумму выплаты)</td></tr><tr><td><code>sale</code></td><td>строка</td><td>Сумма продажи (пожалуйста, укажите сумму продажи)</td></tr><tr><td><code>currency</code></td><td>строка</td><td>Код валюты</td></tr><tr><td><code>adv_sub1</code></td><td>строка</td><td>Подпараметр рекламодателя 1</td></tr><tr><td><code>adv_sub2</code></td><td>строка</td><td>Подпараметр рекламодателя 2</td></tr><tr><td><code>adv_sub3</code></td><td>строка</td><td>Подпараметр рекламодателя 3</td></tr><tr><td><code>adv_sub4</code></td><td>строка</td><td>Подпараметр рекламодателя 4</td></tr><tr><td><code>adv_sub5</code></td><td>строка</td><td>Подпараметр рекламодателя 5</td></tr></tbody></table>

**Пример кода**

```javascript
Offer18WebSDK.trackConversion({
        domain: '',
        accountId: '',
        offerId: '',
        coupon:'',
        postbackType: '', // 'iframe' или 'pixel'
        isGlobalPixel: false, // true или false
        allowMultiConversion: false, // true или false
        conversionData: {
            event: '', // Название события (пожалуйста, укажите событие)
            payout: '', // Сумма выплаты (пожалуйста, укажите сумму выплаты)
            sale: '', // Сумма продажи (пожалуйста, укажите сумму продажи)
            currency: '',
            adv_sub1: '',
            adv_sub2: '',
            adv_sub3: '',
            adv_sub4: '',
            adv_sub5: '',
        }
    });
```

#### clearCookies()

Этот метод используется для удаления всех first-party cookie, добавленных этим пакетом.

#### activateDebugMode()

Этот метод используется для включения логгера. Логи всех действий, выполняемых этим пакетом, будут видны в консоли инструментов разработчика браузера. Вам нужно добавить этот метод сразу после инициализации SDK

### Совместимость Node SDK с фронтенд-фреймворками и библиотеками

Следующие фронтенд **фреймворки и библиотеки** совместимы с Node SDK и могут использоваться с ними напрямую через npm:

{% code overflow="wrap" %}

```
Next.js, Nuxt.js, SvelteKit, Gatsby, Remix, RedwoodJS, Blitz.js, Astro, Eleventy (11ty), React Static, Gridsome, VuePress, Quasar Framework, Razzle, Preact CLI, NestLand, Hydrogen, Marko, Inferno, Vite, React, Vue.js, Svelte, Preact, SolidJS, Alpine.js, Lit, Stencil.js, Hyperapp, Riot.js, Mithril.js
```

{% endcode %}
