乐于分享
好东西不私藏

我是怎么用一个Excel宏判断关键词相关性的(不依赖ABA,不依赖第三方工具)

我是怎么用一个Excel宏判断关键词相关性的(不依赖ABA,不依赖第三方工具)
这篇东西说起来其实,不复杂。

我做这个的起点很朴素:SIF的相关性判定逻辑我很认可,但用起来有一道隐形的墙——它的核心依赖ABA数据(或者说有足够搜索量的词)。你广告跑出来的新词、竞品反查出来的长尾词、买家实际在用但平台还没"承认"的搜索词……这些词的相关性,ABA告诉你的是一片空白。

对于做精细化广告运营的人来说,这道墙很烦。

所以我自己拼了一套轻量的方法,把相关性判断这件事从"等平台告诉你"变成"自己去看"。用的工具说出来很寒碜:买家账号、一个自己写的浏览器插件、一个Excel宏函数。

但这套东西跑下来,我觉得比很多高级工具的相关性评分更接近真相——因为它还原的是买家实际看到的搜索结果,不是数据库里的统计快照。

写出来给大家参考,不一定适合所有人,但底层逻辑我觉得是站得住脚的。


先聊聊"相关性"到底在说什么

在亚马逊的语境里,"关键词相关性"这个词被说烂了,但很多人说的其实是不同的东西。

有人说的是listing文本相关性——你的标题里有没有这个词、后台关键词有没有收录。有人说的是算法意义上的相关性——A9/A10认不认为你的产品应该在这个词下出现。还有人说的是流量意义上的相关性——这个词的流量里有没有可能买你东西的人。

这三层是不同的,有时候甚至互相矛盾。

我这篇讲的是第二层:算法意义上,这个关键词的搜索结果页面,跟你的竞品池重叠有多高

为什么关注这个?因为亚马逊的搜索结果页本质上是算法对"搜这个词的买家想要什么"的一次集体判断。如果一个关键词的第一页结果,跟你预设的竞品池高度重合,说明算法认为这个词的意图跟你这个品类高度对齐。反过来,如果第一页里你的竞品只有两三个,剩下都是其他品类的产品,那这个词大概率是个边缘词或者跨品类词,你在上面花的精力要打折扣。

SIF做相关性判断的底层逻辑也是这个 ——统计目标关键词与参照词在第一页自然排名中的同款ASIN重合比例。原理上跟我这套是一致的,只是数据来源不同。


ABA的局限在哪里

我不是要否定ABA,ABA品牌分析是亚马逊官方给到卖家最有价值的数据接口之一,这个毋庸置疑。

但做运营时间长了,你会发现ABA的数据有几个结构性的缺口:

第一,覆盖范围的问题。 ABA收录的是有足够搜索量、且达到平台展示门槛的关键词。大量的长尾词、新兴词、地域性词,在ABA里直接消失。这对新品期、打长尾策略的运营来说是个硬伤——你最需要判断相关性的那批词,往往是ABA最不覆盖的。

第二,数据周期的问题。 ABA是过去一段时间的统计数据,反映的是历史状态。广告跑出来的新词,节假日突增的场景词,竞品新打法带出来的流量词……这些词的"当下相关性",ABA的时间粒度捕捉不到。

第三,可操作性的问题。 ABA数据是以词为视角的,你要知道某个词现在的相关性,需要在系统里查、导出、处理,流程不短。如果你手上有一批广告词需要批量判断,逐个查ABA效率极低。

这不是在黑ABA,ABA有它无可替代的价值,特别是选品调研阶段。但对于广告运营中高频出现的相关性判断需求,ABA覆盖不到的地方,需要自己另外想办法 。


我这套方法的底层逻辑

说起来很简单:用买家视角去搜索,数出来的结果就是答案

核心公式:

相关性得分 = 命中数 ÷ 第一页结果总数

"命中数"是指:搜索这个关键词,第一页返回的ASIN里,有多少个落在你预先定义的"竞品池"里。

举个例子:你搜某个词,第一页出来48个结果,其中有22个是你竞品池里的产品,那这个词的相关性得分就是22/48 ≈ 45.8%。

