Skip to main content

Understanding performance on X

Twitter Analytics: What Your Numbers Actually Tell You

Updated

The post you were most pleased with this month might be the wrong one to repeat. It got the views, the likes and a lively argument underneath it. Meanwhile, a quieter post explaining how you solved a specific problem sent people to your website. If you only sort by impressions, you could miss the more useful result.

Twitter Analytics, now X Analytics, helps you see how your posts were distributed and what readers did next. The difficult part is deciding what those actions mean. A profile click can be curiosity, a reply can be disagreement, and a rising engagement rate can hide a shrinking audience.

The numbers become useful when they answer a decision: which topics deserve another post, which conversations attract the people you want to reach, and where interest stops turning into action.

Impressions tell you how often you appeared, not how much you mattered

An impression records an appearance on someone's screen. It isn't a unique person, and it doesn't establish that they read the whole post. X's metric definitions explicitly distinguish impressions from unique viewers. Its separate public view-count guidance also says repeat views and your own views can count.

That makes impressions useful for judging distribution. It makes them a poor substitute for audience size or interest. Fifty thousand impressions might include repeat exposure, people outside your field and people who immediately kept scrolling.

If distribution is the problem you're investigating, the Twitter impressions guide explains how to establish a useful baseline, separate low reach from visibility restrictions and test changes to your posts.

Consider two posts with links to the same newsletter signup page. One comments on a broad industry controversy; the other explains a problem your newsletter regularly covers.

Illustrative numbers, measured seven days after each post. These are examples, not benchmark data.
MetricIndustry debatePractical example
Impressions50,0005,000
Engagements600150
Engagement rate1.2%3%
Link clicks4060
Click-through rate0.08%1.2%
Signups attributed to the tagged link in website analytics16

If the objective was newsletter growth, the practical example deserves more attention despite getting a tenth of the impressions. If the objective was broad awareness, the debate may still have done its job. You need the objective before you can name the winner.

Six signups are a small sample, so this isn't enough to declare a permanent content strategy. It is enough to justify trying another useful example and seeing whether the pattern repeats. Those signup figures also come from website measurement, not a native X metric.

Engagement rate is easy to calculate and easy to misread

In its Post Activity Dashboard documentation, X counts more than likes, replies and reposts as engagements. The total can include opening a post, clicking media, visiting the author's profile and clicking a link. The rate is engagements divided by impressions:

Engagement rate = engagements ÷ impressions × 100

So 200 engagements across 10,000 impressions gives you 2%. That does not mean 2% of unique readers liked the post. Neither side of that calculation is a count of unique people, and several different actions are being combined.

Before celebrating a higher rate, inspect what increased. More replies might mean a productive discussion or an argument you don't want to become known for. More media clicks might mean readers wanted to inspect a useful chart. The total alone can't tell you which happened.

The denominator matters just as much. Suppose you previously had 200 engagements from 10,000 impressions and now have 300 from 30,000. Your rate fell from 2% to 1%, even though the number of interactions rose by half. That may be a worthwhile expansion beyond your usual readers. It may also be less relevant distribution. Read the replies and inspect the actions before deciding.

There is another trap when you report across multiple posts: a simple average of their percentages isn't the combined engagement rate.

Post A: 10 engagements ÷ 100 impressions = 10%
Post B: 100 engagements ÷ 10,000 impressions = 1%

Combined: 110 ÷ 10,100 × 100 = 1.09%
Simple average of the two rates: 5.5%

The 5.5% average gives the tiny post as much weight as the much larger one. Use total engagements divided by total impressions when the question is how much interaction the whole set generated per impression. A median post rate answers a different question: how the middle post performed.

The same care applies to competitor reports. A rate built from public likes and replies divided by followers isn't comparable with your native engagement rate. Check both the included actions and the denominator before deciding somebody else's account is outperforming yours.

Compare posts that had a fair chance to perform

A week-old post has had more time to collect views than one published this morning. A reply underneath a breaking news story has a different opportunity from an original post about a narrow technical problem. Put them in the same leaderboard and you can end up ranking circumstances more than writing.

Separate original posts, replies and quote posts when reviewing patterns. Then make a few useful comparisons within each group: practical explanations against other explanations, product updates against other updates, and replies in similar kinds of conversations.

For new experiments, record results at a consistent age. Seven days after publishing is one workable review point, not a rule about when X stops distributing a post. Keep a later snapshot for posts that continue attracting attention. If you only have today's lifetime totals for old posts, acknowledge that age difference rather than pretending you can reconstruct their first week.

Separate paid distribution too. X's API documentation distinguishes organic, promoted and combined public metrics. A boosted post shouldn't establish the organic baseline you expect every future post to beat.

Look at the middle of the group as well as its total. If one post generated most of the month's impressions, the account had a successful post. That doesn't necessarily mean the typical post improved. Keep that outlier in the report, but show what the rest did.

Posting time deserves the same skepticism. If your best Tuesday post was also a major announcement, you haven't isolated the effect of Tuesday. Alternate a couple of plausible time windows across comparable posts before rearranging your entire schedule. Treat the results as directional evidence, not a controlled experiment.

For evidence-based starting points, the best time to post on Twitter article compares published studies, translates the choices into US time zones and lays out a balanced test schedule.

Profile visits and followers don't form a neat conversion funnel

A reader who leaves the conversation to inspect your profile is doing something worth noticing. But the number needs its label. X defines a post's user profile clicks as clicks on the author's name, handle or photo. That is a narrower measurement than all visits to your profile over a period.

