# Página de Pré-Landing

A página pré-landing é como uma página de trânsito que ajuda os usuários a chegarem a páginas de destino específicas conforme suas necessidades. Ela atua como um link entre as fontes de tráfego e a página de destino da oferta. Páginas pré-landing para anúncios push e nativos são muito úteis para aumentar conversões.

### Configuração (Página Pré-landing)

#### 1. **Ofertas » Oferta-Aprovada**

#### 2. Selecionar **Oferta » Geral**&#x20;

#### 3. Selecione "**Pré-landing**" de "**Tipo**" no menu suspenso e adicione o "**URL da Pré-landing**" em "**Página de Destino**" Campo.

<pre class="language-markup" data-title="Token para anexar na URL" data-overflow="wrap"><code class="lang-markup"><strong>landing_page={pre_landing} (Obrigatório)
</strong>
Anexe tokens e parâmetros para valores de dados conforme suas necessidades. Você pode escolher e adicionar os pares chave-valor a partir das opções abaixo.

 1. aff_click_id={aff_click_id} 
 2. sub_aff_id={sub_aff_id}
 3. aff_sub1={aff_sub1}
 4. aff_sub2={aff_sub2}
 5. aff_sub3={aff_sub3}
 6. aff_sub4={aff_sub4}
 7. aff_sub5={aff_sub5}
 8. googleaid={googleaid}
 9. deviceid={deviceid}
 10. iosidfa={iosidfa}
 11. source={source}
</code></pre>

{% code title="Exemplo de Página de Destino" overflow="wrap" %}

```
https://example-pre-landing.com?landing_page={pre_landing}&aff_click_id={aff_click_id}&sub_aff_id={sub_aff_id}&aff_sub1={aff_sub1}&source={source}
```

{% endcode %}

<figure><img src="https://4294454144-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F41f2EboJipeUA6flsLGK%2Fuploads%2F8RTxnp4hJlURoyFTKpwd%2Fimage.png?alt=media&#x26;token=002793c9-eb48-47a4-abdc-b04a9b519667" alt=""><figcaption></figcaption></figure>

#### 4. Anexe tokens do Offer18 à URL da Oferta para passar os valores necessários ao anunciante.

{% code title="Tokens de valor do afiliado" overflow="wrap" %}

```
{aff_click_id}, {sub_aff_id}, {aff_sub1}, {aff_sub2}, {aff_sub3}, {aff_sub4}, {aff_sub5}, {googleaid}, {deviceid}, {iosidfa}, {source}
```

{% endcode %}

#### 5. **Enviar para salvar alterações**

***

### URL de Rastreamento do Afiliado (Página Pré-landing)

1. Login no Painel do Afiliado
2. **Ofertas » Minhas Ofertas (aprovadas) » Selecionar Oferta**
3. Selecione o **Página Pré-landing** no menu suspenso

<figure><img src="https://4294454144-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F41f2EboJipeUA6flsLGK%2Fuploads%2FHh9hqjBM4A5SLl4leOVt%2Fimage.png?alt=media&#x26;token=ece25fb1-a814-46c0-a37a-26839190f2d7" alt=""><figcaption></figcaption></figure>

4\. **Obter URL de** **Rastreamento do Afiliado**&#x20;

***

### Criar página web (Página Pré-landing)

Crie uma página web usando o script abaixo que tenha a mesma URL usada na Configuração

