Skip to main content
Pro Plan15 minutesIntermediate

Media Content Performance

Media Content Performance: Analyze which content performs best and optimize your editorial strategy. Explore this industry guide for details.

mediacontentperformanceanalyticseditorial
Last updated:

Measure content performance to understand what resonates with your audience and inform editorial decisions.

Zenovay gives you the per-page building blocks out of the box — pageviews, unique visitors, average time on page, and scroll depth. The editorial dimensions media teams care about (author, category, content type, headline variant) aren't separate dashboards; you attach them to your pageviews as custom event metadata, then segment and compare. This guide shows both halves: the metrics you already have, and the patterns to capture the rest.

Content Performance Metrics

Key Content Metrics

MetricDefinitionWhere to find it
PageviewsTotal loadsAnalytics tab (Pages view)
Unique VisitorsDistinct readersAnalytics tab
Avg Time on PageTime spent readingAnalytics tab (Pages view)
Scroll Depth% of article seenAnalytics tab / scroll heatmaps
Exit RateLeft from this pageAnalytics tab (Pages view)
Shares / clicksOff-site amplificationCustom events (you send these)

Pageviews, time on page, scroll depth, and exit/entry behaviour are all visible per URL on the Analytics tab of a website's dashboard. Anything that happens off-page — a social share, a newsletter signup, a paywall click — isn't measured automatically; you capture it with a custom event (covered below).

A Simple Content Score

There's no built-in "content score" in Zenovay, but a weighted score is a useful way to rank your own articles once you've exported or queried the underlying metrics. Adjust the weights to match your editorial goals:

// A content score you compute from your own exported metrics.
// Not a Zenovay-provided number — define the weights yourself.
function calculateContentScore(article) {
  const weightedScore =
    (article.pageviews / avgPageviews) * 0.2 +
    (article.timeOnPage / avgTimeOnPage) * 0.3 +
    (article.scrollDepth / 100) * 0.25 +
    (article.shares / avgShares) * 0.15 +
    (article.comments / avgComments) * 0.10;

  return Math.min(100, weightedScore * 20);
}

Info

On Scale, Query Studio (the SQL tab) lets you compute rankings like this directly against your data instead of exporting first.

Analyzing Top Content

Per-Page Metrics

Open a website's dashboard and go to the Analytics tab. The Pages view ranks your URLs by pageviews, with time on page, scroll depth, and entry/exit behaviour alongside each one. This is the closest thing to a "top articles" report, and it works for any site without extra tagging.

PageViewsTimeScroll
Major Event Coverage45K5:2082%
Expert Analysis32K6:4588%
Photo Gallery28K3:1045%
Quick News55K1:2035%

Filter by Time Period

Use the date-range selector at the top of the dashboard to compare performance:

  • Today vs yesterday
  • This week vs last week
  • This month vs last month
  • Custom date ranges

The Daily Movers tab also surfaces the pages that gained or lost the most traffic versus the previous period — useful for spotting what's heating up or cooling down.

Sort by Different Metrics

Not all content goals are the same. In the Pages view you can rank by:

  • Reach: pageviews
  • Engagement: time on page
  • Quality: scroll depth

For virality (shares), you'll need the custom-event approach below — Zenovay can't see what happens on social platforms.

Content Lifecycle Analysis

The Content Curve

Track how content performs over time using the date-range comparisons above. A typical breaking-news curve concentrates most views in the first hours:

Time Since Publish% of Total Views
Hour 115%
Hours 2-630%
Hours 6-2425%
Days 2-720%
Week 2+10%

Evergreen vs Breaking

Breaking News Pattern:

Views peak in hours, decay quickly
Day 1: 80% of all views
Day 7: 2% of all views

Evergreen Pattern:

Steady views over time
Day 1: 10% of all views
Month 6: Still getting views

Tag Content Age With a Custom Event

To slice performance by content age or evergreen status, send a custom event on article load that includes those attributes. You can then filter or group by them later:

// Send extra metadata about the article when it loads
window.zenovay('track', 'article_viewed', {
  article_id: 'art_12345',
  days_since_publish: 45,
  is_evergreen: true,
  category: 'analysis'
});

Category and Author Performance

Zenovay doesn't ship pre-built category or author leaderboards. The reliable way to measure them is to attach category and author to a custom event on every article view, then segment your data by those properties.

// Attach editorial dimensions to each article view
window.zenovay('track', 'article_viewed', {
  article_id: 'art_12345',
  category: 'analysis',
  author: 'sarah-chen',
  word_count: 1850
});

Once these events are flowing, you can compare cohorts like the examples below. (These are illustrative — the real numbers come from your own event data, exported or queried via Query Studio on Scale.)

By category:

CategoryAvg ViewsAvg TimeNotes
Breaking15K1:45High volume, lower engagement
Analysis8K5:30Lower volume, higher engagement
Opinion5K4:20Polarizing
Lifestyle6K3:00Steady performer

