Skip to main content
Real-Time Insights

PULSE

Real-Time Analytics & Business Intelligence

Real-time analytics and trend analysis for streaming. Track viewers, engagement, revenue, and performance with advanced analytics and custom dashboards.

No credit card required
14-day free trial

What is PULSE?

PULSE is WAVE's analytics engine that turns streaming data into business intelligence

PULSE provides real-time analytics and trend analysis that help you understand your audience, optimize performance, and grow revenue.

Every viewer interaction, every buffering event, every conversion is tracked and analyzed in real-time. PULSE uses advanced algorithms to analyze trends, identify issues before they impact viewers, and recommend optimizations.

From live concurrent viewer counts to 90-day retention forecasts, PULSE gives you the data you need to make informed decisions about your streaming strategy.

Comprehensive Metrics Tracking

Audience Metrics

  • Concurrent viewers
  • Peak viewership
  • Average watch time
  • Viewer retention
  • Geographic distribution
  • Device/browser breakdown

Engagement Metrics

  • Engagement rate
  • Interaction events
  • Chat activity
  • Click-through rate
  • Share rate
  • Return viewers

Performance Metrics

  • Bitrate quality
  • Buffering events
  • Error rate
  • Latency measurements
  • Frame drops
  • Connection stability

Business Metrics

  • Revenue per stream
  • Conversion rate
  • CAC and LTV
  • Churn rate
  • Subscription growth
  • ROI tracking

Key Features

Turn data into decisions

Real-Time Analytics

Live viewer metrics, engagement heatmaps, and watch time tracking updated every second

Predictive Intelligence

Advanced analytics predict viewer behavior, revenue trends, and content performance

Custom Dashboards

Build custom dashboards with drag-and-drop widgets and automated reports

Revenue Analytics

Track revenue, conversions, and ROI with integrated payment analytics

PULSE in Action

Real-Time Analytics

import { WaveClient } from '@wave/sdk';

const wave = new WaveClient({ apiKey: process.env.WAVE_API_KEY });

// Get real-time stream analytics
const analytics = await wave.pulse.getStreamAnalytics({
  streamId: 'stream_abc123',
  realtime: true
});

console.log('Current viewers:', analytics.viewers.current);
console.log('Peak viewers:', analytics.viewers.peak);
console.log('Avg watch time:', analytics.engagement.avgWatchTime);
console.log('Engagement rate:', analytics.engagement.rate);

// Subscribe to real-time updates
wave.pulse.subscribe('stream_abc123', (update) => {
  console.log('Viewer count:', update.viewers);
  console.log('Bitrate:', update.bitrate);
  console.log('Quality:', update.quality);
});

Custom Dashboards

// Create custom dashboard
const dashboard = await wave.pulse
  .createDashboard({
    name: 'Executive Overview',
    widgets: [
      { type: 'viewer-count', size: 'large' },
      { type: 'revenue-chart', timeframe: '30d' },
      { type: 'geographic-map' },
      { type: 'engagement-metrics' }
    ]
  });

Automated Reports

// Schedule automated reports
await wave.pulse.scheduleReport({
  name: 'Weekly Summary',
  frequency: 'weekly',
  format: 'pdf',
  recipients: ['[email protected]'],
  metrics: ['viewers', 'revenue', 'engagement']
});

Advanced Analytics Examples

Powerful analytics capabilities for every use case

Custom Event Tracking

Track custom business events like button clicks, purchases, and conversions

import { WaveClient } from '@wave/sdk';

import { DesignTokens, getContainer, getSection } from '@/lib/design-tokens';
const wave = new WaveClient({ apiKey: process.env.WAVE_API_KEY });

// Track custom events with properties
await wave.pulse.trackEvent({
  event: 'premium_upgrade_clicked',
  userId: 'user_123',
  properties: {
    plan: 'pro',
    price: 49.99,
    source: 'stream_page',
    trial: false
  },
  timestamp: new Date()
});

