• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

interação (API SPA)

Sintaxe

newrelic.interaction([JSON object $options])

Retorna um novo objeto de identificador que está vinculado à interação SPA atual ou uma nova interação, caso não exista uma.

Requisitos

  • A API .interaction() requer o agente Browser Pro+SPA (v963 ou superior).
  • Fornecer um objeto $options à API só é suportado nas versões v1.285.0 e superiores.
  • A opção waitForEnd é suportada apenas na v1.285.0 e superior.
  • A opção targetPageLoad é suportada apenas na v1.315.0 e superior.

Se você estiver instalando o agente do browser via npm e criando um agente personalizado com recursos selecionados, você deve habilitar o recurso spa ao criar a instância Agent. No array features, adicione o seguinte:

import { Agent } from '@newrelic/browser-agent/loaders/agent'
import { Spa } from '@newrelic/browser-agent/features/spa';
const options = {
info: { ... },
loader_config: { ... },
init: { ... },
features: [
... other features ...
Spa
]
}
new Agent(options)

Para obter mais informações, consulte a documentação de instalação do browser npm.

Descrição

A chamada de API interaction() de monitoramento de SPA permite controlar e personalizar as interações de SPA rastreadas pelo agente do browser. Use esta API para:

  • Crie manualmente interações personalizadas para padrões que o agente do browser não detecta automaticamente.
  • Modifique as interações existentes adicionando atributos personalizados, nomeando-as ou controlando quando são concluídas.

Como funciona

Quando você chama newrelic.interaction(), você obtém um handle (um objeto JavaScript) que referencia um evento BrowserInteraction. Este manipulador permite chamar métodos como .save(), .ignore(), .setName() e .setAttribute() para controlar a interação.

Comportamento da API por estado de interação

A API se comporta de maneira diferente dependendo do estado atual da interação:

Estado

Comportamento

No interaction in progress

Cria uma nova interação personalizada.

  • A interação personalizada é encerrada automaticamente quando a próxima navegação suave for concluída (seguindo as heurísticas padrão de SPA), a menos que você defina waitForEnd: true.
  • Use isso para rastrear ações do usuário que não acionam mudanças de rota, como abrir um modal ou expandir uma seção.

Interaction already in progress

Retorna um novo handle que referencia a interação atualmente ativa.

  • Você pode criar vários identificadores para a mesma interação. Isso é útil quando você deseja controlar diferentes aspectos de uma interação a partir de diferentes partes do seu código.
  • A interação existente continua — esta API não pode substituir ou sobrescrever uma interação que já está em andamento.
  • Funciona tanto para interações acionadas pelo usuário (como cliques) quanto para interações personalizadas acionadas por API.

Targeting the initial page load

Quando você usa a opção targetPageLoad: true, o handle sempre faz referência ao evento BrowserInteraction do carregamento inicial da página.

  • Esta é a única maneira de acessar e modificar a interação de carregamento inicial da página.
  • Antes dessa opção, o carregamento inicial da página não era acessível pela API.

Principais comportamentos

Comportamento

Descrição

Múltiplos handles são independentes

Cada chamada para newrelic.interaction() cria um objeto handle separado, mesmo quando referencia a mesma interação subjacente. Métodos chamados em um handle não afetam outros handles, mas todos eles modificam o mesmo evento BrowserInteraction.

Não é possível sobrescrever interações

Se um usuário clica em um botão (iniciando uma interação) e seu código então chama newrelic.interaction(), a API retorna um identificador para a interação de clique — ela não cria uma nova. O agente do browser prioriza as interações de usuários reais.

Identificadores ficam inativos

Assim que uma interação é concluída, quaisquer handles que a referenciam tornam-se inativos. Chamadas de método em handles inativos não têm efeito e não lançam erros.

Use waitForEnd para controle preciso

Por padrão, as interações se encerram com base em heurísticas de SPA (mudanças de rota, conclusão de AJAX, estabilização do DOM). Definir waitForEnd: true mantém a interação aberta até que você chame explicitamente .end() no handle.

Cuidado

Usar waitForEnd: true em conjunto com targetPageLoad: true manterá o evento BrowserInteraction de carregamento inicial da página aberto indefinidamente até que .end() seja chamado, alterando a definição padrão do evento BrowserInteraction de carregamento inicial da página. Este é um caso de uso avançado e deve ser usado com cautela.

Parâmetro

Parâmetro

Descrição

$options

Objeto JSON

Opcional: especifica opções que afetam o comportamento da interação.

  • waitForEnd - (v1.285.0+) O padrão é false. Para manter a interação aberta forçadamente até que o método .end seja chamado em seu handle, defina-o como true. Após uma interação ser marcada com isso, a ação não pode ser desfeita.
  • targetPageLoad - (v1.315.0+) O padrão é false. Se definido como true, o handle retornado é vinculado à interação de carregamento inicial da página em vez de criar ou direcionar para uma interação de navegação suave. Esta é a única maneira de definir como destino a interação initialPageLoad.

Valores de retorno

Este método retorna um objeto JS nativo que aponta para um eventoBrowserInteraction potencial. Cada vez que esse método é chamado para o mesmo BrowserInteraction enquanto ele ainda não terminou, um novo objeto é criado, mas ele ainda faz referência à mesma interação.

Exemplos

Os métodos da API de SPA podem ser aplicados à saída retornada de newrelic.interaction(). Você pode atribuir o valor retornado ou o handle a outra variável para uso posterior. Por exemplo:

let myInteraction = newrelic.interaction();
...
myInteraction.save();

Para obter uma lista de APIs de interação, consulte Rastrear aplicativos de página única.

Embora o identificador nomeado possa ser salvo e usado de fora de uma interação, observe que os métodos SPA não terão efeito após o término da interação.

A duração da interação também pode ser personalizada usando o seguinte método:

// Say an interaction is already open from a user click.
const userInteraction = newrelic.interaction({ waitForEnd: true }); // grabs the current interaction in-progress & keep it open
// URL changes & DOM is modified. Because of those condition being met, interaction will be saved but is kept open.
fetch('myurl.com/endpoint').then(() => userInteraction.end()) // associate this request to the interaction before completing this BrowserInteraction
const myCustomIxn = newrelic.interaction({ waitForEnd: true }) // create a new api-triggered interaction
// This interaction will be kept open indefinitely until `.end` is called, and no new interaction will start, custom or otherwise. AjaxRequest will continue to buffer under this interaction until it is closed.
Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.