这个逻辑的合理性在于:亚马逊第一页的展示结果,是算法对"这个词背后的购买意图"的实时判断。如果这个品类的主流竞品在这个词下大量出现,说明算法认为这个词属于这个品类 。反之,如果第一页里大量是其他品类的产品,说明这个词的意图并不单一,或者这个词跟你的品类相关性弱。

这个判断完全不依赖ABA,不依赖任何第三方数据库,依赖的只是当下的搜索结果。新词可以用,长尾词可以用,广告跑出来昨天才第一次见到的词也可以用。


竞品池怎么定义——这一步比宏函数重要

先说清楚:竞品池定义错了,后面的分数没有意义。

竞品池是什么?就是一组ASIN,你认为这些产品跟你的产品在同一个竞争层面上。这个定义听起来简单,但实操里是最需要主观判断的一步。

两种主流的定义方式,我都见过人用: 一是严格同款竞品——只选跟你产品功能完全重合、目标买家高度一致的ASIN。这种池子通常比较小,20-50个ASIN,但精准度高。用这种竞品池算出来的相关性得分,解读更干净:高分代表这个词真的属于你的细分市场。

二是大类目范围竞品——选整个品类下的主流产品,可能有100-200个ASIN甚至更多。这种池子的好处是召回率高,不容易漏掉隐性竞品,但也会引入一些模糊地带——同一个大类目下其实有多个差异化的细分,混在一起算的话,分数的解读需要更谨慎。

我们的判断是:做广告运营,用严格同款竞品池更合适。 原因是你最终的决策是:这个词打不打、出价多少、要不要否掉。这类决策需要清晰的信号,模糊的池子给出来的模糊得分,指导意义有限。

维护竞品池也是个需要定期做的事。竞品有新品入场,有老产品下架,有产品线调整。我的习惯是每一两个月更新一次竞品池,大的市场变化发生时(比如新竞品突然起量)随时更新。这个不用做得很精细,但不能用一年前的竞品池来判断现在的词。


数据怎么来:买家账号 + 自研插件

这一部分我只讲思路,具体工具大家按自己的情况来。

核心动作是:用买家账号在亚马逊正常搜索,抓取第一页的ASIN列表

为什么用买家账号,不用卖家账号?因为你需要模拟真实买家的搜索结果,卖家后台的视角和买家端是有差异的。特别是广告展示、Deals位置的干扰,在买家端看到的才是实际用户看到的。

关于第一页的结果数量,这个大家可以自己权衡。亚马逊的搜索结果页有时候是20个,有时候是48个,这取决于品类和页面加载逻辑。我一般以自然加载出来的第一页为准,不手动翻页。如果你想统一标准,可以固定取前20个,这样不同词之间更容易横向比较。

关于大规模操作,如果你需要批量判断几百上千个词的相关性,逐个手动搜索是不现实的。我是自己写了一个浏览器插件处理这件事,批量搜索、自动提取ASIN、整理成逗号分隔的字符串格式,塞进Excel里。这个技术门槛有,但并不高,会写基础的JavaScript/Chrome Extension就可以做到, 如果有需要, 可以联系我直接可以分享个自己写的小插件,也很简单的实现逻辑

一些第三方工具也可以配合导出,或者小批量手动处理, 简单的比如卖家精灵之类的插件其实也有手动的方法。几十个词的量级,手动操作也能搞定。

数据结构很简单,最终你需要两列数据:

  • 一列是关键词
  • 一列是该关键词第一页的ASIN列表(用英文逗号分隔,比如:B09XXXX001,B08XXXX123,B07XXXX456,...)

加上你的竞品池(同样是逗号分隔的ASIN字符串),就可以跑宏函数了。


Excel宏函数:ASIN_HIT_COUNT

这个函数是整套工作流的计算核心,逻辑非常简单:传入两个逗号分隔的ASIN字符串,一个是某关键词的搜索结果,一个是你的竞品池,返回命中数量。

