Integrazione con React

Senza dubbio, React è uno dei framework frontend più famosi oggi. Come Metricalp, siamo felici di avere una libreria di integrazione ufficiale per React e NextJS. Se stai usando NextJS, consulta la documentazione di integrazione di NextJS. Se stai usando React, sei nel posto giusto. Iniziamo!

La nostra libreria di integrazione su NPM si chiama @metricalp/react

Installazione

Puoi installarlo come:

yarn add @metricalp/react

oppure

npm install @metricalp/react

Integrazione

Nel livello superiore della tua app in src/index.js | src/main.tsx(Vite) | App.js, avvolgi la tua app con MetricalpReactProvider. Quindi fornisci il tuo tid (alias TrackerID) come prop al provider. In pratica è tutto, Metricalp inizierà a raccogliere tutti gli eventi di visita e di cambio di rotta automaticamente. Ma puoi personalizzare i comportamenti con i props. Spiegheremo tutto.

Esempio (progetto React avviato con Vite)

In src/main.tsx importa la libreria import { MetricalpReactProvider } from '@metricalp/react';. Poi avvolgi la tua app con <MetricalpReactProvider allowLocalhost tid="YOUR_TID">

NON DIMENTICARE di sostituire il prop tid con il tuo tid.

Abbiamo aggiunto allowLocalhost perché, di default, Metricalp non funziona su localhost per proteggere i limiti della tua quota. Abbiamo permesso localhost per scopi di test. Vorrai rimuoverlo dopo aver testato una volta per risparmiare la tua quota. Per maggiori informazioni consulta permetti localhost & escludimi docs.

Esempio di codice

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

Se hai integrato la libreria con la tua app, inizierà automaticamente a tracciare gli eventi screen_view. Metricalp ascolta i cambiamenti di window.history e crea un evento screen_view ad ogni cambio di percorso di default. Quindi, se vuoi tracciare solo le viste delle schermate, la tua app è pronta subito dopo l'integrazione. Non devi fare nient'altro. Ma se vuoi produrre eventi personalizzati o disabilitare il tracciamento automatico delle rotte e creare manualmente eventi screen_view, segui questa sezione.

Produzione di Eventi

Hai due opzioni per produrre eventi Metricalp con questa libreria: un hook o una chiamata diretta di funzione.

Produzione di eventi con Hook

tsx

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

        export default function MyComponent() {
          // Chiama l'hook per ottenere la funzione dell'evento metricalp
          const metricalpEvent = useMetricalp();
        
          return (
            <div>
              <button
                onClick={() => {
                  metricalpEvent({ type: 'click_test_button', custom_prop1: 'hook' });
                }}>
                Click me
              </button>
            </div>
          );
        }

Produzione di eventi con chiamata diretta di funzione

A volte (fuori dai componenti) non puoi chiamare gli hook in React. Puoi quindi importare la funzione di trigger degli eventi diretta da 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>
          );
        }

È totalmente a tua discrezione preferire l'uso del hook o della chiamata diretta di funzione in tutta la tua app. Puoi decidere di usarne solo uno o entrambi a seconda del luogo di utilizzo. Negli esempi sopra produciamo eventi personalizzati con proprietà personalizzate. Nel tuo dashboard di Metricalp puoi impostare alias per custom_prop e quindi puoi usare direttamente quella chiave negli eventi. Come: metricalpEvent({ type: 'click_test_button', user_role: 'admin' }); qui abbiamo definito user_role come alias di custom_prop1 nelle Impostazioni del Tracker e ora lo stiamo producendo direttamente negli eventi.

Personalizzare i comportamenti con i Props

tid

RichiestoTipo: stringValore predefinito: -

Questo è il tuo tid, anche noto come ID tracker. Puoi ottenere informazioni su come ottenerlo in Impostazioni del Tracker / Incorpora & Condividi. Devi fornire questo attributo affinché Metricalp funzioni.

allowLocalhost

OpzionaleTipo: booleanValore predefinito: undefined (quindi false)

Se stai integrando Metricalp sul tuo localhost per scopi di test, puoi impostare questo attributo su "true". Altrimenti, Metricalp non raccoglierà eventi su localhost per risparmiare la tua quota di utilizzo. Consulta questa documentazione per maggiori dettagli Se stai consentendo hostnames specifici nelle impostazioni del tracker, aggiungi anche localhost agli hostnames consentiti.

customScriptUrl

OpzionaleTipo: stringValore predefinito: "https://cdn.metricalp.com/event/metricalp.js"

Se hai proxyato il file del script degli eventi di Metricalp per prevenire i blocchi degli annunci, usa questo attributo per fornire l'URL del script proxyato. Consulta questa documentazione per maggiori dettagli.

customEventEndpoint

OpzionaleTipo: stringValore predefinito: "https://event.metricalp.com"

Se hai proxyato l'endpoint degli eventi di Metricalp per prevenire i blocchi degli annunci, usa questo attributo per fornire l'endpoint proxyato. Consulta questa documentazione per maggiori dettagli.

disableAutoRouteCatch

OpzionaleTipo: booleanValore predefinito: undefined (quindi false)

Di default, Metricalp ascolta gli eventi window.history per catturare i cambi di rotta nelle applicazioni JS. Puoi disabilitarlo impostando questo attributo su true, quindi puoi tracciare le rotte manualmente.

hashRouting

OpzionaleTipo: booleanValore predefinito: undefined (quindi false)

Se la tua applicazione utilizza il routing hash (example.com/#about, example.com/#homepage), puoi impostare questo attributo su true. Metricalp ascolterà quindi i cambi di rotta hash.

allowCustomElmEvents

OpzionaleTipo: booleanValore predefinito: undefined (quindi false)

Metricalp supporta di default il tracciamento degli eventi personalizzati basato su attributi HTML. Come <button data-metricalp-event="follow click" data-metricalp-user="John">Click</button>, questo clic del pulsante creerà un evento personalizzato con il nome "follow click" e la proprietà personalizzata "user" con il valore "John". Puoi disattivare questa funzione impostando questo attributo su false. Nella libreria è disattivato di default mentre la raccolta di eventi personalizzati tramite API è più robusta, come descritto sopra. Consulta questa documentazione per maggiori dettagli

initialSharedCustomProps

OpzionaleTipo: objectValore predefinito: undefined

Se desideri allegare automaticamente alcune proprietà personalizzate per tutti o alcuni eventi specifici, puoi utilizzare il prop initialSharedCustomProps.

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

_global è una chiave speciale per allegare alcune proprietà a tutti gli eventi. Tieni presente che, se alleghi una proprietà personalizzata tramite alias, quell'alias deve essere definito per gli eventi di destinazione nelle Impostazioni del Tracker; in caso contrario, verrà ignorato per quell'evento. Puoi sempre usare la sintassi custom_prop1 per qualsiasi evento.

Quando vuoi aggiornare sharedCustomProps dopo l'installazione iniziale per un tipo di evento specifico, puoi utilizzare il metodo esportato `updateSharedCustomPropsForType` come: updateSharedCustomPropsForType('screen_view', { color: 'red' }). Inoltre, se vuoi resettare l'intero oggetto sharedCustomProps a un nuovo oggetto, puoi usare il metodo esportato `resetSharedCustomProps` come: resetSharedCustomProps({ _global: { custom_prop3: 'v1.7' }, screen_view: { color: 'blue' } }). Consulta questa documentazione per maggiori dettagli.