# 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 %}


---

# 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://knowledgebase.offer18.com/ru/set/sdk/node-sdk.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.
