千次展示成本计算器

用广告花费除以曝光次数再乘 1000,算出千次展示成本 CPM;同时反推达成目标曝光需要多少预算、按目标 CPM 能买到多少曝光,并折算每千次可见展示成本 vCPM 与单次点击成本。所有计算都在你的浏览器里完成。

千次展示成本 CPM(元)50 万曝光对应花费(元)单次曝光成本(元)

提示:在任意输入框里按 Enter 即可计算。曝光为 0 时不会静默归零,会直接告诉你除数为 0。

使用方法

  1. 在「广告花费(元)」里填这一轮投放实际花掉的钱,示例填 1500。
  2. 在「曝光次数(次)」里填广告被计入展示的总次数,示例填 500000(50 万次)。
  3. 点「计算」,或在任意输入框里按 Enter,上方立刻给出千次展示成本(示例结果为 3.00 元/千次)与单次曝光成本(示例为 0.003 元)。
  4. 想知道「再投 200 万次要多少钱」,就在「目标曝光」填 2000000,结果区会给出按当前 CPM 折算的预算(示例为 6000.00 元)。
  5. 想知道「6000 元能买多少曝光」,就在「可用预算」填 6000、「目标 CPM」填 3,结果区给出可买曝光(示例为 2,000,000 次)。

这个千次展示成本计算器能解决什么问题

投完一轮广告,后台给的是「花了多少钱」和「展示了多少次」两个原始数字,但媒体报价单、行业 Benchmark、代理公司的结算口径全都用「每千次多少钱」说话,两者对不上就很难判断这轮买贵了还是买便宜了。这个千次展示成本计算器主要处理四类情况:一是把一轮投放的花费和曝光换算成千次展示成本,拿去和媒体报价单或行业基准直接比对;二是在 CPM 固定的前提下反推预算——先定要触达多少人次,再倒推该准备多少钱;三是在预算已经批下来的情况下反推能买到多少曝光,判断这个量级够不够铺完计划;四是把 CPM 和点击率、可见率放到同一个算式中,折算成单次点击成本和每千次可见展示成本,看真实的触达单价。

本页只做「曝光维度」的折算。如果你要算的是按点击付费的单次点击价格、按转化付费的单次行动成本、或者整轮投放的广告回报倍数,本页不直接给出,用页面底部列出的专门计算器更合适。

原理与规则说明

核心公式只有一条:CPM = 花费 / 曝光 × 1000,与页面数据源里登记的表达式 c/i*1000 完全一致。它不涉及任何迭代或拟合,是一次除法加一次乘法,所以不存在收敛误差,唯一的误差来源是浮点表示本身。

中间量是单次曝光成本:花费 / 曝光 先得到「一次展示值多少钱」,再乘 1000 抬到千次口径。本页把这两个数都显示出来,是因为单次曝光成本通常在 0.001 元这个量级,位数太多不便于口头沟通,而千次口径把小数点后移三位,正好落在 1~100 的易读区间。

为什么乘的是 1000 而不是 1024:CPM 的全称是 Cost Per Mille,其中的 Mille 来自拉丁语「一千」,是严格的十进制 1000,和存储容量里 1 KB = 1024 B 的二进制进位没有任何关系。这一点在跨境投放时尤其要留意,海外媒体报价单上的 CPM 一律按 1000 计。

展示的计数口径:一次「曝光」到底算什么,由行业机构而非算术定义。美国互动广告局 IAB 与媒体评级委员会 MRC 对展示广告的可视曝光给出的门槛是:广告素材至少 50% 的像素出现在可视区域内,且连续停留不少于 1 秒;视频广告则要求 50% 像素连续播放 2 秒。所以后台导出的曝光数和你按「用户真的看见」定义的曝光数常常不是同一个数,混用会让 CPM 相差一倍以上。

vCPM 与 CPC 是同一条公式的两次变形。把可见率 vr(百分数)代进去:vCPM = CPM ÷ (vr ÷ 100)——因为 1000 次曝光里只有 1000 × vr ÷ 100 次真正被看见,同一笔钱摊到更少的可见次数上,单价必然被抬高。示例里 CPM 为 3.00 元、可见率 70%,vCPM 就是 3 ÷ 0.70 = 4.2857,保留两位为 4.29 元。再把点击率 ctr(百分数)代进去:CPC = CPM ÷ (1000 × ctr ÷ 100),示例里 CPM 为 3.00 元、点击率 0.5%,即 1000 次曝光换来 1000 × 0.005 = 5 次点击,3 ÷ 5 = 0.60 元。这两条变形都是同一笔花费在不同分母上的重新分摊,输入变了结果就变,本页不缓存任何历史值。