text' 统计 Top ASIN 在竞品池中的命中数Function ASIN_HIT_COUNT(topASIN As String, poolASIN As String) As Long   Dim arrTop As Variant   Dim arrPool As Variant   Dim dict As Object   Dim i As Long   ' 防空   If topASIN = "" Or poolASIN = "" Then       ASIN_HIT_COUNT = 0       Exit Function   End If   Set dict = CreateObject("Scripting.Dictionary")   ' 竞品池放进字典   arrPool = Split(poolASIN, ",")   For i = LBound(arrPool) To UBound(arrPool)       If Len(arrPool(i)) = 10 Then           dict(arrPool(i)) = 1       End If   Next i   ' 遍历 Top ASIN   arrTop = Split(topASIN, ",")   For i = LBound(arrTop) To UBound(arrTop)       If dict.exists(arrTop(i)) Then           ASIN_HIT_COUNT = ASIN_HIT_COUNT + 1       End If   Next iEnd Function

怎么用:

把这段代码放进你的Excel文件的VBA模块(Alt+F11 → 插入模块 → 粘贴代码),然后在表格里就可以直接调用。

假设你的表格结构是这样的:

A列(关键词)
B列(第一页ASIN串)
C列(第一页结果总数)
D列(竞品池ASIN串)
keyword 1
B09XX,B08XX,...
48
B07XX,B09XX,...

那么在E列(命中数)填入:=ASIN_HIT_COUNT(B2, $D$1)

在F列(相关性得分)填入:=E2/C2

竞品池可以放在一个固定单元格里(比如D1),用绝对引用,这样所有关键词共用同一个竞品池,不需要每行都复制一遍。

关于ASIN长度的校验:代码里有 If Len(arrPool(i)) = 10 Then 这一行,是因为亚马逊的ASIN固定是10位字符,这一步过滤掉空字符串和因为数据清洗不干净产生的异常值,实际上也算是基础的数据防呆。


得分怎么解读

这一部分是最需要主观经验的地方,没有行业标准,我讲的是我自己的判断,你不一定同意。

高相关(70%以上)

在这个词的第一页里,你竞品池里超过七成的产品都在。这个词大概率是你品类的核心词或者高度相关词,亚马逊的算法对它的意图判断非常清晰。这类词值得重点布局,广告出价可以相对激进,listing优化也应该围绕这类词展开。

当然,高相关不代表好做——很多高相关词竞争也极度激烈。相关性是一个维度,不是唯一维度。

中等相关(40%-70%)

这是最需要结合打法来判断的区间。我的经验是,这个区间里有两类词:

一类是"真正的中等相关"——这个词本身横跨多个细分品类,你的竞品只是其中一部分,买家的搜索意图是分散的。这类词不是不能打,但要清楚你只能切到部分意图的流量。

另一类是"暂时中等"——算法还没充分认识到这个词和你的品类的关系,可能是新词、可能是你们品类在这个词下的排名还不够强。这类词打好了,随着排名提升,相关性得分本身也会提高。

区分这两类,需要你手动翻一下那个词的第一页,看看其他50%的产品是什么, 当然也可以用插件的方式实现, 或者直接人眼看,判断起来通常不难。

低相关(40%以下)

我习惯在这里停下来认真想一想。

低于40%不是直接否词的充分条件,但这个信号值得你警觉。我见过的情况大概有这么几种:

  • 这个词是跨品类词,流量里有相当比例的人买的不是你卖的东西。这种词的转化数据通常会比较难看。
  • 这个词是场景词,它描述的是一个使用场景,而这个场景里同时出现了多个品类的产品。需要看你的产品在这个场景里能不能成立。
  • 这个词对你来说就是错误的。有时候是选词逻辑出了问题,或者竞品反查带进来了不应该打的词。

不管哪种,低于40%的词,我的操作是先暂停或压低出价,不直接否,观察一段时间的转化数据,再做决定。一刀切否掉,有时候会错杀真正有转化的长尾词。


这套方法在广告里怎么用

我主要把它用在以下几个场景,按重要性排:

场景一:广告词库的初筛

拓词完成之后,面对几百上千个词,不可能逐个去亚马逊手动判断相关性。用这套方法跑一遍,可以快速把词按相关性得分分层,先集中资源打高相关层的词,中低相关的词进观察池。

