Integración con React

Sin duda, React es uno de los frameworks frontend más famosos hoy en día. En Metricalp, estamos felices de tener una biblioteca de integración oficial para React y NextJS. Si estás usando NextJS, consulta la documentación de integración de NextJS. Si estás usando React, estás en el lugar correcto. ¡Vamos a empezar!

Nuestra biblioteca de integración en NPM se llama @metricalp/react

Instalación

Puedes instalarlo así:

yarn add @metricalp/react

o

npm install @metricalp/react

Integración

En el nivel superior de tu aplicación en src/index.js | src/main.tsx(Vite) | App.js, envuelve tu aplicación con MetricalpReactProvider. Luego, proporciona tu tid (alias TrackerID) como prop al proveedor. Básicamente, eso es todo, Metricalp comenzará a recopilar todos los eventos de visita y cambio de ruta automáticamente. Pero puedes personalizar los comportamientos con props. Explicaremos todo.

Ejemplo (proyecto React creado con Vite)

En src/main.tsx importa la biblioteca import { MetricalpReactProvider } from '@metricalp/react';. Luego envuelve tu aplicación con <MetricalpReactProvider allowLocalhost tid="YOUR_TID">

NO OLVIDES reemplazar el prop tid con tu tid.

Añadimos allowLocalhost porque, de forma predeterminada, Metricalp no funciona en localhost para proteger los límites de tu cuota. Permitimos localhost con fines de prueba. Querrás eliminarlo después de probarlo una vez para ahorrar tu cuota. Para información detallada, consulta permitir localhost & excluirme docs.

Ejemplo de código

tsx

        import React from 'react';
        import ReactDOM from 'react-dom/client';
        import { MetricalpReactProvider } from '@metricalp/react';
        import './index.css';
        import { App } from './App.tsx';
        
        ReactDOM.createRoot(document.getElementById('root')!).render(
          <React.StrictMode>
            <MetricalpReactProvider allowLocalhost tid="YOUR_TID">
              <App />
            </MetricalpReactProvider>
          </React.StrictMode>
        );

USO

Si has integrado la biblioteca con tu aplicación, comenzará automáticamente a rastrear eventos screen_view. Metricalp escucha los cambios de window.history y crea un evento screen_view en cada cambio de ruta de forma predeterminada. Por lo tanto, si deseas rastrear solo vistas de pantalla, tu aplicación estará lista justo después de la integración. No necesitas hacer nada extra. Pero si deseas producir eventos personalizados o deshabilitar el rastreo automático de rutas y crear eventos screen_view manualmente, sigue esta sección.

Producir Eventos

Tienes dos opciones para producir eventos Metricalp con esta biblioteca. Un hook o una llamada de función directa.

Producción de eventos con Hook

tsx

        import { useMetricalp } from '@metricalp/react';

        export default function MyComponent() {
          // Llamar al hook para obtener la función de evento de metricalp
          const metricalpEvent = useMetricalp();
        
          return (
            <div>
              <button
                onClick={() => {
                  metricalpEvent({ type: 'click_test_button', custom_prop1: 'hook' });
                }}>
                Click me
              </button>
            </div>
          );
        }

Producción de eventos con llamada de función directa

A veces (fuera de los componentes) no puedes llamar a hooks en React. Entonces, puedes importar la función de activación de eventos directa de Metricalp.

tsx

        import { metricalpEvent } from "@metricalp/react";

        export default function MyComponent() {
        
          return (
            <div>
              <button
                onClick={() => {
                  metricalpEvent({ type: 'click_test_button', custom_prop1: 'direct' });
                }}
              >
                Click me
              </button>
            </div>
          );
        }

Depende totalmente de ti si prefieres el hook o la llamada de función directa en toda tu aplicación. Puedes decidir usar solo uno o ambos según el lugar de uso. En los ejemplos anteriores, producimos eventos personalizados con propiedades personalizadas. En tu panel de control de Metricalp puedes configurar alias de custom_prop, luego puedes usar directamente esa clave en los eventos. Como: metricalpEvent({ type: 'click_test_button', user_role: 'admin' }); aquí definimos user_role como alias de custom_prop1 en la Configuración del Tracker y ahora lo estamos produciendo directamente en los eventos.

