A class for adding metadata to event properties.
new pathing.Parameter( label: string, key: string, value: any )
Configuration object for customizing tracking behavior.
pathing.config({
trackPageviews: boolean,
trackClicks: boolean,
trackForms: boolean,
respectDNT: boolean
})Tracks a purchase or conversion event.
pathing.send.purchase({
product: string | Parameter,
price: number | Parameter,
currency?: string | Parameter,
quantity?: number | Parameter,
category?: string | Parameter
}): Promise<void>Tracks media playback events (video/audio).
pathing.send.playback({
content: string | Parameter,
duration: number | Parameter,
progress: number | Parameter, // 0-1 ratio,
action?: 'play' | 'pause' | 'seek' | 'complete' | string | Parameter
}): Promise<void>Tracks any custom event type.
pathing.send.raw( type: string, data: Record<string, any> ): Promise<void>
Bind purchase tracking to an element's click event.
pathing.link.purchase(
element: HTMLElement,
data: Record<string, any>,
options?: { preventDefault?: boolean }
): HTMLElementBind playback tracking to a media element.
pathing.link.playback( element: HTMLMediaElement, data: Record<string, any> ): HTMLMediaElement
Bind any custom event to an element.
pathing.link.raw(
element: HTMLElement,
type: string,
data: Record<string, any>,
options?: { preventDefault?: boolean }
): HTMLElementUsing with React for automatic route tracking.
// components/PathingTracker.tsx
'use client';
import { useEffect } from 'react';
import { usePathname } from 'next/navigation';
export function PathingTracker() {
const pathname = usePathname();
useEffect(() => {
if (window.pathing && pathname) {
window.pathing.send.raw("pageview", {
path: pathname,
title: document.title,
isVirtualPageview: true
});
}
}, [pathname]);
return null;
}
// Add <PathingTracker /> to your layout.tsx