# SDK Node

### **Começar**

Para começar a rastrear usando o Node SDK da Offer18, você precisará integrar o SDK ao seu aplicativo 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
// Inicializar Conversão
Offer18WebSDK.initializeUrlParam('YOUR-CLICK-ID-PARAMETER');

// Registrar Clique
Offer18WebSDK.trackClick(options);

// Registrar Impressão
Offer18WebSDK.trackImpression(options);

// Registrar Conversão
Offer18WebSDK.trackConversion(options);

// Redefinir Cookies
Offer18WebSDK.clearCookies();

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

***

### Fluxo de conversão

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

<mark style="color:roxo;">Posicionamento : Carregamento da página ou após o componente montar</mark>

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

então

<mark style="color:roxo;">Posicionamento : Página de agradecimento/Página de sucesso do pedido</mark>

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

{% hint style="info" %}
Saiba mais sobre **YOUR-CLICK-ID-PARAMETER** **&** **opções** 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 Node SDK, incluindo 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:roxo;">Posicionamento : Carregamento da página ou após o componente montar</mark>

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

então

<mark style="color:roxo;">Posicionamento: Pode ser colocado em todas as páginas (no carregamento da página ou após o componente montar)</mark>

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

então

<mark style="color:roxo;">Posicionamento : Página de agradecimento/Página de sucesso do pedido</mark>

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

{% hint style="info" %}
Saiba mais sobre **opções** 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 o componente montar.&#x20;

{% hint style="info" %}
Substitua **YOUR-CLICK-ID-PARAMETER** pelo nome da chave de 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**:
  * `opções` (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>Um array 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 parâmetros em que o usuário está obtendo valores de 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**:
  * `opções` (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>Um array 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 parâmetros em que o usuário está obtendo valores de 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**:
  * `opções` (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>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 pixel global definindo isto 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 isto 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:roxo;">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>evento</code></td><td>string</td><td>Nome do evento (Por favor, especifique o evento)</td></tr><tr><td><code>payout</code></td><td>string</td><td>Valor do pagamento (Por favor, especifique o valor do pagamento)</td></tr><tr><td><code>sale</code></td><td>string</td><td>Valor da venda (Por favor, 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>Parâmetro sub do anunciante 1</td></tr><tr><td><code>adv_sub2</code></td><td>string</td><td>Parâmetro sub do anunciante 2</td></tr><tr><td><code>adv_sub3</code></td><td>string</td><td>Parâmetro sub do anunciante 3</td></tr><tr><td><code>adv_sub4</code></td><td>string</td><td>Parâmetro sub do anunciante 4</td></tr><tr><td><code>adv_sub5</code></td><td>string</td><td>Parâmetro sub do anunciante 5</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 habilitar o logger. Os logs de toda ação executada 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 Node SDK com Frameworks e Bibliotecas Frontend

As seguintes **frameworks e bibliotecas** são compatíveis com os Node SDKs 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 %}


---

# 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/pt/rede/sdk/sdk-node.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.
