推特数据分析:那些数字到底是什么意思,以及怎么自己算
推特数据分析:那些数字到底是什么意思,以及怎么自己算
X 给了你一个数据分析页。上面有展示量、互动量、一个比率,还有一张上下起伏的图。
大多数人看一眼,注意到某个数字动了,然后关掉页面。不是因为懒 —— 而是因为自带的这个视图回答的,几乎不是任何人真正在问的那个问题。
人们真正的问题是比较性的:这个月比上个月做得好吗?比我们盯着的那些账号好吗?这几条里哪种值得多做? 自带分析从结构上就无法回答这里的任何一个,而在动手找工具之前,值得先搞清楚为什么。
免费能拿到什么,以及到哪就没了
登录后打开 analytics.x.com,你能看到展示量、互动量、互动率、主页访问、新增粉丝,还有逐条推文的拆分。
要快速看一眼自己最近发的东西,这够用。它是真实数据,直接来自源头。
但你会很快撞上三堵墙:
只有你自己。 你看不到任何其他人的分析数据。竞品不行,你所在领域的账号不行,那个你正想搞懂其内容套路的人也不行。对别人,你只能看到推文上公开的那部分。
历史很浅。 这个界面是围绕"最近一段时间"设计的。要做同比,或者要回答"三月那次活动期间我们表现如何",前提是你一直在导出。
导出很别扭。 CSV 导出是有的,但结构不好用,不同视图之间列的含义还会变,而且没法定时导。任何周期性的事,都要靠有人记得去点那个按钮。
★问题不在于数字是错的。而在于分析天然是比较性的,而自带视图只给你一个被比较对象。★
补上这个缺口,意味着要拿到自己之外那些账号的公开推文数据 —— 而这正是我们的 API 存在的意义,如果你想直接跳到动手那部分的话。
这些指标到底在衡量什么
值得精确一点,因为其中好几个经常被误读。
展示量(Impressions) —— 推文在某人屏幕上被渲染了多少次。不是独立人数;同一个人划过去两次就算两次。把它当作"大致触达",而不是受众规模。
互动量(Engagements) —— 任何类型的互动总数。它比大多数人以为的要宽:包括链接点击、主页点击、话题标签点击、图片展开、详情展开,而不只是点赞和转发。互动量很高但可见点赞很少,通常意味着人们点了什么东西。
互动率(Engagement rate) —— 互动量除以展示量。这是最值得看的那个数字,因为它做了归一化。一条 50 万展示量拿到 200 赞的推文,表现其实不如一条 5,000 展示量拿到 50 赞的。
主页访问 —— 点进你主页的人。这是整组指标里最接近"意图"的一个。读到一条推文是被动的;点你的名字说明他想知道你是谁。
浏览量(Views) —— 每条推文下面公开显示的那个数。和展示量大致是一回事,而且关键在于 ★它在所有人的推文上都可见,不只是你自己的★。正是这个指标让外部分析成为可能。
⚠️ 人们最常犯的错: 拿不同体量账号之间的原始互动数做比较。一个 500 粉丝拿到 40 赞的账号,表现胜过一个 50 万粉丝拿到 400 赞的。下结论之前一定要先除以点什么 —— 粉丝数、展示量、浏览量都行。
值得做的分析
如果你要动手做点什么,下面这些才是真正会改变决策的问题。
1. 哪种形式对我们有效? 把自己的推文按形态分组 —— 纯文字、单图、视频、长贴开头、带链接 —— 然后比较每组的互动率中位数。要中位数不要平均值:一条爆款会把平均值拽到毫无意义。
2. 我们该几点发? 按小时和星期几分桶,再看每个桶的互动率。⚠️ 注意这里的陷阱:如果你历来只在早上 9 点发,那你手上根本没有关于下午 3 点的数据。你测的是自己的习惯,不是受众。
3. 和我们盯着的那些账号比怎么样? 拉一组同领域账号的公开推文,算每粉丝互动量,然后排序。这正是自带页面完全做不到的分析,而它通常是最有用的那个。
4. 什么东西真的在传播? 按"转发数 / 点赞数"的比值排序。这个比值高,说明人们觉得它值得传出去而不只是点个认可 —— 这是一个和原始点赞数不同、且更有价值的信号。
5. 这个趋势是真的还是噪音? 比较滚动窗口,不要比相邻两天。大多数账号的日度数字都被方差主导;7 天滚动中位数能告诉你日环比给不了的东西。
动手做
接口返回的每一条推文都已经带着它的互动数据 —— 点赞、转发、回复、引用和浏览量 —— 所以把一个账号的时间线扫一遍,上面那些分析所需的数据就齐了。
import requests
from collections import defaultdict
from statistics import median
BASE = "https://api.socialapi.tech"
KEY = "your_api_key"
def fetch_posts(username, limit=100):
r = requests.get(
f"{BASE}/v1/user/last_tweets",
params={"username": username, "limit": limit},
headers={"X-API-Key": KEY},
timeout=60,
)
r.raise_for_status()
return r.json()["data"]
def engagement_rate(post):
"""互动量 / 浏览量。刚发出的推文浏览量可能为 0。"""
views = post.get("view_count") or 0
if not views:
return None
interactions = (
post.get("like_count", 0)
+ post.get("retweet_count", 0)
+ post.get("reply_count", 0)
+ post.get("quote_count", 0)
)
return interactions / views
posts = fetch_posts("nasa", limit=100)
rated = [(p, engagement_rate(p)) for p in posts]
rated = [(p, r) for p, r in rated if r is not None]
print(f"{len(rated)} 条有浏览量数据")
print(f"互动率中位数: {median(r for _, r in rated):.2%}")
print("\n互动率最高的 5 条:")
for post, rate in sorted(rated, key=lambda x: -x[1])[:5]:
print(f" {rate:.2%} {post['like_count']:>6} 赞 {post['text'][:60]}")
为什么用浏览量做分母而不是粉丝数: 粉丝数是个虚荣分母 —— 它把三年前关注了你、之后再没打开过 App 的人也算进去。浏览量算的是这条推文实际触达到的人。 对浏览量算率,是更诚实的那个版本。
同一段循环对任何公开账号都成立,这正是竞品对比得以可能的原因。往回多翻几页能给你更长的基线。
做账号之间的横向对比
真正有用的那个版本 —— 对一组账号跑同一套测量再排序:
def profile_summary(username):
posts = fetch_posts(username, limit=100)
rates = [r for r in (engagement_rate(p) for p in posts) if r is not None]
if not rates:
return None
return {
"username": username,
"posts": len(posts),
"median_rate": median(rates),
"best_rate": max(rates),
}
WATCHLIST = ["nasa", "esa", "spacex"]
rows = [s for s in (profile_summary(u) for u in WATCHLIST) if s]
for row in sorted(rows, key=lambda r: -r["median_rate"]):
print(f"{row['username']:>12} 中位 {row['median_rate']:.2%} 最佳 {row['best_rate']:.2%}")
★这告诉你的、自带页面给不了的东西是:表现差的这个月,问题是你,还是整个品类。★ 如果你追踪的所有人都在跌,那是平台或季节因素。如果只有你在跌,那才是你的问题。
两个必须说清楚的局限
你看不到别人的展示量。 浏览量是公开的,但 X 内部定义的展示量不是。对于外部账号,你用的是浏览量 —— 拿来做比较足够接近,但和他们自己后台看到的数字并不相同。
历史深度是有限的。 你可以往回翻时间线,但翻不到底。如果你想要两年的基线,拿到它的办法是现在就开始采集 —— 和做存档时是同一个不对称。往回重建是有损的,往前捕获才是完整的。
没有人能给你任意账号完整的多年互动历史,任何暗示自己能做到的工具,都是在从一份残缺的索引里做重建。
大家会问的问题
怎么看我的推特数据分析?
登录后访问 analytics.x.com,或者点单条推文上的分析入口。只覆盖你自己的账号。
推特数据分析免费吗? 对自己的账号是免费的。付费档增加的是深度,不是准入。
能看别人的分析数据吗? 看不到他们的私有后台。你能看到他们推文上的公开互动数据 —— 点赞、转发、回复、引用、浏览量 —— 这些做比较已经够了。
推特互动率多少算好? 非常依赖账号体量和领域。小号常见百分之几;超大号往往远低于百分之一。要和你自己的历史、你自己的品类比,而不是和某个published的基准比。
互动率怎么算? 互动量除以展示量。从外部做的话就用互动数除以浏览量,是同一个思路的公开数据版本。
什么算一次互动? 比人们以为的多:点赞、转发、回复、引用,外加链接点击、主页点击、标签点击和图片展开。
展示量是什么? 推文在屏幕上被渲染的次数。不是独立人数 —— 一个人可以贡献好几次。
展示量和浏览量有什么区别? 实际上很接近。浏览量是推文下面那个公开数字,展示量是你自己后台里的内部指标。能用在别人账号上的是浏览量。
推特分析能回溯多久? 界面是围绕最近一段时间设计的。要做长期对比,前提是你一直在导出。
能把推特分析导出成 CSV 吗? 能,在分析界面里手动导。没有定时导出 —— 周期性报表要么靠接口,要么靠有人每周去点一次。
最好的免费推特分析工具是什么? 自己账号的话,就是自带那个。除此之外,要么用托管工具,要么自己从公开数据算。
怎么追踪竞品表现? 拉他们的公开推文,算每浏览量的互动率,然后按时间对比。他们的粉丝数远没有他们的率重要。
我的展示量为什么掉了? 通常是发布频率、形式变化或时间点。去看看你追踪的那些账号是不是也掉了 —— 如果大家都掉,那就不是你的问题。
我该几点发? 你自己的数据说几点就几点。那些published的"最佳时间"是跨越差异极大的受众取的平均值。按小时分桶比较率 —— 但前提是你真的在不同时间发过。
算法偏爱某些形式吗? 不同形式表现确实不同,而且会变。与其相信某个笼统结论,不如在你自己的账号上测一遍 —— 扫一遍时间线就够了。
怎么衡量一个话题标签或一次活动? 搜索它、收集这些推文、再把互动数据汇总起来。那是活动层面的衡量,不是账号层面的。
能拿到单条推文的分析数据吗? 能 —— 每条推文都自带它的点赞、转发、回复、引用和浏览量。
我的数字和某个第三方工具对不上,为什么? 通常是分母不同。有的对粉丝数算率,有的对展示量,有的对浏览量。在把差异当成错误之前,先看清除号下面是什么。
我该追踪粉丝数还是互动量? 互动量。粉丝数是个变化缓慢、还可能注水的存量数字;互动量才是当下正在发生的事。追踪粉丝变化值得单独做,但那是为了另一个目的。
多久看一次? 做决策的话每周一次,只有在跑时效性很强的事情时才需要每天。日度数字大部分是方差。
能自动出报表吗? 能 —— 这正是"自己算"而不是"看看板"的主要理由。定时拉取、存下来,基线就会自己长起来。
怎么看单条推文的分析数据? 点你自己那条推文下面的分析图标。别人推文的分析拿不到 —— 你能看到的是他们的公开计数。
有推特分析看板吗? X 自带的那个只覆盖你自己的账号。任何能给你看多账号看板的东西,都是从公开数据算出来的,和上面代码的做法一样。
怎么拿到粉丝数的历史变化? X 不为你存粉丝历史。 你得靠定时记录来建立它 —— 见粉丝追踪。
能拿到别人账号的分析数据吗? 拿不到他的私有后台。他的公开互动是可见的,而每浏览量互动率是可比的指标。
推特 stats 是什么? 每条帖子上的计数,加上资料页上的总数。 ★公开的那些对任何人都可读★;私有后台只属于你自己。
怎么查看推文数据? 每条帖子都带回复、转发、引用、点赞和浏览量。 ★这五个里有四个在任何人的帖子上都是公开的。★
有推特数据追踪工具吗? 任何轮询并存储计数的工具都是。 ★价值在于你积累起来的历史★ —— 平台不为你保留任何历史。
怎么看账号分析数据?
自己的在 analytics.x.com。 ★对任何其他账号,改用公开帖子数据算出来。★
有互动率计算器吗? 它就是一次除法: 互动数 ÷ 浏览量。★不需要任何工具★ —— 这个比率是什么意思。
多少互动率算好? ★和你自己的历史比,不要和公布的基准比★ —— 互动率随受众规模和话题变化极大。
互动率怎么算? (回复 + 转发 + 引用 + 点赞) ÷ 浏览量。 ★用浏览量,不要用粉丝数★ —— 粉丝数会高估触达。
为什么我的分析数据和第三方工具不一样? ★分母不同 —— 展示量 vs 浏览量★ —— 这个区分。
能长期追踪分析数据吗? 只有你自己记录了才行。 ★一次读数不构成一个序列★ —— 按固定间隔采样。
怎么追踪粉丝分析数据? 定时给计数和列表拍快照 —— 追踪怎么做。
能拿到竞品的分析数据吗? 他的公开互动可以;他的后台不行。 ★每浏览量互动率才是可比的那个数。★
推特分析数据准确吗? 作为计数是准确的。 ★它不告诉你的是其中有多少是真人★ —— 机器人那个问题。
能用这些数据做情绪分析吗? 你可以取回文本自己分析。 ★对短帖子做自动情绪判断,不可靠到值得直说。★
最有用的单个指标是什么? ★每浏览量互动率。★ 它在不同体量的账号之间可比;原始计数不可比。
分析数据能回溯多远? 后台偏向近期窗口。 ★要更长的历史,自己记录★ —— 存档的现实。
如果你要做这套东西
分析本身不难。真正花时间的是它底下的采集:不会静默截断的翻页、能让你和上个月做对比的存储,以及能把限流和真实失败区分开的重试。
这正是我们的 API 在处理的 —— 每条推文返回时就带着完整互动数据、基于游标的翻页、固定按次价格、没有属于你的限流要管。它是只读的:只读取公开数据,绝不对你的账号做任何操作。
有两种情况我们不收钱:请求还没发出去就被我们拒绝的,以及我方原因导致的错误。
延伸阅读:实时监控关键词与账号 · 用于活动衡量的高级搜索操作符 · 获取 X 数据的每一种途径对比。