```javascript
  <script>
    function base64_decode(r) { if ("function" == typeof this.window.atob) return atob(r); var n, t, e, i, o, f, a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", d = 0, h = 0, c = []; if (!r) return r; r += ""; do { n = (f = a.indexOf(r.charAt(d++)) << 18 | a.indexOf(r.charAt(d++)) << 12 | (i = a.indexOf(r.charAt(d++))) << 6 | (o = a.indexOf(r.charAt(d++)))) >> 16 & 255, t = f >> 8 & 255, e = 255 & f, c[h++] = 64 == i ? String.fromCharCode(n) : 64 == o ? String.fromCharCode(n, t) : String.fromCharCode(n, t, e) } while (d < r.length); return c.join("") }
    function getUrlVars() { var vars = {}; var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) { vars[key] = value; }); return vars; }
    function getUrlParam(parameter) { var urlparameter = ''; if (window.location.href.indexOf(parameter) > -1) { urlparameter = getUrlVars()[parameter]; } return base64_decode(urlparameter); }
    function getQueryParam(param) { const urlParams = new URLSearchParams(window.location.search); return urlParams.get(param) ? urlParams.get(param) : ''; }
    function createQueryString(mapping) { let queryString = Object.keys(mapping).map(key => { let value = getQueryParam(key); return value ? `${mapping[key]}=${value}` : ''; }).filter(param => param !== '').join('&'); return queryString; }
    var landing_page = getUrlParam('landing_page');
    var aurl = document.getElementsByTagName('a'), ahf = aurl.length;
    var parameterMapping = { 'aff_click_id': 'aff_click_id', 'sub_aff_id': 'sub_aff_id', 'aff_sub1': 'aff_sub1', 'aff_sub2': 'aff_sub2', 'aff_sub3': 'aff_sub3', 'aff_sub4': 'aff_sub4', 'aff_sub5': 'aff_sub5', 'googleaid': 'googleaid', 'deviceid': 'deviceid', 'iosidfa': 'iosidfa', 'source': 'source' };
    var parameterString = '';
    if (Object.keys(parameterMapping).length > 0) { parameterString = createQueryString(parameterMapping); }
    while (ahf--) { if (parameterString) { aurl[ahf].setAttribute('href', `${landing_page}&${parameterString}`); } else { aurl[ahf].setAttribute('href', landing_page); } aurl[ahf].setAttribute('target', '_blank'); }
  </script>
```

***

### **Testando Página Pré-landing**

Use o trecho de código abaixo para testar o script da Pré-landing

```html
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
  <a href=""> Test Link 1</a>
  <a href=""> Test Link 2</a>
  <a href=""> Test Link 3</a>
</p>
  <script>
    function base64_decode(r) { if ("function" == typeof this.window.atob) return atob(r); var n, t, e, i, o, f, a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", d = 0, h = 0, c = []; if (!r) return r; r += ""; do { n = (f = a.indexOf(r.charAt(d++)) << 18 | a.indexOf(r.charAt(d++)) << 12 | (i = a.indexOf(r.charAt(d++))) << 6 | (o = a.indexOf(r.charAt(d++)))) >> 16 & 255, t = f >> 8 & 255, e = 255 & f, c[h++] = 64 == i ? String.fromCharCode(n) : 64 == o ? String.fromCharCode(n, t) : String.fromCharCode(n, t, e) } while (d < r.length); return c.join("") }
    function getUrlVars() { var vars = {}; var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) { vars[key] = value; }); return vars; }
    function getUrlParam(parameter) { var urlparameter = ''; if (window.location.href.indexOf(parameter) > -1) { urlparameter = getUrlVars()[parameter]; } return base64_decode(urlparameter); }
    function getQueryParam(param) { const urlParams = new URLSearchParams(window.location.search); return urlParams.get(param) ? urlParams.get(param) : ''; }
    function createQueryString(mapping) { let queryString = Object.keys(mapping).map(key => { let value = getQueryParam(key); return value ? `${mapping[key]}=${value}` : ''; }).filter(param => param !== '').join('&'); return queryString; }
    var landing_page = getUrlParam('landing_page');
    var aurl = document.getElementsByTagName('a'), ahf = aurl.length;
    var parameterMapping = { 'aff_click_id': 'aff_click_id', 'sub_aff_id': 'sub_aff_id', 'aff_sub1': 'aff_sub1', 'aff_sub2': 'aff_sub2', 'aff_sub3': 'aff_sub3', 'aff_sub4': 'aff_sub4', 'aff_sub5': 'aff_sub5', 'googleaid': 'googleaid', 'deviceid': 'deviceid', 'iosidfa': 'iosidfa', 'source': 'source' };
    var parameterString = '';
    if (Object.keys(parameterMapping).length > 0) { parameterString = createQueryString(parameterMapping); }
    while (ahf--) { if (parameterString) { aurl[ahf].setAttribute('href', `${landing_page}&${parameterString}`); } else { aurl[ahf].setAttribute('href', landing_page); } aurl[ahf].setAttribute('target', '_blank'); }
  </script>
  </body>
</html> 
```