// Track conversion events
await wave.pulse.trackConversion({
  event: 'subscription_started',
  userId: 'user_123',
  revenue: 49.99,
  currency: 'USD',
  properties: {
    plan: 'pro',
    billing: 'monthly',
    referral: 'google_ads'
  }
});

// Batch track multiple events
await wave.pulse.trackEvents([
  { event: 'video_watched', userId: 'user_1', properties: { duration: 1200 } },
  { event: 'chat_message_sent', userId: 'user_2', properties: { length: 45 } },
  { event: 'share_clicked', userId: 'user_3', properties: { platform: 'twitter' } }
]);

Funnel Analysis

Track multi-step conversion funnels

// Create conversion funnel
const funnel = await wave.pulse.createFunnel({
  name: 'Subscription Funnel',
  steps: [
    { event: 'stream_viewed', name: 'Viewed Stream' },
    { event: 'signup_started', name: 'Started Signup' },
    { event: 'plan_selected', name: 'Selected Plan' },
    { event: 'payment_entered', name: 'Payment Info' },
    { event: 'subscription_complete', name: 'Completed' }
  ],
  timeWindow: '24h'
});

// Get funnel metrics
const metrics = await wave.pulse.getFunnelMetrics({
  funnelId: funnel.id,
  timeframe: '30d'
});

console.log('Conversion rate:', metrics.conversionRate);
console.log('Drop-off points:', metrics.dropOffs);

Cohort Analysis

Analyze user retention by cohort

// Create cohort analysis
const cohorts = await wave.pulse.analyzeCohorts({
  cohortBy: 'signup_date',
  period: 'weekly',
  retentionEvent: 'stream_viewed',
  startDate: '2025-01-01',
  endDate: '2025-11-17'
});

// Get cohort retention
cohorts.forEach(cohort => {
  console.log(`Week ${cohort.week}: ${cohort.retention}% retained`);
});

// Compare cohorts
const comparison = await wave.pulse.compareCohorts({
  cohortA: 'organic',
  cohortB: 'paid',
  metric: 'retention_rate'
});

A/B Test Tracking

Track experiments and feature tests

// Create A/B test
const test = await wave.pulse.createABTest({
  name: 'New Player UI',
  variants: ['control', 'variant_a', 'variant_b'],
  goalEvent: 'premium_upgrade',
  trafficAllocation: { control: 34, variant_a: 33, variant_b: 33 }
});

// Track variant exposure
await wave.pulse.trackExperiment({
  testId: test.id,
  userId: 'user_123',
  variant: 'variant_a'
});

// Get test results
const results = await wave.pulse.getTestResults({
  testId: test.id,
  metric: 'conversion_rate'
});

console.log('Winner:', results.winner);
console.log('Statistical significance:', results.significance);

Revenue Attribution

Track revenue sources and attribution

// Track revenue event
await wave.pulse.trackRevenue({
  userId: 'user_123',
  amount: 49.99,
  currency: 'USD',
  product: 'pro_monthly',
  attribution: {
    source: 'google_ads',
    medium: 'cpc',
    campaign: 'Q4_promo',
    touchpoints: ['blog', 'pricing_page', 'stream_demo']
  }
});

// Get attribution report
const attribution = await wave.pulse.getAttribution({
  model: 'multi_touch', // or 'first_touch', 'last_touch'
  timeframe: '90d'
});

console.log('Channel ROI:', attribution.channels);
console.log('Campaign performance:', attribution.campaigns);

Export to Data Warehouse

Export analytics to your data warehouse

// Export to BigQuery
await wave.pulse.exportTo({
  destination: 'bigquery',
  project: 'my-gcp-project',
  dataset: 'wave_analytics',
  table: 'stream_events',
  schedule: 'hourly',
  credentials: process.env.GCP_CREDENTIALS
});

// Export to Snowflake
await wave.pulse.exportTo({
  destination: 'snowflake',
  account: 'my-account',
  warehouse: 'ANALYTICS_WH',
  database: 'WAVE_DATA',
  schema: 'PULSE',
  table: 'EVENTS',
  schedule: 'daily'
});