完整示例(数值仅作演示)

示例条件:广告花费 1500 元,曝光次数 500000 次,目标曝光 2000000 次,目标 CPM 3.00 元/千次,可用预算 6000 元,可见率 70%,点击率 0.5%。逐项算下来:

这组数字刻意做成闭合的:反推预算得到的 6000 元,正好是「可用预算」那一栏填的值;按这个预算反推出的 200 万次曝光,也正好是「目标曝光」那一栏填的值。你可以改其中任意一个数字,观察另外两个反推结果怎么联动,用来快速验证自己手里的报价单是否自洽。以上数值仅作演示,不代表任何媒体的真实报价或当前行情。

输入范围与对照表

下表固定曝光为 500000 次,逐档列出不同千次展示成本对应的总花费与单次曝光成本。表格默认显示 12 行,点「加载更多」展开全部 16 行,也可以导出成 CSV(带 BOM,Excel 直接打开不乱码)。

千次展示成本 CPM(元)50 万曝光对应花费(元)单次曝光成本(元)
15000.0010
210000.0020
315000.0030
420000.0040
525000.0050
630000.0060
840000.0080
1050000.0100
1260000.0120
1575000.0150
1890000.0180
20100000.0200
25125000.0250
30150000.0300
40200000.0400
50250000.0500

常见口径混用对照:CPM 的分母是曝光,CPC 的分母是点击,CPA 的分母是转化,vCPM 的分母是可见曝光。四个指标算的是同一笔钱,但分母不同,数值之间没有可比性——同一个 3.00 的数字,放在 CPM 里是「千次 3 元」,放在 CPC 里是「一次点击 3 元」,相差 1000 倍的分母。

输入范围、边界与精度说明

常见问题

为什么我算出来的 CPM 和媒体后台显示的不一样?

最常见的原因是曝光计数口径不同:媒体后台可能按「请求数」「下发数」或「通过 MRC 可视标准的可视曝光数」统计,三者可以相差一倍以上。先确认后台导出的字段到底是哪一个,再填进「曝光次数」;如果后台给的是可视曝光,那你应该关注的是 vCPM 而不是 CPM。

CPM 是越低越好吗?

不一定。CPM 只衡量「触达一千人花了多少钱」,不衡量这一千人里有多少人会点击或下单。低价流量常常意味着人群宽泛或位置欠佳,实际转化成本反而更高。要判断贵贱,需要把 CPM 和点击率一起看,折算成单次点击成本甚至单次行动成本再比。

vCPM 为什么总是比 CPM 高?

因为分母变小了。1000 次曝光里只有可见的那部分被计入 vCPM,同一笔花费摊到更少的可见次数上,单价必然被抬高,抬高倍数是 1 除以可见率。示例中可见率 70%,3.00 元就被抬到 4.29 元;可见率降到 50%,同样的 3.00 元会变成 6.00 元。

反推出来的预算能直接拿去做投放计划吗?

只能当作量级参考。反推公式假设 CPM 在整个投放周期内保持不变,而实际竞价中 CPM 会随人群竞争、时段和频次上升。建议按反推值上浮一定比例做预算缓冲,并在投放中期用真实花费和曝光重算一次 CPM,再修正后半程的预算。

曝光填 0 为什么不是算出 0,而是报错?

因为花费除以 0 在数学上没有定义,在 IEEE 754 浮点规则下会得到 Infinity。如果这时显示成 0,你会误以为「不花钱也能买到曝光」,这比报错危险得多。本页用 Number.isFinite 判断,非有限值一律拦下并指出是「曝光次数」这个字段的问题以及允许范围。

CPM 里的 M 是百万还是千?

是千。Mille 在拉丁语里是一千,罗马数字 M 也表示 1000。广告行业的 CPM(Cost Per Mille)和印刷行业按千份计价的惯例一脉相承,都按 1000 计。真正表示百万的是 MM(千个千),在财务报表里偶尔出现,广告计价里不用。

这个页面会把我填的花费和曝光上传吗?

不会。全部逻辑就是一次除法加一次乘法,加上 Number.isFinite 和 toFixed,没有任何网络请求,也没有引入第三方库。你可以打开浏览器的开发者工具,在 Network 面板里确认这个页面加载后不再发起任何请求。

为什么小数位改成 0 之后单次曝光成本还是显示小数?

这是刻意的设计。单次曝光成本通常在 0.001 元量级,若也按 0 位保留会一律显示成 0,等于把有效信息抹掉。所以本页对 CPM 用你设定的小数位,对单次曝光成本固定多用两位,保证小额投放仍然可读。

相关工具