这不是替代人工判断,而是把人工判断的优先级排出来。你还是要亲眼看的,但你看的顺序变了,效率就高了。

场景二:广告新词的接收判断

自动广告跑着跑着,搜索词报告里会出来一些你没预期到的词。这些词ABA往往没有记录,你不知道该不该接进精准广告继续打。

把这些词拿来跑一遍相关性得分,低于40%的直接放进观察列表,高于60%的优先提词。这个动作可以规范化成每周的广告维护流程里的一步。

场景三:否词决策的辅助依据

纯看转化数据来决定否词,有时候样本量不够,有时候有波动误差。相关性得分可以作为一个先验判断——如果一个词连相关性都很低,它的转化数据再好看,也要想想是不是偶发数据。反过来,如果一个词相关性很高但转化不理想,问题可能在listing或者定价,而不是词本身。

场景四:选词调研

这个不是我的主要用途,但提一下。在做新品选词的时候,可以拿候选词批量跑一下相关性,快速区分"这个词亚马逊认为跟我这个品类相关"和"这个词只是字面上看起来相关"。特别是一些看起来搜索量很大的词,用这个方法可以快速识别它的实际品类归属。


一些使用注意事项

说几个我踩过的坑,也都不大,但提一下。

竞品池的宽窄影响得分解读,切记不要跨池比较。 如果你用严格同款竞品(50个ASIN)算出来某个词得分60%,跟用大类目竞品(200个ASIN)算出来的60%,含义是完全不同的。同一批词必须用同一个竞品池来算,才有可比性。

第一页结果数要记录清楚。 分母不同,得分没法比较。如果你的抓取工具默认取前20个,就一直用前20个;如果取第一页全部,就一直取全部。标准统一比标准"正确"更重要。

搜索时间会影响结果。 亚马逊的搜索结果不是完全静态的,不同时间段、不同账号、不同地区抓出来的结果可能有差异。这套方法给出的是一个时间点的快照,不是永久有效的判断。周期性更新你的数据,别用三个月前的数据做现在的决策。

这个方法对于非标品品类需要额外谨慎。 如果你的品类是创意类、个性化类、非标品,搜索结果本来就比较松散,竞品用词不具有代表性,这种情况下相关性得分的解读要更保守 。标品品类(功能明确、需求清晰)用这套方法效果更好。

别把这个当唯一判断。 我自己也在用,但我清楚这只是一个辅助判断工具,不是结论。相关性高的词不一定值得打,相关性低的词不一定要放弃,最终决策还是要结合转化数据、竞争格局、你的打法一起看。这个工具的价值是把判断从"完全凭感觉"变成"有数字参考的感觉"。


为什么我觉得这个逻辑值得推广

最后说一点有点"虚"的东西。

我做这个表格的最初动机,就是想解决"ABA之外的词没法判断相关性"这个问题。做出来之后用了一段时间,发现它的价值比我预期的大一点。

原因是它还原了一个基本事实:亚马逊的相关性最终体现在搜索结果里。算法说什么是相关的,它放什么产品在第一页,这就是最直接的答案。任何依赖数据库的相关性评分,本质上都是对这个"搜索结果"的近似,而近似总有误差。我的这套方法直接看原始数据,没有中间层,误差少一级。

当然代价是需要自己抓数据,需要自己维护竞品池,需要周期性更新。这个工作量不是零。

但对于认真做精细化运营的人来说,这点工作量完全值得,因为你得到的判断依据更接近真实。

代码和表格逻辑都在上面了,拿去用,按自己的运营逻辑调整分数的解读阈值。有问题欢迎评论区交流,我们互相验证一下各自的经验。


本文所有代码可直接复制使用,在Excel的VBA编辑器中新建模块粘贴即可。如有不同意见或更好的实现方式,欢迎评论区讨论。

关于我

Leon,一个做了很多年跨境的卖家。

平时喜欢折腾各种工具和自动化,也在研究 AI 对运营和效率的影响。

这个公众号主要记录一些:

AI工具 / 本地AI / 自动化 / 跨境运营的一些实践和思考。

如果这些内容对你有帮助,欢迎关注公众号:

《Leon的梦呓》

持续精进, 一起折腾,一起进步。