> For the complete documentation index, see [llms.txt](https://knowledgebase.offer18.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://knowledgebase.offer18.com/pt/rede/sdk/sdk-node.md).

# SDK Node

### **Comece agora**

Para começar a rastrear usando o SDK Node da Offer18, você precisará integrar o SDK à sua aplicação web como um módulo node.

\
Descubra a versão estável mais recente do pacote Node

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

***

### Instalação

Você pode instalar o pacote usando npm:

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

ou

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

***

### Uso

#### Importar

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

#### Inicializar

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

#### Métodos disponíveis

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

// Register Click
Offer18WebSDK.trackClick(options);

// Register Impression
Offer18WebSDK.trackImpression(options);

// Register Conversion
Offer18WebSDK.trackConversion(options);

// Reset Cookies
Offer18WebSDK.clearCookies();

// Enable Logger
Offer18WebSDK.activateDebugMode();
```

***

### Fluxo de conversão

O fluxo de conversão é a sequência em que apenas conversões serão rastreadas pelo SDK Node. Para implementar o fluxo de conversão, após inicializar o SDK, você precisa adicionar os métodos na seguinte ordem::

<mark style="color:purple;">Posicionamento: carregamento da página ou após a montagem do componente</mark>

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

então

<mark style="color:purple;">Posicionamento: página de agradecimento/página de pedido concluído</mark>

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

{% hint style="info" %}
Saiba mais sobre **YOUR-CLICK-ID-PARAMETER** **&** **options** em [**Visão geral do método**](#method-overview)
{% endhint %}

***

### Fluxo do SDK

O fluxo do SDK é a sequência que permite aos usuários rastrear todo o processo de conversão no SDK Node, incluindo o rastreamento de impressões, cliques e conversões. Após inicializar o SDK, você precisa adicionar os métodos na seguinte ordem:

<mark style="color:purple;">Posicionamento: carregamento da página ou após a montagem do componente</mark>

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

então

<mark style="color:purple;">Posicionamento: pode ser colocado em todas as páginas (no carregamento da página ou após a montagem do componente)</mark>

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

então

<mark style="color:purple;">Posicionamento: página de agradecimento/página de pedido concluído</mark>

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

{% hint style="info" %}
Saiba mais sobre **options** em [**Visão geral do método**](#method-overview)
{% endhint %}

***

### Visão geral do método

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

Este método é usado para inicializar a conversão. Você precisa adicionar este método no carregamento da página ou após a montagem do componente.&#x20;

{% hint style="info" %}
Substitua **YOUR-CLICK-ID-PARAMETER** pelo nome da chave do parâmetro que é usado para aceitar o valor do **{tid}** token na URL da oferta.
{% endhint %}

#### trackClick(options)

Este método é utilizado para rastrear cliques.

* **Parâmetros**:
  * `options` (object): opções de configuração.

<table><thead><tr><th width="166">Parâmetro</th><th width="92">Tipo</th><th>Descrição</th></tr></thead><tbody><tr><td><code>trackingURL</code></td><td>string</td><td><strong>Obrigatório</strong>: URL de rastreamento que pode ser extraída do painel da Offer18</td></tr><tr><td><code>keymapping</code></td><td>array</td><td>Uma matriz de parâmetros da Offer18 e parâmetros nativos no formato <code>&#x3C;OFFER18-PARAMETER>:&#x3C;YOUR-PARAMETER></code>. O usuário pode substituir <code>&#x3C;OFFER18-PARAMETER></code> por parâmetros da Offer18 como <code>aff_sub1</code>, <code>aff_sub2</code> e <code>&#x3C;YOUR-PARAMETER></code> pelos seus parâmetros nos quais o usuário está recebendo valores da sua rede.</td></tr></tbody></table>

**Exemplo de código**&#x20;

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

#### trackImpression(options)

Este método é utilizado para rastrear impressões.

* **Parâmetros**:
  * `options` (object): opções de configuração.

<table><thead><tr><th width="184">Parâmetro</th><th width="97">Tipo</th><th>Descrição</th></tr></thead><tbody><tr><td><code>impressionURL</code></td><td>string</td><td><strong>Obrigatório</strong>: URL de rastreamento que pode ser extraída do painel da Offer18</td></tr><tr><td><code>keymapping</code></td><td>array</td><td>Uma matriz de parâmetros da Offer18 e parâmetros nativos no formato <code>&#x3C;OFFER18-PARAMETER>:&#x3C;YOUR-PARAMETER></code>. O usuário pode substituir <code>&#x3C;OFFER18-PARAMETER></code> por parâmetros da Offer18 como <code>aff_sub1</code>, <code>aff_sub2</code> e <code>&#x3C;YOUR-PARAMETER></code> pelos seus parâmetros nos quais o usuário está recebendo valores da sua rede.</td></tr></tbody></table>

**Exemplo de código**&#x20;

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

#### trackConversion(options)

Este método é utilizado para rastrear conversões.

* **Parâmetros**:
  * `options` (object): opções de configuração.

<table><thead><tr><th width="257">Parâmetro</th><th width="149">Tipo</th><th>Descrição</th></tr></thead><tbody><tr><td><code>domain</code></td><td>string</td><td><strong>Obrigatório</strong>: domínio de postback do usuário.</td></tr><tr><td><code>accountId</code></td><td>string</td><td><strong>Obrigatório</strong>: ID da conta Offer18 do usuário.</td></tr><tr><td><code>offerId</code></td><td>string</td><td><strong>Obrigatório</strong>: ID da campanha.</td></tr><tr><td><code>coupon</code></td><td>string</td><td>O código de cupom pode ser usado aqui.</td></tr><tr><td><code>postbackType</code></td><td>string</td><td>Pode ser 'iframe' ou 'pixel'; o valor padrão é 'iframe'.</td></tr><tr><td><code>isGlobalPixel</code></td><td>boolean</td><td>O usuário pode configurar o pixel global definindo isso como true; o valor padrão é false.</td></tr><tr><td><code>allowMultiConversion</code></td><td>boolean</td><td>O usuário pode permitir MultiConversion definindo isso como true; o valor padrão é false.</td></tr><tr><td><code>conversionData</code></td><td>object</td><td>Este objeto contém os parâmetros que podem ser usados para obter valores da rede.</td></tr></tbody></table>

<mark style="color:purple;">conversionData</mark> **Objeto**

<table><thead><tr><th width="167">Parâmetro</th><th width="126">Tipo</th><th>Descrição</th></tr></thead><tbody><tr><td><code>event</code></td><td>string</td><td>Nome do evento (especifique o evento)</td></tr><tr><td><code>payout</code></td><td>string</td><td>Valor do pagamento (especifique o valor do pagamento)</td></tr><tr><td><code>sale</code></td><td>string</td><td>Valor da venda (especifique o valor da venda)</td></tr><tr><td><code>currency</code></td><td>string</td><td>Código da moeda</td></tr><tr><td><code>adv_sub1</code></td><td>string</td><td>Subparâmetro 1 do anunciante</td></tr><tr><td><code>adv_sub2</code></td><td>string</td><td>Subparâmetro 2 do anunciante</td></tr><tr><td><code>adv_sub3</code></td><td>string</td><td>Subparâmetro 3 do anunciante</td></tr><tr><td><code>adv_sub4</code></td><td>string</td><td>Subparâmetro 4 do anunciante</td></tr><tr><td><code>adv_sub5</code></td><td>string</td><td>Subparâmetro 5 do anunciante</td></tr></tbody></table>

**Exemplo de código**

```javascript
Offer18WebSDK.trackConversion({
        domain: '',
        accountId: '',
        offerId: '',
        coupon:'',
        postbackType: '', // 'iframe' or 'pixel'
        isGlobalPixel: false, // true or false
        allowMultiConversion: false, // true or false
        conversionData: {
            event: '', // Event Name (Please specify the event)
            payout: '', // Payout Amount (Please specify the payout amount)
            sale: '', // Sale Amount (Please specify the sale amount)
            currency: '',
            adv_sub1: '',
            adv_sub2: '',
            adv_sub3: '',
            adv_sub4: '',
            adv_sub5: '',
        }
    });
```

#### clearCookies()

Este método é utilizado para remover todos os cookies de primeira parte adicionados por este pacote.

#### activateDebugMode()

Este método é utilizado para ativar o logger. Os logs de cada ação realizada por este pacote ficarão visíveis no console das ferramentas de desenvolvedor do navegador. Você precisa adicionar este método imediatamente após inicializar o SDK

### Compatibilidade do SDK Node com frameworks e bibliotecas de frontend

Os seguintes **frameworks e bibliotecas de frontend** são compatíveis com SDKs Node e podem usá-los perfeitamente via 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 %}
