先看差异来源:如果报告里的“页数”按抓取到的页面、请求或展示位置计数,而“实际对象”按计划、单元、关键词或创意计数,两者本来就不是同一维度,不能直接相减。真正需要去重时,先确定你要保留哪一个对象层级,再把报告里重复出现的行按该层级的唯一标识合并;如果无法确定唯一标识,就应退出自动去重,改为人工抽样核对。
报告页数多于实际对象数量,常见原因有三类。第一类是同一对象在多个页面、多个时段或多个设备类型下各出现一次,报告按行展开,自然多于对象总数。第二类是对象本身有父子关系,例如一个计划下多个单元,报告同时输出计划和单元行,页数会翻倍。第三类是导出或合并时产生了重复记录,例如同一对象被两次追加进同一张表。
区分方法很直接:先取一小批样本,用对象名称或对象ID做一次计数,再和报告总行数比较。如果按对象ID去重后数量接近实际对象数,说明是重复行;如果去重后仍明显偏多,说明报告统计的层级比对象层级更细,这时不应继续去重,而应改变比较口径。
如果确认是重复行,建议保留原始导出文件,另存一份副本处理。去重键优先选稳定且唯一的字段,例如对象ID;只有名称时,要先把同名但不同层级的对象区分开,否则会把两个真实对象误合并成一个。
一个可执行的假设例子:假设报告有300行,实际对象有120个,按对象ID去重后得到118个。差的2个可能是ID为空或ID被截断。此时下一步不是继续删行,而是先找出这2条记录的来源,确认它们是否属于同一个对象。这个动作的结果会直接影响后续:如果确认是同一对象,就补全ID后合并;如果确认是两个对象,就保留两行,并回到报告口径上找原因。
当报告页数按页面、请求或展示位置计数时,去重到对象层级会丢失信息。此时更合理的做法是改写比较口径:把“实际对象数量”换成“实际对象在报告维度下的应有行数”。例如按关键词乘设备类型展开,理论行数就是对象数乘以设备类型数。只有理论行数和报告行数接近时,才适合继续按对象去重。
这个取舍的前提是:你关心的是对象覆盖是否完整,而不是页面级明细。如果关心的是每个页面的表现,就不应去重,而应保留明细,只把对象数量作为对照参考。
个别样本成立,不代表规模化后仍然成立。样本量小的时候,重复行可能恰好被抵消;样本变大后,空ID、跨层级混排、时段切分都会让差异放大。建议按对象类型分层抽样,每层取若干条,分别计算去重前后数量差。如果某一层的差异无法用已知字段解释,就应把该层标记为“暂不自动去重”,改为人工核对。
退出自动去重不是失败,而是避免把真实对象误删。等确认了唯一标识和层级关系后,再回到自动流程。判断是否退出的依据不是差异大小本身,而是差异能否被字段和口径解释。
每次处理完差异后,把本次使用的去重键、适用层级、排除条件和例外情况记录下来,形成下一次可复用的规则。规则里要写清哪些字段必须存在、缺失时如何处理、哪些层级不能合并。这样下次再遇到报告页数与实际对象数量不一致时,可以先套规则,再决定保留、改写还是退出,而不是每次从零判断。
如果具体工具的字段名称、导出选项或当前功能与本文描述不同,需要以你实际使用的版本和界面为准,先核对字段含义再动手去重。