// One-time CSV export
const csv = await wave.pulse.exportCSV({
  metrics: ['viewers', 'engagement', 'revenue'],
  timeframe: '30d',
  groupBy: 'day'
});

Alert Webhooks

Set up threshold-based alerts

// Create alert rule
await wave.pulse.createAlert({
  name: 'High Error Rate',
  metric: 'error_rate',
  condition: 'greater_than',
  threshold: 5, // 5% error rate
  duration: '5m', // for 5 minutes
  channels: ['slack', 'email', 'webhook'],
  webhook: {
    url: 'https://hooks.slack.com/services/...',
    method: 'POST',
    headers: { 'Content-Type': 'application/json' }
  }
});

// Create viewer drop alert
await wave.pulse.createAlert({
  name: 'Viewer Drop',
  metric: 'concurrent_viewers',
  condition: 'drops_by',
  threshold: 50, // 50% drop
  duration: '2m',
  channels: ['sms', 'pagerduty']
});

Real-Time WebSocket

Subscribe to live metric updates

// Subscribe to real-time updates
const subscription = wave.pulse.subscribe({
  streamId: 'stream_abc123',
  metrics: ['viewers', 'bitrate', 'errors'],
  interval: 1000 // 1 second
});

subscription.on('update', (data) => {
  console.log('Viewers:', data.viewers);
  console.log('Bitrate:', data.bitrate);
  console.log('Errors:', data.errors);
});

subscription.on('alert', (alert) => {
  console.log('Alert:', alert.message);
});

// Unsubscribe when done
subscription.unsubscribe();

Geographic Heatmap

Analyze viewer distribution by location

// Get geographic distribution
const geoData = await wave.pulse.getGeographicData({
  streamId: 'stream_abc123',
  timeframe: '24h',
  groupBy: 'country'
});

geoData.forEach(location => {
  console.log(`${location.country}: ${location.viewers} viewers`);
});

// Get city-level data
const cityData = await wave.pulse.getGeographicData({
  streamId: 'stream_abc123',
  groupBy: 'city',
  minViewers: 100 // only cities with 100+ viewers
});

// Get latency by region
const latency = await wave.pulse.getLatencyByRegion({
  streamId: 'stream_abc123'
});

Device Segmentation

Analyze by device, browser, and OS

// Get device breakdown
const devices = await wave.pulse.getDeviceBreakdown({
  timeframe: '30d',
  groupBy: 'device_type'
});

console.log('Mobile:', devices.mobile);
console.log('Desktop:', devices.desktop);
console.log('Tablet:', devices.tablet);
console.log('TV:', devices.tv);

// Get browser/OS stats
const browsers = await wave.pulse.getBrowserStats({
  timeframe: '30d',
  metrics: ['viewers', 'avg_quality', 'error_rate']
});

// Compare performance by device
const performance = await wave.pulse.compareDevices({
  metric: 'buffering_rate',
  devices: ['mobile', 'desktop']
});

Pre-Built Dashboard Templates

Start with proven dashboard layouts for common use cases

Executive Overview

High-level KPIs for executives and stakeholders

Total Active Viewers156.2K
Monthly Revenue$2.4M
Viewer Growth+23%
Engagement Rate68%
Stream Uptime99.97%
Customer Satisfaction4.8/5.0
View Dashboard

Marketing Performance

Conversion funnels and campaign attribution

Funnel Step 1: Viewed100%
Funnel Step 2: Engaged68%
Funnel Step 3: Signed Up34%
Funnel Step 4: Converted12%
CAC (Cost to Acquire)$45
Campaign ROI285%
View Dashboard

Technical Operations

Stream health, errors, and performance monitoring

Active Streams1,247
Avg Latency87ms
Error Rate0.03%
Buffering Events2.1K
Bandwidth Usage847 Gbps
CDN Hit Rate97.2%
View Dashboard

