很可能,您的上下文广告支出报告中没有区分新客户和现有客户,因此您不清楚在吸引新客户和保留现有客户上各花费了多少。这可能导致您无法从现有客户身上获利,反而将全部利润用于吸引新客户。关于如何在电子商务中按新老客户维度管理经济效益,将由帕维尔·科里亚金(Pavel Koryakin)进行讲解。
例如,我们可以将首单的全部毛利用于吸引新客户,因为他们很可能进行复购并带来利润。但我们不能将全部毛利用于重复吸引同一客户,否则我们将无利可图。
文章末尾提供了简单有效的工具,接下来我将通过图片结合我朋友维基的例子来解释相关理论。
1月,维卡通过搜索引擎广告来到我们的网店,购买了一双价格为1万卢布的女鞋。其中2000卢布是我们的毛利,扣除广告费用后,我们获得1000卢布的毛利润。
似乎,一切都清楚了。
因为我们的商店深受维卡喜爱,她于二月再次光顾,又买了一双价值1万卢布的鞋子。这次她是通过免费搜索找到我们的,因此由于无需支付广告费用,我们的利润翻了一番。如今,维卡已成为我们的常客。
现在,让我们用表格来反映同样的内容,并得出 LTV 和 CAC。简单来说,LTV 是我们在整个时间段内获得的利润,而 CAC 是我们用于留住维基(Vika)的成本。
由此可见,在整个期间我们花费了1000卢布(获客成本CAC),而获得了3000卢布(客户终身价值LTV)——维卡为您带来了利润!
3月,维卡通过再营销再次来到我们这里,购买了价值1万卢布的鞋子,但我们为此花费了2千卢布用于吸引她,因此3月的利润为零 :(
于是我们不禁要问:为什么我们在Vika身上花了2000卢布却收益为零,而此前她曾带来利润?如何加以控制,以确保每位客户都能保持正向收益?——我们需要编制一张类似的表格,但不再仅针对Vika,而是涵盖所有用户。
构建按用户群划分的收入报告
最终我们将得到下表,其中各列分别显示来自维基(Wiki)在1月、2月等的收入。唯一的规范性在于,现在我们将“维基”称为一个队列(cohort),具体为1月队列,因为它首次出现在我们这里是在1月。
基于 Google Analytics 的数据
为此,我们将从 Google Analytics 导出以下报告。为简化起见,报告中仅包含维卡(Vika)的数据。
可能的问题
“我没有 User ID”
理想情况下,应将其作为 custom dimension(自定义维度)与交易数据一起传递给 GA。
但现实世界并非如此完美,因此可以通过 VLOOKUP 根据 CRM 或 1C 数据库中的交易标识符来获取该值。
用户“合并”
通常情况下,在 1C 中用户不会被“合并”,或者仅通过电话号码进行合并,而不包含电子邮件和姓名。例如,如果维基有两个电子邮件地址,我们就无法将她的数据关联起来。
最好的情况下,我们只能匹配 70% 的客户;其余客户会使用不同的电子邮件、电话和地址,导致我们无法将它们“匹配”在一起。
“我在 GA 中的收入数据不正确”
如果从网站传入 CRM 的订单被取消,且金额和构成发生变化,则需要从服务器向 GA 传递正确的数据。10% 以内的偏差尚可接受,但如果偏差达到 30%,则必须解决。
在表格中添加第一组数据的日期
为此,只需以 Google Sheets 为例,使用以下参数构建一个透视表。也就是说,我们为每个 User ID 提取首次购买的日期。
得到:

接下来,通过 VLOOKUP 按 User ID 将此日期提取到总表的 Когорта(群组)列中。
一切就绪,只需添加一个月份列。
构建群组报告,得到:
目前我们的群组中只有维卡和她的高跟鞋,让我们以类似的方式查看一个拥有更多客户的报告作为示例。
也就是说,在 群组 列中,我们可以看到用户的首次购买日期,而在 月份 列中,则显示了指定月份内的重复购买总额。
可能出现的问题
我希望看到的是毛利,而不是收入!
可以取各商品组的平均毛利率并乘以收入,但这样画面仍然会模糊不清 :( 因此最恰当的方法是,在与收入同时从 CRM 传输到 Google Analytics 的交易 tax(税费)字段中,一并传递毛利(收入-成本)。
无法导出数据,我遇到了采样问题
请使用 ETL 服务,或通过 Google SpreadSheets Addon 每天单独导出,或每次按 7 天为单位导出。
好的,还不错,但我们需要弄清楚我们在吸引和留住维基上花了多少钱?
本质上,我们需要构建一个类似的队列报告,其中将收入替换为支出:维基首月的获客成本,以及后续通过再营销等手段的重复获客成本。
但我们面临一个问题:如何将点击成本归因于交易,因为交易本质上就是客户,我们不妨继续称它们为客户。
1月,我们花费1000卢布获得了10次点击,据此计算,获取一位“维卡”(Vika)用户的成本为1000卢布。但实际情况并非完全如此,因为我们还吸引了另外9名用户,每位成本为100卢布,但他们并未购买任何商品,因此我们将所有支出都计入了“维卡”这一用户身上。
那么,这合乎逻辑吗?
是的,阿丽娜也合乎逻辑地出现了,她也买了鞋,1000卢布已经分成了两笔交易。
随后会出现各种广告渠道,由于它们的工作方式不同,平均分配支出是不公平的,因此我们按渠道进行分配。
随后,来自VKontakte的斯韦塔也加入了。她一直是我们公司的老客户,但这次她并没有购买任何商品。然而,我们确实为吸引她投入了广告费用,因此将VKontakte的全部花费在阿丽娜和斯韦塔之间平分是合理的。
如您所见,现在我们的支出不仅用于吸引新客户,还用于留住老客户,也就是斯维塔!接下来,这350卢布将计入斯维塔的后续交易中。
替代性留存示例:
现在,让我们尝试添加不同的月份,计算将不仅按渠道进行,还将按时间段进行。
也就是说,当我们试图将费用分摊给客户时,会遇到一系列困难:
- 12月我们应将Yandex Market的费用归集到哪个用户名下?因为当时没有任何用户。
- 为什么我们按月份范围分摊费用,而不是按周?
- 如果客户未在网站登录或通过其他设备访问,我们将无法识别该客户,因此也不会计入相关费用。
- 如果客户在首次交易前多次访问,我们需要根据新数据重新计算回溯期(retrospective)。
这些问题以及其他一些任务无法在 Excel 中解决,因此我决定用 Python 编写计算代码。但我不提供代码,因为其中逻辑复杂难以理解,而且也没必要去深究——我们应该寻找更简单的解决方案。
让我们回到与 Vika 相关的表格
假设我们在最右侧的最后一列成功将费用归因于 Vika。
当我们拥有按月统计的 Vika 相关费用和收入时,就可以轻松计算所有衍生指标。
我们得到了一个类似的群组报告(cohort report),其中不仅包含收入,还包含我们在 1 月吸引的客户群体的相关费用。
附上一个更复杂项目的示例结果,其中行显示的是“Cohort”,即我们首次吸引客户的月份,而列显示的是用于维持这些客户的各月费用。
例如,在 2019 年 12 月,我们为那些在 2018 年 8 月完成首次交易的用户支付了 3910 卢布的留存费用。
可以看出,归属于之前月份的费用并不多,但这源于该在线商店的业务特性,他们主要面向新客户开展业务。
现在来看看按群组划分的毛利润:「收入 * k - 留存费用」
计算 ROI 并不困难,新老群组的 ROI 大致相同。
数据可按广告渠道进行筛选。例如,在下图中,定向广告的毛利润显示,近一半的利润来自旧用户群的回头客。
好的,既然我们看到了这些数字,接下来该怎么做?
你可以看到从获客到客户整个生命周期内的利润和 ROI。实际上,毛利润正是由这些用户群构成的。最常见的问题是留存成本超过了边际利润,即我们为留住老客户所花费的成本与获取新客户一样多。
能否自动生成此类报告?
目前尚无“开箱即用”的工具,因为每个项目的定制化程度差异很大。但可以使用 OWOX、Renta 或 SegmentStream 等工具来构建此类报告,粗略估算每月成本至少为 500 美元。
第二个问题在于准确性。如果能在网站上将客户身份匹配准确率至少达到 70%,那就算不错了。
针对这个问题有哪些简单有效的解决方案?
下面我将以 Yandex Direct 为例,说明如何区分其经济效益。类似的方法也适用于 Google Ads、Facebook 等平台。
需要将回头客的电子邮件和电话号码导出为 CSV 文件并上传至服务器,然后将该文件作为受众群体导入 Yandex Audiences(Yandex 受众)。可以通过 API 自动化这一流程,或者建立多个回头客列表,以便将其划分为 RFM 细分群体:高价值、中等价值和低价值群体,以及结合您业务的具体特性。
在 Yandex Direct 的广告系列设置中,对回头客受众进行调整。例如,如果您愿意为新客获取投入 1000 卢布,而为复购投入 500 卢布,则调整系数应为 -50%。
随后,在 Yandex Direct 的报告生成器中,可以查看按回头客和新客划分的数据。截图中,“所有时间的买家”指的是回头客,而“—”代表其他所有用户。
可以看出,回头客的单次获客成本为 300 卢布,而其他所有用户则为 831 卢布。这是因为我们可以预期新客户的复购行为,从而愿意为获取新客户支付更高的费用。
类似的报告可以在 Power BI 中构建,通过 API 从 Yandex Direct 导出数据,因为在界面中难以深入分析这些数据,但这又需要另写一篇文章了。
结论
- 不要将全部利润率都用于客户留存,而是通过调整受众来管理经济模型。如今,几乎所有广告系统都具备这一功能,这是一个简单且高效的工具。
- 追踪那些能带来新客户的广告渠道,而不是像CPA网络那样经常向你出售已有客户。

