Conversion analytics for SaaS teams

Turn landing page visitors into revenue, not guesswork.

PulseMetrics tracks sessions, section engagement, conversions, and attribution in one privacy-first dashboard. See which hero copy, pricing tier, and CTA drive signups—then optimize with confidence.

No credit card required · 14-day Pro trial · SOC 2 ready
✓ 14-day trial ✓ GDPR & CCPA friendly ✓ 10-minute setup ✓ 99.9% uptime
Why teams switch

Every feature maps to a revenue outcome.

PulseMetrics is built for growth teams that need fast answers, not a data warehouse project. Measure the exact moments that move visitors from interest to signup.

Real-time funnels

See hero views, pricing views, signups, demo requests, and purchases in a live conversion funnel.

Privacy-first attribution

Cookieless tracking, consent-aware events, and source/medium/campaign attribution that respects modern privacy rules.

Section-level engagement

Measure time spent in hero, features, pricing, testimonials, FAQ, and demo CTA sections to find friction points.

Revenue playbooks

Use cohort comparisons, CTA recommendations, and test-ready segments to improve conversion rate each week.

Pricing

Choose the plan that matches your growth stage.

All plans include core analytics, conversion tracking, section engagement, and a 14-day trial.

Starter

For early-stage sites validating messaging and CTA performance.

$29 /mo
  • ✓ 10K events per month
  • ✓ 1 domain
  • ✓ Core conversion funnels
  • ✓ Section-level engagement
  • ✓ 30-day analytics history
  • ✓ Email support

Scale

For marketing teams with multiple funnels, cohorts, and server-side events.

$199 /mo
  • ✓ 1M events per month
  • ✓ Unlimited domains
  • ✓ Server-side tracking
  • ✓ Cohort analysis
  • ✓ API access
  • ✓ SSO
  • ✓ Dedicated CSM
All plans include core analytics, email support, and 14-day trial. Annual plans are billed yearly.
Social proof

Teams use PulseMetrics to find the leaks in their funnel.

These are illustrative customer outcomes based on common SaaS landing-page CRO results.

★★★★★

“We discovered visitors spent almost no time in our testimonials section. Moving it above pricing increased signups by 22% in two weeks.”

AM
Alex Martin
Head of Marketing, Northwind
★★★★★

“The section-level time metric is the missing piece. We stopped guessing which landing page sections mattered and started testing with data.”

SP
Sara Patel
Growth Lead, FieldStack
★★★★★

“PulseMetrics made attribution simple enough for our marketing team to use daily. Demo requests from organic traffic increased 31%.”

JR
Jordan Reyes
VP Marketing, Clearwave
FAQ

Answers to common landing-page analytics questions.

Use these answers to reduce friction before visitors reach the pricing CTA.

The page uses section markers such as hero, features, pricing, testimonials, FAQ, and demo. When a section enters the viewport, the browser records a start time. When it leaves, the duration is logged as a page view event.

Conversions include email signups, demo requests, and purchases. Each conversion stores the visitor, session, section, pricing plan, conversion type, value, and timestamp.

The demo uses local browser storage to simulate analytics events. A production implementation can use cookieless identifiers, consent banners, server-side ingestion, and data retention rules for GDPR/CCPA compliance.

Starter is ideal for one landing page and basic funnels. Growth is best for CRO teams testing campaigns and sections. Scale is for multi-funnel teams with server-side tracking, cohorts, API integrations, and SSO.

No. Landing pages can be instrumented with a single script tag and section markers. Advanced teams can add server-side events for purchases, billing events, and product activation.

Book a demo

See PulseMetrics on your landing page.

We’ll map your hero, pricing, testimonials, FAQ, and CTA sections to conversion events. You’ll leave with a baseline funnel and a prioritized optimization list.

  • ✓ 30-minute walkthrough
  • ✓ Landing-page instrumentation checklist
  • ✓ Conversion funnel review
  • ✓ Privacy and attribution guidance

Request a demo

Use this form to simulate a demo-request conversion.

``` --- # File: `modelname_analytics_dashboard.html` ```html PulseMetrics Analytics Dashboard

PulseMetrics Analytics Dashboard

Simulated dashboard querying landing-page visitor analytics: sessions, section views, conversions, and attribution.