Content Performance

Popular videos, engagement metrics, and content analytics

Total Watch Time2.4M hrs
Avg Session Duration23 min
Completion Rate78%
Replay Rate34%
Social Shares45.2K
Engagement Score8.7/10
View Dashboard

Explore PULSE analytics capabilities

Complete Metrics Glossary

Understand every metric PULSE tracks and how to improve them

Audience Metrics

Concurrent Viewers

Number of viewers watching at the exact same moment.

How to improve: Promote streams in advance, optimize start times for your audience's time zones.

Peak Viewership

Maximum concurrent viewers during a stream.

Benchmark: Top streams hit peak at 15-20 minutes. Industry avg: 150% of avg concurrent.

Average Watch Time

Mean duration viewers stay on your stream.

How to improve: Hook viewers in first 30 seconds, segment long streams, add interactive elements.

Viewer Retention Rate

Percentage of viewers who stay until end.

Benchmark: 60%+ is excellent, 40-60% is good, <40% needs improvement.

Return Viewer Rate

Percentage of viewers who watch multiple streams.

How to improve: Consistent schedule, quality content, build community through chat.

Engagement Metrics

Engagement Rate

Percentage of viewers who interact (chat, reactions, clicks).

Benchmark: 30%+ is excellent. Formula: (interactions / total viewers) × 100

Chat Activity

Messages per minute during stream.

How to improve: Ask questions, respond to chat, create polls, encourage discussion.

Click-Through Rate (CTR)

Percentage clicking on CTA buttons or links.

Benchmark: 5-10% is good, 10%+ is excellent. Test different CTA placements.

Share Rate

Percentage of viewers who share your stream.

How to improve: Make sharing easy, incentivize shares, create shareable moments.

Interaction Events

Total reactions, emojis, and engagement actions.

Higher = more engaged audience. Track trends over time to measure content quality.

Performance Metrics

Bitrate Quality

Average streaming bitrate delivered to viewers.

Target: 1080p = 4-6 Mbps, 720p = 2-4 Mbps. Higher = better quality but more bandwidth.

Buffering Rate

Percentage of viewers experiencing buffering.

Target: <2%. How to improve: Use adaptive bitrate, optimize encoding, check CDN coverage.

Error Rate

Percentage of playback errors or failed loads.

Target: <0.5%. Monitor for spikes indicating infrastructure issues.

Latency (Glass-to-Glass)

Time from camera to viewer screen.

OMT: <16ms, WebRTC: <500ms, HLS: 6-30s. Lower = more interactive experience.

Frame Drop Rate

Percentage of frames dropped during playback.

Target: <1%. Indicates client performance issues or bandwidth constraints.

Business Metrics

Conversion Rate

Percentage of viewers who complete desired action (signup, purchase).

Benchmark: 2-5% is typical, 10%+ is excellent. A/B test CTAs and landing pages.

Revenue Per Stream

Average revenue generated per streaming session.

Formula: Total revenue / Number of streams. Track trends to measure ROI.

Customer Acquisition Cost (CAC)

Cost to acquire one new customer through streaming.

Formula: Marketing spend / New customers. Should be <30% of Customer Lifetime Value.

Lifetime Value (LTV)

Predicted revenue from a customer over their lifetime.

Target: LTV:CAC ratio of 3:1 or higher. Improve via retention and upsells.

Churn Rate

Percentage of subscribers who cancel in a period.

Target: <5% monthly. Monitor closely and implement retention strategies early.

Third-Party Integrations

Connect PULSE with your existing analytics and BI tools

Google Analytics 4

Bidirectional sync between PULSE and GA4 for unified analytics

Export Events to GA4

Send viewer events, conversions, and custom events

Import GA4 Data

Pull website metrics and attribution data into PULSE

Unified User Tracking

Match viewers across website and streams

