Como aprender React
Conteúdo do artigo...
User tracking abstraction for React/Nextjs with GTM
npm install ninetwo-user-trackingPacote de abstração de Analytics para React e Next.js.
Facilita a implementação do Google Tag Manager (GTM) utilizando Delegação de Eventos para cliques (via atributos HTML) e Intersection Observer para visualizações e confirmação de leitura.
- 💉 RD Station: Implementação de eventos para o botão flutuante do whatsapp.
---
- 🚀 Zero Boilerplate: Rastreamento declarativo via atributos data-nt-ut-*.
- 🖱️ Click Tracking Automático: Listener global que captura cliques.
- 👁️ View Tracking: Dispara evento ao visualizar elemento.
- 📖 Read Confirmation: Dispara evento secundário automaticamente após 5s de visualização contínua.
- 💉 GTM Injection: Injeção segura do script do GTM.
- ⚡ Next.js Ready: Compatível com App Router (Providers Pattern).
---
npm install ninetwo-user-tracking
---
``tsx
'use client';
import { TrackingProvider } from 'ninetwo_user_tracking';
export function Providers({ children }: { children: React.ReactNode }) {
return (
debug={process.env.NODE_ENV === 'development'}
>
{children}
);
}
`
`tsx
import { Providers } from "./providers";
import "./globals.css";
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
`
---
Adicione os atributos data-nt-ut-* ao elemento interativo.
`tsx
className="btn-primary"
data-nt-ut-event="add_to_cart"
data-nt-ut-category="ecommerce"
data-nt-ut-label="tenis_nike_v2"
data-nt-ut-type="click" // Opcional (default: click)
>
Comprar Agora
`
---
Use o componente para monitorar impressões.read_confirmation
Novidade: Se o usuário permanecer com o elemento visível por 5 segundos (padrão), um segundo evento será disparado.
`tsx
import { TrackView } from 'ninetwo_user_tracking';
export default function BlogPost() { Conteúdo do artigo...
return (
category="blog"
label="como_aprender_react"
threshold={0.5} // 50% visível para disparar
readTime={5000} // (Opcional) Tempo em ms para confirmar leitura
>
Como aprender React
);
}
`
Neste exemplo acima, dois eventos serão enviados ao DataLayer:
1. Assim que aparecer:
* event: "article_view""view"
* type:
2. Após 5 segundos visível:
* event: "article_view""read_confirmation"
* type:
---
Aqui está a documentação exclusiva para o rastreamento de Submit de Formulários, pronta para copiar e colar.
---
O pacote detecta automaticamente o envio de formulários através de Event Delegation.
Isso significa que você deve adicionar os atributos de rastreamento diretamente na tag , e não no botão de enviar.
O evento será disparado tanto ao clicar no botão type="submit" quanto ao pressionar Enter dentro de um input.
`tsx
action="/api/newsletter"
method="POST"
// Atributos de Tracking na tag FORM (Obrigatório)
data-nt-ut-event="newsletter_signup"
data-nt-ut-category="leads"
data-nt-ut-label="footer_form"
// data-nt-ut-type="submit" -> (Opcional: o padrão já é 'submit' para formulários)
>
type="email"
name="email"
placeholder="Seu melhor e-mail"
className="border p-2"
/>
`
Quando o usuário envia este formulário, o seguinte objeto é enviado para o GTM:
`javascript
{
event: "newsletter_signup", // Valor de data-nt-ut-event
event_category: "leads", // Valor de data-nt-ut-category
event_label: "footer_form", // Valor de data-nt-ut-label
event_type: "submit", // Automático para tags
`
---
O pacote envia os dados para window.dataLayer.
`javascript
{
event: "article_view",
event_category: "blog",
event_label: "como_aprender_react",
event_type: "read_confirmation",
interaction_time: "..."
}
`
1. Variáveis: Crie variáveis de DataLayer para event_category, event_label e event_type..*
2. Trigger: Use (Regex) em Evento Personalizado para capturar tudo.type
3. Tag GA4: Mapeie os parâmetros. No GA4, você poderá filtrar eventos onde é igual a read_confirmation para medir engajamento real.
---
ISC © NineTwo
`
``