By author:

AuthorArticlesTotal ViewsBest Article
Sarah Chen24320KExpert Analysis
Mike Johnson35280KEvent Coverage
Lisa Park18190KDeep Dive

Content Type Analysis

Capture the format on each view (content_type) and you can compare how long-form, short news, listicles, video, and galleries perform:

window.zenovay('track', 'article_viewed', {
  article_id: 'art_12345',
  content_type: 'long_form'
});
TypeAvg ViewsAvg TimeScroll
Long-form8K6:0075%
Short news15K1:3040%
Listicle12K2:3055%
Video6K4:00N/A
Gallery10K3:00N/A

Format Optimization

Different formats for different goals:

  • Traffic: short news, listicles
  • Engagement: long-form, video
  • Social: listicles, galleries
  • Subscriptions: analysis, exclusives

Headline Testing

If you serve more than one headline for the same article, record which variant a reader saw as a custom event, then compare click-through and downstream engagement.

// Record which headline variant was shown
window.zenovay('track', 'headline_variant', {
  article_id: 'art_12345',
  variant: 'B',
  headline: "You Won't Believe What Happened Next"
});

Info

For structured A/B tests with automatic variant assignment, use Zenovay's experiment helper instead: window.zenovay('experiment', 'headline-art-12345', ['informative', 'curiosity']). Results show up in the Experiments tab. See the A/B testing docs for details.

A typical comparison once both variants have run:

VariantImpressionsClicksCTRTime on Page
A: Informative50K3.5K7.0%4:30
B: Curiosity50K4.8K9.6%2:45

Insight: Curiosity headlines often get more clicks but lower engagement.

Content Recirculation

To understand how readers move between articles, send an event when someone clicks an internal link (related articles, category links, recommendation widgets):

// Track how readers move between articles
window.zenovay('track', 'recirculation', {
  from_article: 'art_12345',
  to_article: 'art_67890',
  method: 'related_articles',
  position: 2
});

The Journeys tab also visualizes how visitors flow between pages on your site, without any custom tagging — a good first stop before you build dedicated recirculation events.

Content Decay Analysis

Use date-range comparisons in the Pages view (or the Daily Movers tab) to spot articles whose traffic is falling. For evergreen pieces that are decaying, that's a signal to refresh and republish.

ArticleAgeCurrent ViewsPeak ViewsAction
Guide to X180d20/day500/dayRefresh
Best Y365d5/day1000/dayUpdate
How to Z90d100/day200/dayMonitor

If you want this tracked automatically, send a custom event from a scheduled job that compares current vs historical performance:

// Flag decaying evergreen content from a scheduled job
window.zenovay('track', 'content_decay', {
  article_id: 'art_12345',
  views_30d_ago: 500,
  views_current: 50,
  is_evergreen: true,
  needs_refresh: true
});

Content Attribution

The Analytics tab breaks traffic down by referrer and source, so you can see which channels send readers to which content. Combined with the per-page metrics, this tells you where each type of content performs best.

SourceTop Content TypeEngagement
Google SearchEvergreen guidesHigh
Google NewsBreaking storiesMedium
FacebookLifestyle, visualLow
Twitter/XBreaking, opinionMedium
EmailCurated picksHighest

For deeper search-traffic analysis (ranking keywords, SERP position, click-through rate), connect Google Search Console — see the SEO guides.

Content Goals

You can turn any of the metrics above into a tracked goal. Open a website's dashboard, go to the Journeys tab, and use the Goals section to create a goal. Goals can fire on a pageview, a custom event, or a destination URL.

GoalBased onExample target
ReachPageviews10K/article
EngagementAvg time3+ minutes
QualityScroll 75%+40% of readers
Viralityshare custom event100/article

Content Reporting

On Scale, you can schedule recurring reports and export data for a weekly or monthly content review. A typical review covers:

  • Top pages by views, time, and scroll depth
  • Category and author breakdowns (from your custom events)
  • Traffic sources
  • Decaying content flagged for refresh

Editorial Insights

Data-Driven Decisions

Use the data to inform:

  • What to cover: topics that resonate
  • How to cover: optimal format/length
  • When to publish: peak engagement times
  • Who should write: author–topic fit

Best Practices

Content Measurement

  1. Define success per content type

    • News: speed, reach
    • Analysis: engagement, shares
    • Guides: evergreen traffic
  2. Track the full lifecycle

    • Publish to peak
    • Peak to decline
    • Refresh opportunities
  3. Connect to business goals

    • Subscriptions driven
    • Ad revenue generated
    • Audience growth

Avoid Vanity Metrics

  • Pageviews alone aren't success
  • Consider quality metrics like scroll depth and time on page
  • Balance reach and engagement

Next Steps

Was this article helpful?