// Setup GA4 integration
await wave.pulse.integrations.connectGA4({
  measurementId: 'G-XXXXXXXXXX',
  apiSecret: process.env.GA4_API_SECRET,
  exportEvents: ['stream_view', 'conversion'],
  importGoals: true
});
View Setup Guide

Mixpanel

Forward streaming events to Mixpanel for product analytics

Real-Time Event Forwarding

Stream all viewer events to Mixpanel

User Profile Enrichment

Enhance profiles with streaming behavior data

Funnel Analysis

Build funnels combining web and stream events

// Setup Mixpanel integration
await wave.pulse.integrations.connectMixpanel({
  projectToken: process.env.MIXPANEL_TOKEN,
  forwardEvents: 'all', // or specific events
  enrichUserProfiles: true
});
View Setup Guide

Amplitude

Export cohorts and behavioral data to Amplitude

Cohort Export

Send viewer cohorts to Amplitude for targeting

Behavioral Sync

Track streaming behavior in Amplitude charts

Retention Analysis

Analyze retention using combined data

// Setup Amplitude integration
await wave.pulse.integrations.connectAmplitude({
  apiKey: process.env.AMPLITUDE_API_KEY,
  exportCohorts: true,
  syncInterval: '1h'
});
View Setup Guide

Segment

Route PULSE data through Segment's CDP to all your tools

Single Integration Point

Send data to 300+ destinations via Segment

Data Governance

Control data flow with Segment's protocols

Identity Resolution

Unify user identities across platforms

// Setup Segment integration
await wave.pulse.integrations.connectSegment({
  writeKey: process.env.SEGMENT_WRITE_KEY,
  trackAllEvents: true,
  identifyUsers: true
});
View Setup Guide

Pricing

PULSE analytics included with all WAVE plans

Included

Real-time analytics, custom dashboards, and automated reports are included with all WAVE subscriptions at no additional cost.

  • Unlimited custom dashboards
  • Real-time viewer tracking
  • Automated report generation
  • Data export (CSV, JSON, PDF)
Start Free 14-Day Trial

Frequently Asked Questions

Everything you need to know about PULSE

How real-time are the analytics?

PULSE analytics have sub-second latency. Viewer counts update within 500ms. Engagement metrics refresh every second. Bandwidth and quality metrics stream in real-time via WebSocket connection. See viewer joins/leaves as they happen. Perfect for live events where you need instant feedback. Historical data is available with millisecond-precision timestamps for detailed analysis.

What metrics does PULSE track?

PULSE tracks 100+ metrics across 4 categories: Audience (viewers, retention, geography, devices), Engagement (interactions, chat, shares, click-through), Performance (bitrate, buffering, errors, latency), and Business (revenue, conversions, CAC, LTV, churn). Custom events let you track anything specific to your application. All metrics are exportable via API or CSV.

Can I export analytics data?

Yes, PULSE supports multiple export formats. Download CSV files for spreadsheet analysis. Export to Google Sheets with automatic sync. Use REST API to pull data programmatically. Integrate with data warehouses (Snowflake, BigQuery, Redshift). Set up automated email reports (daily, weekly, monthly). Real-time streaming exports via webhooks for BI tools. All data is yours to use however you need.

How long is analytics data retained?

Starter plans retain 30 days of detailed analytics with unlimited summary data. Professional plans retain 1 year of full-resolution data. Enterprise plans have unlimited retention with custom retention policies. Archived data remains accessible but moves to cheaper storage. All plans include real-time access to current data. No data is ever deleted without your explicit permission.

Can I track custom events?

Yes, PULSE supports custom event tracking via JavaScript API. Track button clicks, form submissions, purchases, sign-ups, or any user action. Pass custom properties with each event for detailed segmentation. Create custom dashboards and funnels around your events. Perfect for tracking business-specific metrics like conversions or upsells. Events integrate seamlessly with standard PULSE metrics.

Does PULSE integrate with Google Analytics?

