---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.1
alternate:
  - https://yandex.com/support/metrica/en/code/counter-spa-setup.md
  - https://yandex.com/support/metrica/es/code/counter-spa-setup.md
  - https://yandex.com/support/metrica/pt/code/counter-spa-setup.md
  - https://yandex.com/support/metrica/ru/code/counter-spa-setup.md
  - https://yandex.com/support/metrica/tr/code/counter-spa-setup.md
  - https://yandex.com/support/metrica/zh/code/counter-spa-setup.md
  - href: pt/code/counter-spa-setup.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
title: Instalação e configuração da tag para sites SPA
description: Como instalar e configurar uma tag para sites SPA.
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/support/metrica/pt/llms.txt


# Instalação e configuração da tag para sites SPA

## Inicialização da tag {#section_r5y_2rf_qfb}

Para usar uma tag Yandex Metrica em sites SPA, siga os seguintes passos:

1. [Crie e instale o código da tag no seu site](https://yandex.com/support/metrica/pt/quick-start.md), se ainda não estiver instalado. 
1. Ao inicializar a tag, defina o parâmetro `defer` como `true`. Isso é necessário para desabilitar o envio automático de dados sobre [visualizações](*просмотрах). Para registrar impressões de página, use a função `hit`, conforme descrito no ponto 3.
    Exemplo de inicialização da tag:
    
    ```
    ym(XXXXXXXX, 'init', {
        defer: true,
        clickmap:true,
        trackLinks:true,
        accurateTrackBounce:true
    })
    ```
    
1. Para garantir que o Yandex Metrica registre alterações importantes na página, analise a lógica do seu site e insira a função [hit](https://yandex.com/support/metrica/pt/objects/hit.md) (ocorrência) nas partes apropriadas do seu código, para que ela seja convocada cada vez que a página for alterada.
    Chame a função `hit`:
    
    ```
    ym(XXXXXXXX, 'hit', url[, options]);
    ```
    Parâmetros que podem ser informados na função `hit`:
    
    <!-- source: pt/_includes/objects/hit/id-hit/hit-params.md -->
    #|
    ||
    **Parâmetro**
    |
    **Valor padrão**
    |
    **Tipo**
    |
    **Descrição**
    ||
    ||
    `url`
    |
    —
    |
    String
    |
    A URL da página em que houve a visualização. Se a URL não for fornecida, será usado o valor de [`window.location.href`](https://yandex.com/support/metrica/pt/data/visit-params-example.md#goal)
    ||
    ||
    `opções`
    |
    —
    |
    Objeto
    |
    —
    ||
    ||
    campos de `opções`
    |
    >
    |
    >
    |
    >
    ||
    ||
    `options.callback`
    |
    —
    |
    Função
    |
    A função callback a ser convocada após o envio dos dados de visualização de página
    ||
    ||
    `options.ctx`
    |
    —
    |
    Objeto
    |
    Contexto acessado pela palavra-chave `this` na função callback
    ||
    ||
    `options.params`
    |
    —
    |
    Objeto
    |
    Parâmetros de sessão
    ||
    ||
    `options.referer`
    |
    —
    |
    String
    |
    A URL de onde o usuário carregou o conteúdo da página atual
    ||
    ||
    `options.title`
    |
    `document.title`
    |
    String
    |
    Título da página atual
    ||
    ||
    Campos para o objeto `options.params`:
    |
    >
    |
    >
    |
    >
    ||
    ||
    `order_price`
    |
    —
    |
    Duplo
    |
    [Receita por objetivo](https://yandex.com/support/metrica/pt/objects/hit.md#price). Você pode estipular o custo em alguma moeda ou em unidades convencionais.
    ||
    ||
    `moeda`
    |
    —
    |
    String
    |
    Use este campo caso queira informar o custo do objetivo em moeda. O Yandex Metrica reconhece códigos monetários [ISO 4217](https://www.six-group.com/en/products-services/financial-information/data-standards.html#scrollTo=currency-codes) de três letras.

    <!-- source: pt/_includes/ecommerce/data/id-about/currency-note.md -->
    Se uma moeda diferente for informada, serão enviados valores nulos em vez de moedas e quantias.
    <!-- endsource: pt/_includes/ecommerce/data/id-about/currency-note.md -->
    ||
    |#
    <!-- endsource: pt/_includes/objects/hit/id-hit/hit-params.md -->
    
    {% cut "Exemplo de chamada da função `hit`" %}
    
    ```javascript
    ym(XXXXXXXX, 'init', {});
    //...
    ym(XXXXXXXX, 'hit', '#contacts', {params:{
        title: 'Informações de contato',
        referer: 'http://exemplo.com.br/#main'
    }});
    ```
    
    {% endcut %}
    

## Envio de conversões {#section_bpg_5dk_yfb}

Para rastrear eventos do site que não alteram a URL da página, use a função `reachGoal`:
```
ym(XXXXXXXX, 'reachGoal', 'TARGET_NAME);
```

[Exemplos de definição de objetivos no snippet de código](https://yandex.com/support/metrica/pt/objects/reachgoal.md#reach_goal_examples).

## Transmissão de parâmetros de sessão e de usuário {#section_ypx_lsf_qfb}


{% list tabs %}

- Parâmetros de sessão

  
  ```
  ym(XXXXXXXX, 'params', {param1: 'param_value1'})
  ```
  

- Parâmetros de usuário

  
  ```
  ym(XXXXXXXX, 'userParams', {param1: 'param_value1'})
  ```

{% endlist %}


## Transmissão de dados de E-commerce {#section_nsk_vtf_qfb}

Para transmitir dados, [habilite o e-commerce](https://yandex.com/support/metrica/pt/ecommerce/about.md) no Yandex Metrica.

Para coletar dados de E-commerce corretamente, lembre-se de invocar a função `hit` uma vez, quando o usuário carregar uma página nova.

{% cut "Exemplo de envio de dados de E-commerce" %}


```
dataLayer.push({
    "ecommerce": {
        "purchase": {
            "actionField": {
                "id": "TRX987"
            },
            "products": [
                {
                    "id": "25341",
                    "name": "capuz Yandex (masc)",
                    "price": 1345,26,
                    "brand": "Yandex",
                    "category": "Roupa/Roupa masculina/Moletons e capuz",
                    "variant": "Laranja"
                },
                {
                    "id": "25314",
                    "name": "Capuz Yandex (fem)", 
                   "price": 1543,62,
                    "brand": "Yandex",
                    "category": "Roupa/Roupa feminina/Moletons e capuz",
                    "variant": "Branca",
                    "quantity": 3
                }
            ]
        }
   }
});
```


{% endcut %}

## Habilitação de Reprise de Sessão, mapa de cliques, mapa de links e Análise de Formulários {#section_bg3_xtf_qfb}

Você pode [conectar a Reprise de Sessão](https://yandex.com/support/metrica/pt/webvisor/info.md), [mapas de cliques](https://yandex.com/support/metrica/pt/behavior/click-map.md) e [mapas de links](https://yandex.com/support/metrica/pt/behavior/link-map.md) a um site SPA. O mapa de rolagem, a análise de formulários e a Reprise de Sessão 1.0 não são compatíveis.

## Desabilitação do Yandex Metrica em SPA {#destruct}

Para desabilitar o Yandex Metrica, use o método `.destruct()` na instância da tag. Este método funciona apenas na [versão nova](https://yandex.com/support/metrica/pt/general/tag-info.md) do código da tag Yandex Metrica.

- Para tags inicializadas através do construtor `Ya.Metrika2`:
    
    ```    
    // Inicialização da tag
    const counter = new Ya.Metrika2(counterId);
    
    //  Desinicialização da tag
    counter.destruct()    
    ```
    
- Se a inicialização ocorrer com configurações:
    
    ```    
    // Inicialização da tag
    const counter = new Ya.Metrika2({
      id: counterId,
      trackLinks: true
    });

    // Desinicialização da tag
    counter.destruct()    
    ```
    

- Para tags inicializadas através do método `ym`:
    
    ```
    // Inicialização da tag
    ym(XXXXXXXX, 'init', {});
    
    // Desinicialização da tag
    ym(XXXXXXXX, 'destruct')
    ```
    
Use o método `destruct` apenas para interromper o Yandex Metrica.

<!-- source: pt/_includes/buttons/chat-button.md -->
[Fale conosco](https://yandex.com/chat/#/user/036e6a02-3620-9cdc-4c5e-a34667a7379e?utm_source=spravka){.button}

<!-- source: pt/_includes/styles/href-to-button.md -->

<!-- endsource: pt/_includes/styles/href-to-button.md -->
<!-- endsource: pt/_includes/buttons/chat-button.md -->

<!-- source: pt/_includes/code/texing-button.md -->
<div class="cut-button">

{% cut "Escrever um e-mail" %}

<!-- source: pt/_includes/popup/id-qanda/check1.md -->
Caso não tenha conseguido [checar a tag de forma independente](https://yandex.com/support/metrica/pt/general/check-counter.md), siga as recomendações abaixo.
<!-- endsource: pt/_includes/popup/id-qanda/check1.md -->

{% list tabs radio %}

- Os dados não estão sendo enviados para o console

  {% include [qanda-check2-2](../_includes/popup/id-qanda/check2-2.md) %}

  {% cut "As recomendações não ajudaram" %}


  <div style="padding: 15px;
         margin: 10px 0;
         background: #FFFFFF;
         border-radius: 10px;
         border: 1px solid var(--g-color-line-generic);">
    <iframe style="background: #FFFFFF;"
            height="700"
            width="100%"
            frameborder="0"
            src="https://forms.yandex.com/surveys/1706/?&theme=Dannye v konsoli ne otpravlyayutsya&iframe=1&lang=en">
    </iframe>
  </div>

  {% endcut %}

- Há dados no console, mas os relatórios não estão aparecendo

  <!-- source: pt/_includes/popup/id-qanda/check2-3.md -->
  Isso significa que as informações estão sendo transmitidas para o Yandex Metrica. No entanto, os dados podem não estar sendo exibidos nos relatórios por algum dos seguintes motivos:
  <!-- endsource: pt/_includes/popup/id-qanda/check2-3.md -->

  <!-- source: pt/_includes/popup/id-qanda/check2-4.md -->
  - Os dados são enviados com um número diferente para uma tag.
  - A aba **Filtros** das configurações da tag está definida com filtros excessivamente restritivos. Remova filtros desnecessários.
  - A aba **Filtros** das configurações da tag está com o filtro **Não contabilizar minhas sessões** habilitado. Isso significa que a tag não registra as suas próprias sessões. Tente acessar o site com o navegador no modo "anônimo".
  <!-- endsource: pt/_includes/popup/id-qanda/check2-4.md --> 

  {% cut "As recomendações não ajudaram" %}


  <div style="padding: 15px;
           margin: 10px 0;
           background: #FFFFFF;
           border-radius: 10px;
           border: 1px solid var(--g-color-line-generic);">
    <iframe style="background: #FFFFFF;"
              height="700"
              width="100%"
              frameborder="0"
              src="https://forms.yandex.com/surveys/1706/?&theme=Dannye v konsoli est, no otchety ne otobrazhayutsya&iframe=1&lang=en">
    </iframe>
  </div>

  {% endcut %}

{% endlist %}

{% endcut %}

</div>

<!-- source: pt/_includes/styles/cut-button.md -->

<!-- endsource: pt/_includes/styles/cut-button.md -->
<!-- endsource: pt/_includes/code/texing-button.md -->

<!-- source: pt/_includes/footer-links.md -->
- - -

<div class="borderless-table">

#|
||
Links úteis

- [Tag de demonstração](https://metrica.yandex.com/r/dashboard?)
- [Adicionar uma tag](https://metrica.yandex.com/add/)
- [Configuração gratuita de tag](https://yandex.com/promo/freeservice/metrica?utm_source=help_metrica_en&utm_medium=cpc&utm_campaign=1)
- [API do Yandex Metrica](https://tech.yandex.com/metrika/)
- [Sugerir uma idea](https://yandex.com/support/metrica/troubleshooting/idea.html)
- [Debater no Telegram](https://t.me/yandexmetrika)
|
Treinamento online

- [Obter um certificado do Yandex Metrica](https://yandex.ru/adv/expert/exam/metrika/?utm_source=metrika_help&utm_medium=web&utm_campaign=static&utm_content=useful_links)


- [Fazer um curso](https://yandex.com/adv/edu/online/metrika?utm_source=metrika_help&utm_medium=web&utm_campaign=static&utm_content=useful_links)

||
|#

</div>

<!-- source: pt/_includes/styles/table-style.md -->

<!-- endsource: pt/_includes/styles/table-style.md -->
<!-- endsource: pt/_includes/footer-links.md -->

<!-- source: pt/_includes/styles/cut-button.md -->

<!-- endsource: pt/_includes/styles/cut-button.md -->

<!-- source: pt/_includes/styles/href-to-button.md -->

<!-- endsource: pt/_includes/styles/href-to-button.md -->

[*просмотрах]: Carregamento de uma das páginas do site quando o usuário a acessa. Visualizações de página também incluem recarregamentos de página, atualizações de sites AJAX e envio de dados usando o [método hit](https://yandex.com/support/metrica/pt/objects/hit.md).
{% included (../_includes/popup/id-qanda/check2-2.md) %}
   Isso pode acontecer pelos seguintes motivos:
   - A tag está instalada de maneira incorreta. Por exemplo, o CMS modificou o código da tag. Reinstale a tag ou entre em contato com o serviço de suporte do seu CMS.
   - Scripts inoperantes estão impedindo que a tag Yandex Metrica funcione no site. Isso pode ser verificado no console do navegador.


{% endincluded %}