Personalizar comportamientos con Props

tid

RequeridoTipo: stringValor predeterminado: -

Este es tu tid, también conocido como identificador de seguimiento. Puedes obtener información sobre cómo conseguirlo en Configuración del Tracker / Insertar & Compartir. Necesitas proporcionar este atributo para que Metricalp funcione.

allowLocalhost

OpcionalTipo: booleanValor predeterminado: undefined (por lo tanto, false)

Si estás integrando Metricalp en tu localhost para propósitos de prueba, puedes configurar este atributo a "true". De lo contrario, Metricalp no recopilará eventos en localhost para ahorrar tu cuota de uso. Consulta esta documentación para más información Si estás permitiendo hostnames específicos en la configuración de tu tracker, por favor, añade también localhost a los hostnames permitidos.

customScriptUrl

OpcionalTipo: stringValor predeterminado: "https://cdn.metricalp.com/event/metricalp.js"

Si has proxyado el archivo de script de eventos de Metricalp para evitar bloqueadores de anuncios, usa este atributo para proporcionar la URL del script proxyado. Consulta esta documentación para más información.

customEventEndpoint

OpcionalTipo: stringValor predeterminado: "https://event.metricalp.com"

Si has proxyado el endpoint de eventos de Metricalp para evitar bloqueadores de anuncios, usa este atributo para proporcionar el endpoint proxyado. Consulta esta documentación para más información.

disableAutoRouteCatch

OpcionalTipo: booleanValor predeterminado: undefined (por lo tanto, false)

Por defecto, Metricalp escucha los eventos de window.history para capturar cambios de ruta en aplicaciones JS. Puedes deshabilitarlo configurando este atributo a true, y entonces podrás rastrear rutas manualmente.

hashRouting

OpcionalTipo: booleanValor predeterminado: undefined (por lo tanto, false)

Si tu aplicación usa hash routing (example.com/#about, example.com/#homepage), puedes configurar este atributo a true. Entonces, Metricalp escuchará los cambios de ruta de hash.

allowCustomElmEvents

OpcionalTipo: booleanValor predeterminado: undefined (por lo tanto, false)

Metricalp soporta de manera predeterminada el seguimiento de eventos personalizados basados en atributos HTML. Como <button data-metricalp-event="follow click" data-metricalp-user="John">Click</button>, este clic del botón creará un evento personalizado con el nombre "follow click" y la propiedad personalizada "user" con el valor "John". Puedes desactivar esta función configurando este atributo a false. En la biblioteca está desactivado por defecto mientras que la recolección de eventos personalizados con API es más robusta, como se describe arriba. Consulta esta documentación para más información

initialSharedCustomProps

OpcionalTipo: objectValor predeterminado: undefined

Si deseas adjuntar algunas propiedades personalizadas automáticamente y por defecto para todos o algunos eventos específicos, puedes usar el atributo initialSharedCustomProps.

tsx
<MetricalpReactProvider
    allowLocalhost
    tid="mam123456"
    initialSharedCustomProps={{
      _global: { custom_prop3: "v1.0" },
      screen_view: { color: 'red', custom_prop2: 'Test' } 
  }}>

_global es una clave especial para adjuntar algunas propiedades a todos los eventos. Ten en cuenta que, si adjuntas una propiedad personalizada a través de un alias, ese alias debe estar definido para los eventos objetivo en la Configuración del Tracker; de lo contrario, será ignorado para ese evento. Puedes usar la sintaxis custom_prop1 para cualquier evento.

Cuando quieras actualizar sharedCustomProps después de la configuración inicial para un tipo de evento específico, puedes usar el método exportado `updateSharedCustomPropsForType` como: updateSharedCustomPropsForType('screen_view', { color: 'red' }). Además, si deseas restablecer todo el objeto sharedCustomProps a un nuevo objeto, puedes usar el método exportado `resetSharedCustomProps` como: resetSharedCustomProps({ _global: { custom_prop3: 'v1.7' }, screen_view: { color: 'blue' } }). Consulta esta documentación para más información.