Yes, PULSE offers two-way sync with Google Analytics. Send PULSE events to GA4 automatically. Import GA4 conversion data into PULSE. Also supports Mixpanel, Amplitude, and Segment integrations. Use our REST API to connect with any analytics platform. Combine streaming metrics with website analytics for complete picture. Privacy-compliant with GDPR and CCPA regulations.

Can I create custom metrics in PULSE?

Absolutely! PULSE allows you to define custom calculated metrics using our formula builder. Combine existing metrics with mathematical operations, create ratios, or define custom business logic. For example, create "Revenue per Concurrent Viewer" by dividing total revenue by peak viewers. Custom metrics appear alongside standard metrics in dashboards and can be used in alerts and reports. Perfect for tracking unique business KPIs specific to your streaming platform.

How do I share dashboards with my team?

PULSE dashboards have flexible sharing options. Share via unique URL with customizable permissions (view-only, edit, or admin). Embed dashboards in your internal tools using iframe or JavaScript widget. Schedule automated dashboard snapshots to email or Slack. Export dashboards as PDF reports. Set up role-based access control for team members. Dashboards update in real-time for all viewers. Enterprise plans include SSO integration and advanced permissions.

What is the difference between concurrent and peak viewers?

Concurrent viewers is the number watching at a specific moment in time - it fluctuates constantly throughout your stream. Peak viewers is the maximum concurrent viewer count reached during a stream - the highest point on the concurrent viewer graph. For example, you might have 1,000 concurrent viewers right now, but peaked at 2,500 earlier. Peak viewers is useful for capacity planning and comparing stream performance, while concurrent is essential for real-time monitoring.

Can I backfill historical analytics data?

Yes, PULSE supports historical data import for migrations and integrations. Upload CSV files with timestamped events to backfill gaps. Import from legacy analytics platforms via API. Historical data maintains full fidelity including all properties and metadata. Backfilled data integrates seamlessly with live data for continuous trend analysis. Useful when migrating from another platform or recovering from data collection issues. Enterprise plans include assisted migration services.

How do automated alerts work?

PULSE alerts monitor your metrics 24/7 and notify you when thresholds are crossed. Set conditions like "viewer count drops by 50%" or "error rate exceeds 2%". Choose notification channels: email, SMS, Slack, webhook, or PagerDuty. Configure alert severity levels and escalation policies. Alerts can be time-based (e.g., only during business hours) or conditional (e.g., only alert if event lasts 5+ minutes). Smart alerts use ML to reduce false positives and adapt to your traffic patterns.

Is PULSE GDPR and CCPA compliant?

Yes, PULSE is fully compliant with GDPR, CCPA, and major privacy regulations. We provide built-in consent management, user opt-out mechanisms, and data deletion tools. All personal data is encrypted at rest and in transit. You can anonymize viewer data while preserving analytical value. Data processing agreements (DPA) available for enterprise customers. Geographic data restrictions to keep EU data in EU servers. Regular third-party privacy audits. You maintain full ownership and control of your analytics data at all times.

What Customers Say About PULSE

Data-driven decisions start with PULSE

SportsTech Inc

Sports Broadcasting

PULSE analytics helped us increase viewer engagement by 47% in just 3 months. The real-time insights let us optimize content while streams are live.
MC

Michael Chen

CTO

47%
Engagement Increase
23%
Retention Improvement
<500ms
Data Latency
1 of 3 customer stories

Analyze Everything

PULSE provides insights for your entire streaming workflow

PIPELINE

Track live stream performance with PULSE. Monitor concurrent viewers, bandwidth, and quality in real-time.

View Live Stream Analytics

VAULT

Analyze VOD performance with PULSE. Track watch time, completion rates, and engagement for recorded content.

View VOD Analytics

CONNECT

Access PULSE data programmatically via REST API. Build custom dashboards and integrate with your BI tools.

Explore Data Integration

Ready to Understand Your Audience?

Make data-driven decisions with WAVE PULSE analytics

Join 500+ Fortune companies already using WAVE
PULSE - Real-Time Analytics | WAVE | WAVE