Pro Plan15 minutesintermediate

Media & Publishing Analytics

Set up comprehensive analytics for media sites, blogs, and digital publications.

mediapublishingcontentanalyticspageviews
Last updated: January 15, 2025

Set up analytics tailored for media sites, news publications, blogs, and content platforms.

Media Analytics Overview

Key Media Metrics

MetricDefinitionWhy It Matters
PageviewsContent consumptionVolume
Unique VisitorsAudience sizeReach
Time on PageEngagement depthQuality
Scroll DepthContent consumptionEngagement
RecirculationPages/sessionStickiness
Return VisitorsLoyaltyAudience building

Media-Specific Challenges

  1. High traffic volumes - Need efficient tracking
  2. Content decay - Articles lose relevance
  3. Real-time events - Breaking news spikes
  4. Multiple content types - Articles, video, podcasts
  5. Subscription models - Paywalls and metering

Setting Up Media Tracking

Basic Implementation

<script
  defer
  data-tracking-code="YOUR_TRACKING_CODE"
  src="https://api.zenovay.com/z.js">
</script>

Page views are tracked automatically. Scroll depth tracking can be enabled in the dashboard under SettingsTracking.

Article Metadata Tracking

Pass article metadata for rich analytics:

// Track article view with metadata
zenovay('track','article_viewed', {
  article_id: 'art_12345',
  title: 'Breaking: Major Event Unfolds',
  author: 'Jane Smith',
  category: 'news',
  subcategory: 'politics',
  publish_date: '2025-01-15',
  word_count: 1250,
  content_type: 'article',
  tags: ['breaking', 'politics', 'national'],
  is_premium: false
});

Content Type Tracking

Different content types need different tracking:

// Video content
zenovay('track','video_started', {
  video_id: 'vid_789',
  title: 'Interview with CEO',
  duration_seconds: 420,
  category: 'interviews'
});

zenovay('track','video_progress', {
  video_id: 'vid_789',
  percent_watched: 50,
  watch_time_seconds: 210
});

// Podcast/Audio
zenovay('track','audio_started', {
  podcast_id: 'pod_456',
  episode: 'EP 42: Tech Trends',
  duration_seconds: 1800
});

// Photo gallery
zenovay('track','gallery_viewed', {
  gallery_id: 'gal_123',
  images_count: 25,
  images_viewed: 12
});

Author Analytics

Track Author Performance

// Include author in article tracking
zenovay('track','article_viewed', {
  article_id: 'art_12345',
  author_id: 'author_jane',
  author_name: 'Jane Smith',
  // ... other metadata
});

Author Dashboard

View in AnalyticsAuthors:

  • Articles published
  • Total pageviews
  • Average time on article
  • Reader engagement score
  • Top performing articles
AuthorArticlesViewsAvg TimeEngagement
Jane Smith45125K4:3078%
John Doe3898K3:1565%
Sarah Chen52180K5:1082%

Category Analytics

Track Categories

// Category hierarchy
zenovay('track','article_viewed', {
  category: 'technology',
  subcategory: 'startups',
  topic: 'funding'
});

Category Performance

CategoryPageviewsShareTrend
News450K35%+5%
Sports320K25%+2%
Opinion180K14%-3%
Tech150K12%+12%

Real-Time Analytics

Breaking News Tracking

Monitor real-time during events:

// Track breaking news engagement
zenovay('track','breaking_news', {
  story_id: 'breaking_001',
  title: 'Election Results',
  start_time: new Date().toISOString(),
  priority: 'high'
});

Live Dashboard

View in AnalyticsLive:

  • Current visitors
  • Top articles now
  • Traffic sources now
  • Geographic distribution

Spike Alerts

Set up alerts for:

  • Traffic 3x normal
  • New article trending
  • Server capacity concerns

Scroll Depth Analytics

Why Scroll Matters

For content sites, scroll depth shows:

  • How much content consumed
  • Where readers drop off
  • Article length optimization

Track Scroll Milestones

// Automatic scroll tracking is enabled in dashboard Settings → Tracking

// Custom scroll events
zenovay('track','scroll_milestone', {
  article_id: 'art_12345',
  milestone: 75, // percent
  word_count_read: 940
});

Scroll Depth Report