Where post-level profile clicks are available, dividing them by that post's impressions can help compare how often different posts prompted that action. It still measures clicks per impression, not unique visitors who became prospects.

A daily account total is less specific. People may arrive through several posts, a mention, search or a shared profile link. If you gained 20 followers on a day with 200 profile visits, calling that a 10% visitor-to-follower conversion rate claims a connection those totals don't establish. Some follows may have happened directly from a post; some visits may have been repeat visits or existing followers.

Read follower changes carefully as well. A net increase of 20 doesn't tell you how many people followed and unfollowed separately. If your report provides those components, keep them. If it only gives total followers, describe the difference as net growth.

When profile visits rise without much follow-through, read your profile as someone arriving from the successful post. Does the bio describe the subject that brought them there? Do the pinned post and recent posts give them a reason to stay? A popular joke followed by a profile full of unrelated sales pitches offers a plausible explanation before you need an algorithm theory.

For practical examples, see how to get followers on Twitter, including targeted searches, useful replies and a profile that matches the audience you're trying to attract.

Follow link clicks far enough to see what happened

For posts meant to bring readers to a website, break link clicks out of the engagement total. Calculate click-through rate using link clicks divided by impressions, then look at the destination's results separately. A post can have a respectable engagement rate while very few readers leave X.

Give links consistent campaign tags so website analytics can distinguish the traffic. For example:

https://example.com/newsletter?utm_source=x&utm_medium=social&utm_campaign=october_notes&utm_content=pricing_example

Here, utm_content identifies the specific post. Give your profile link a different value, such as profile, so its traffic doesn't get mixed with that post's traffic. Google's campaign URL documentation explains these fields and notes that values are case-sensitive. Pick a naming convention and keep it consistent.

A tag identifies the link that arrived with the visit. It doesn't reveal every earlier post the person read. Someone might discover you through a reply, return a week later and use your profile link. Someone else might copy a tagged link into a group chat. Read attribution as recorded evidence, not a complete history of persuasion.

Nor should X link clicks match website sessions exactly. A Google Analytics session groups activity over time, so multiple clicks can belong to one session. Website measurement can also miss a visit when tracking doesn't load or is blocked. Google documents these mechanisms in its click-versus-session troubleshooting guidance for ads; they are useful checks when investigating a social traffic discrepancy too.

If clicks are healthy but useful website actions are scarce, inspect the handoff. Does the page deliver what the post promised? Is the destination usable on a phone? Is the signup or enquiry being recorded correctly? Changing the post's opening line won't repair a broken form.

Keep a small record of relevant enquiries and what people say brought them to you. A person who mentions an older thread provides context a last-click report may miss. Use that alongside your measured results without crediting every later sale to whichever post happened to perform well.

Video views need a second number beside them

A video view is different from an impression of the post containing it. In Media Studio, X defines its main video-view metric using at least two seconds watched with at least half the player in view. A large view count therefore doesn't establish that people reached your explanation or watched the demonstration.

Where your video report provides retention, completion or watch time, look for the moment viewers leave. If the useful part begins after a long introduction, try bringing it forward. If people stay through the example and leave during a closing pitch, that suggests a different edit.

Compare videos of similar length. Finishing a 12-second clip is a different commitment from finishing a four-minute walkthrough. A lower completion rate on the walkthrough could still accompany more time spent with a useful explanation.

Check the reporting scope before crediting a particular post. X's documentation says some video metrics aggregate across posts containing the same video. Reusing a video doesn't necessarily give you an independent video-view total for each piece of copy.

Keep a record before you need to investigate a missing number

Guides use “Twitter Analytics” to describe several surfaces: account analytics, individual post statistics, advertising reports and video dashboards. Their fields and access conditions aren't interchangeable. Work from the metric definition and date range in the report you actually have; a missing column isn't a zero.

This matters when comparing native X Analytics with a third-party tool. X's API limits non-public, organic and promoted metrics to posts created within the last 30 days. That is an API retrieval limit, not a universal statement that all native analytics disappear after a month. A service may retain data it already collected, but connecting it later doesn't guarantee a full private history.

Keep periodic exports where available, with post URLs, collection dates and the original column names. X's Post Activity Dashboard documentation specifies UTC/GMT for its exports and says metrics can take up to 36 hours to stabilize. Those details can explain a mismatch between today's dashboard and yesterday's file without any change in your content.

Before investigating a sudden drop, check whether both reports cover the same dates, time zone, post types and organic or paid activity. Also check whether a report measures activity during the selected period or lifetime results for posts published during that period. Those can produce very different totals.

If the measurements agree and replies still show an unusual loss of visibility, investigate that separately. The Twitter shadowban article covers search and conversation checks. An analytics dip alone can't identify a restriction.

Finish the review with something specific to try

A useful review ends with a decision you couldn't have made just by looking at the biggest number.

Perhaps practical examples generated fewer impressions but more relevant questions and website visits. Write another example on a related problem. Perhaps profile clicks were strong, but the profile no longer matched the subject attracting people. Update that mismatch. Perhaps a new format looked promising until you removed the one unusually successful post from the comparison. Gather more evidence before replacing everything else.

Choose one main change at a time and write down what would make you keep it. For a newsletter post, that might mean more attributed signups across several comparable posts. For a discussion, it might mean thoughtful responses from people in the field. Neither requires chasing every available metric.

The next time you open Twitter Analytics, start with the question left over from the previous review. Did that change help? That is a better reason to open the dashboard than checking whether yesterday's graph is still going up.