API Reference

Core Objects

Parameter

A class for adding metadata to event properties.

new pathing.Parameter(
  label: string, 
  key: string, 
  value: any
)

Config

Configuration object for customizing tracking behavior.

pathing.config({
  trackPageviews: boolean,
  trackClicks: boolean,
  trackForms: boolean,
  respectDNT: boolean
})

Events API

send.purchase

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>

send.playback

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>

send.raw

Tracks any custom event type.

pathing.send.raw(
  type: string, 
  data: Record<string, any>
): Promise<void>

Element Binding API

link.purchase

Bind purchase tracking to an element's click event.

pathing.link.purchase(
  element: HTMLElement,
  data: Record<string, any>,
  options?: { preventDefault?: boolean }
): HTMLElement

link.playback

Bind playback tracking to a media element.

pathing.link.playback(
  element: HTMLMediaElement,
  data: Record<string, any>
): HTMLMediaElement

link.raw

Bind any custom event to an element.

pathing.link.raw(
  element: HTMLElement,
  type: string,
  data: Record<string, any>,
  options?: { preventDefault?: boolean }
): HTMLElement

Framework Integration

React

Using 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