Visitor count trend

Visitors Email signups (right axis)

Conversion funnel

Traffic source breakdown

Top converting sections

Traffic sources and conversion quality

SQL queries used to simulate metrics

-- 1. Daily visitor trend
SELECT
  DATE(s.started_at) AS day,
  COUNT(DISTINCT s.visitor_id) AS visitors,
  SUM(s.duration_ms) / NULLIF(COUNT(DISTINCT s.session_id), 0) AS avg_session_ms
FROM sessions s
WHERE s.started_at >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY 1
ORDER BY 1;

-- 2. Conversion funnel
WITH funnel AS (
  SELECT
    s.visitor_id,
    MAX(CASE WHEN pv.section_key = 'features' THEN 1 ELSE 0 END) AS saw_features,
    MAX(CASE WHEN pv.section_key = 'pricing' THEN 1 ELSE 0 END) AS saw_pricing,
    MAX(CASE WHEN c.conversion_type = 'email_signup' THEN 1 ELSE 0 END) AS signed_up,
    MAX(CASE WHEN c.conversion_type = 'demo_request' THEN 1 ELSE 0 END) AS requested_demo,
    MAX(CASE WHEN c.conversion_type = 'purchase' THEN 1 ELSE 0 END) AS purchased
  FROM sessions s
  LEFT JOIN page_views pv ON pv.session_id = s.session_id
  LEFT JOIN conversions c ON c.session_id = s.session_id
  WHERE s.started_at >= CURRENT_DATE - INTERVAL '30 days'
  GROUP BY s.visitor_id
)
SELECT
  COUNT(*) AS landing_views,
  SUM(saw_features) AS features_viewed,
  SUM(saw_pricing) AS pricing_viewed,
  SUM(signed_up) AS email_signups,
  SUM(requested_demo) AS demo_requests,
  SUM(purchased) AS purchases
FROM funnel;

-- 3. Traffic source breakdown
SELECT
  s.source,
  COUNT(DISTINCT s.visitor_id) AS visitors,
  COUNT(DISTINCT c.conversion_id) AS conversions,
  ROUND(
    100.0 * COUNT(DISTINCT c.conversion_id) / NULLIF(COUNT(DISTINCT s.visitor_id), 0),
    2
  ) AS conversion_rate_pct
FROM sessions s
LEFT JOIN conversions c ON c.session_id = s.session_id
WHERE s.started_at >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY s.source
ORDER BY visitors DESC;

-- 4. Top converting sections
SELECT
  pv.section_name,
  COUNT(*) AS views,
  ROUND(AVG(pv.time_spent_ms) / 1000.0, 1) AS avg_time_spent_sec,
  COUNT(DISTINCT c.conversion_id) AS conversions,
  ROUND(
    100.0 * COUNT(DISTINCT c.conversion_id) / NULLIF(COUNT(*), 0),
    2
  ) AS conversion_rate_pct
FROM page_views pv
JOIN sessions s ON s.session_id = pv.session_id
LEFT JOIN conversions c
  ON c.session_id = s.session_id
 AND c.page_section = pv.section_key
WHERE s.started_at >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY pv.section_name
ORDER BY conversions DESC, views DESC;

-- 5. KPIs
SELECT
  COUNT(DISTINCT s.visitor_id) AS visitors,
  COUNT(pv.page_view_id) AS page_views,
  COUNT(CASE WHEN c.conversion_type = 'email_signup' THEN 1 END) AS email_signups,
  COUNT(CASE WHEN c.conversion_type = 'demo_request' THEN 1 END) AS demo_requests,
  COUNT(CASE WHEN c.conversion_type = 'purchase' THEN 1 END) AS purchases,
  ROUND(
    100.0 * COUNT(CASE WHEN c.conversion_type = 'email_signup' THEN 1 END)
    / NULLIF(COUNT(DISTINCT s.visitor_id), 0),
    2
  ) AS conversion_rate_pct,
  ROUND(AVG(s.duration_ms) / 60000.0, 1) AS avg_session_min
FROM sessions s
LEFT JOIN page_views pv ON pv.session_id = s.session_id
LEFT JOIN conversions c ON c.session_id = s.session_id
WHERE s.started_at >= CURRENT_DATE - INTERVAL '30 days';