Depth% ReadersInsight
25%85%Good hook
50%62%Content engaging
75%41%Some drop-off
100%28%Completed

Benchmark: 25%+ completing is good for long-form.

Engagement Scoring

Calculate Article Engagement

// Track engagement score
zenovay('track','article_engagement', {
  article_id: 'art_12345',
  time_on_page: 245, // seconds
  scroll_depth: 85, // percent
  shares: 12,
  comments: 5,
  engagement_score: 78 // calculated
});

Engagement Formula

Engagement Score =
  (Time Weight × Time Score) +
  (Scroll Weight × Scroll Score) +
  (Action Weight × Action Score)

Segment by Engagement

SegmentEngagement% TrafficFocus
Deep Readers80-10015%Subscription target
Engaged50-7935%Newsletter signup
Scanners25-4930%Content format
Bouncers0-2420%Reduce

Traffic Source Analysis

Media-Specific Sources

SourceVisitorsEngagedNotes
Google News180K42%Algorithm-driven
Google Search150K55%Intent-driven
Facebook120K25%Social discovery
Twitter/X80K35%Breaking news
Apple News60K48%Curated
Direct90K68%Loyal readers

Social Referral Tracking

// Track social referral
zenovay('track','social_referral', {
  platform: 'twitter',
  post_id: 'tweet_123',
  article_id: 'art_12345',
  campaign: 'breaking_news'
});

Newsletter Integration

Track Newsletter Signups

// Newsletter signup from article
zenovay('track','newsletter_signup', {
  location: 'article_footer',
  article_id: 'art_12345',
  newsletter_type: 'daily_digest'
});

Newsletter-Driven Traffic

Track readers from newsletters:

https://yoursite.com/article?utm_source=newsletter&utm_campaign=daily_2025_01_15

Content Recommendations

Track Recommendation Clicks

// Recommendation widget impressions
zenovay('track','recommendations_shown', {
  article_id: 'art_12345',
  recommendations: ['art_456', 'art_789', 'art_012'],
  position: 'article_end'
});

// Recommendation click
zenovay('track','recommendation_clicked', {
  from_article: 'art_12345',
  to_article: 'art_789',
  position: 2
});

Recirculation Rate

Recirculation = Sessions with 2+ pageviews ÷ Total sessions

Benchmark: 40%+ is good for media sites.

Paywall & Subscription Tracking

Meter Tracking

// Track meter status
zenovay('track','meter_status', {
  articles_read: 3,
  limit: 5,
  period: 'month',
  user_id: 'anon_123'
});

// Paywall hit
zenovay('track','paywall_shown', {
  article_id: 'art_12345',
  trigger: 'meter_limit',
  offer: 'subscribe_50_off'
});

Subscription Funnel

  1. Free reader
  2. Registered (email)
  3. Hitting paywall
  4. Conversion

See Media Subscription Conversion for detailed tracking.

CMS Integration

WordPress

// Pass article data to Zenovay
add_action('wp_footer', function() {
  global $post;
  if (is_single()) {
    $categories = get_the_category();
    $author = get_the_author();
    ?>
    <script>
      zenovay('track','article_viewed', {
        article_id: '<?php echo $post->ID; ?>',
        title: '<?php echo esc_js(get_the_title()); ?>',
        author: '<?php echo esc_js($author); ?>',
        category: '<?php echo esc_js($categories[0]->name); ?>',
        publish_date: '<?php echo get_the_date('Y-m-d'); ?>',
        word_count: <?php echo str_word_count(get_the_content()); ?>
      });
    </script>
    <?php
  }
});

Headless CMS

Include metadata in your frontend:

// Next.js example
export default function Article({ article }) {
  useEffect(() => {
    zenovay('track','article_viewed', {
      article_id: article.id,
      title: article.title,
      author: article.author.name,
      category: article.category.slug,
      publish_date: article.publishedAt,
      word_count: article.wordCount
    });
  }, [article]);
}

Best Practices

For Media Sites

  1. Track article metadata

    • Author, category, publish date
    • Enables rich analysis
  2. Monitor real-time

    • React to trending content
    • Manage capacity
  3. Measure engagement, not just pageviews

    • Time on page
    • Scroll depth
    • Recirculation
  4. Segment by content type

    • Different metrics for video vs text
    • Category-specific benchmarks

Next Steps

Was this article helpful?