Skip to main content
The Funnel report visualises how users move through a sequence of events — from first visit to final conversion. It works with any events you’re already tracking; no extra configuration is needed beyond making sure each step fires as a separate event.

How it works

Hardal counts the number of sessions that reached each step in order. A session must fire the events in sequence to be counted at each step. Drop-off between steps is calculated automatically. The default funnel for an e-commerce signal is:
page_view → view_item → add_to_cart → begin_checkout → purchase

What each step needs

The funnel itself only requires that each event is tracked. For the best data, add context to your key events:
// Step 1 — auto-tracked by Hardal on every page load
hardal.track("page_view");

// Step 2 — user views a product
hardal.track("view_item", {
  currency: "USD",
  value: 99.99,
  items: [{ item_id: "SKU-001", item_name: "Product Name", price: 99.99, quantity: 1 }]
});

// Step 3 — user adds to cart
hardal.track("add_to_cart", {
  currency: "USD",
  value: 99.99,
  items: [{ item_id: "SKU-001", item_name: "Product Name", price: 99.99, quantity: 1 }]
});

// Step 4 — user begins checkout
hardal.track("begin_checkout", {
  currency: "USD",
  value: 99.99,
  items: [{ item_id: "SKU-001", item_name: "Product Name", price: 99.99, quantity: 1 }]
});

// Step 5 — purchase complete
hardal.track("purchase", {
  transaction_id: "ORDER-001",
  value: 99.99,
  currency: "USD",
  items: [{ item_id: "SKU-001", item_name: "Product Name", price: 99.99, quantity: 1 }]
});
Use the same item_id and item_name across view_item, add_to_cart, and purchase. Inconsistent item identifiers break the Items report and make funnel-level product analysis unreliable.

Custom funnels

You can build funnels around any events. For a lead generation funnel:
hardal.track("page_view");          // Step 1 — landing
hardal.track("sign_up");            // Step 2 — registration
hardal.track("trial_start");        // Step 3 — trial
hardal.track("purchase", { ... });  // Step 4 — conversion
The Funnel page in the dashboard lets you select which events form each step.

Common setup issues

SymptomLikely causeFix
Steps show 0 sessionsEvent name mismatchCheck the exact event name used — add_to_cartaddToCart
Funnel not appearingEvents not firing in orderVerify each step fires via the Events page in analytics
Drop-off looks wrongSame session fires steps out of orderEnsure events fire only when the action actually occurs

View Funnel report

See your live funnel performance in the analytics dashboard