结论先说:当报告页数明显多于实际对象数时,优先怀疑去重键选错了,而不是数据重复。百度推广软件导出的报告通常以“行”为单位,同一对象在不同层级、不同时间段或不同状态字段下会各占一行。只有把去重键收敛到“对象唯一标识+统计口径”这一组字段,页数才会回落到接近实际对象数。如果去重键本身包含会变化的字段,比如日期、状态、出价方式,那么无论怎么合并都会继续膨胀。
把报告按对象唯一标识分组,观察每组行数。常见的三种情况对应不同处理:
判断方法很直接:对同一对象标识计数,若组内行数等于统计天数,是时间重复;若组内行数等于层级数,是层级重复;若行数不规则且伴随状态字段变化,是状态重复。先分清属于哪一种,再决定去重键,比直接全表去重更可靠。
对象唯一标识是去重键的骨架,但只留标识还不够,因为同一标识在不同统计口径下代表不同含义。建议按以下顺序确定:
一个常见的错误是把“对象名称”当作去重键。名称可以重复、可以修改,用它去重会误删不同对象,也会漏掉改名后的同一对象。唯一标识通常由系统生成,稳定性高于名称,具体字段名需要以你所用百度推广软件的实际导出列为准。
假设你按对象唯一标识去重后,页数仍然高于实际对象数。这时“去重键选错”这个结论就不成立了,更可能的原因是:报告里混入了非同一账户或非同一时间范围的数据。比如把两个账户的导出文件简单拼接,对象标识在不同账户下可能重复或错位;或者把不同统计周期的文件放在一起,同一对象被算作多次。
验证办法:先按账户标识分组计数,再按统计周期分组计数。如果分组后每组内部去重就能对齐实际对象数,说明问题出在数据来源拼接,而不是去重逻辑。这一步不做,后续所有去重都是在错误前提上叠加。
先做一次最小验证:取一个已知对象数的子集,比如单个计划下的全部单元,按“对象唯一标识”去重,看结果是否等于该计划的实际单元数。若相等,把同一去重键推广到全量;若不等,回到上一节检查数据来源是否混入多账户或多周期。
去重后页数接近实际对象数,只说明对象清单对齐了,不代表统计字段可以直接使用。此时还要检查被合并掉的行里,数值字段是求和、取最新还是取平均,口径不同结果差异很大。把去重键和聚合方式一起写进处理说明,下一次导出才能复现同样的结果。