批处理策略

批量处理可汇总的报告时,请务必优化批处理策略,以免超出隐私权限制。以下是向汇总服务发送批量报告的一些推荐策略。

收集报告

收集要包含在批处理中的报告时,请注意以下事项:

报告上传重试

注意:重试条件可能会发生变化。在这种情况下,本部分中的信息将会更新。

在网站和操作系统平台上,平台会尝试发送报告三次,但如果报告在第三次尝试后仍未发送,则不会再发送。无论报告何时能够发送,系统都会保留原始 scheduled_report_time 值。重试的时间表因平台而异:

  • 网络浏览器会在浏览器处于联机状态时发送报告。如果报告发送失败,系统会等待 5 分钟进行第二次重试,然后等待 15 分钟进行第三次重试。如果浏览器处于离线状态,则会在重新上线一分钟后进行下一次重试。在网络上发送报告没有延迟上限;这意味着,如果浏览器离线,无论报告生成多久,只要浏览器重新上线,就会尝试根据重试政策发送报告。
  • Android 手机具有稳定的网络连接。因此,它将每小时运行一次作业来发送报告。这意味着,如果报告发送失败,系统会在下一个小时重试,并在下一个小时再次重试。如果设备未连接到网络,则会在设备重新连接到网络后,通过下一个运行的报告作业重试发送报告。最长延迟时间为 28 天,这意味着设备不会发送超过 28 天前生成的报告。

等待报告

建议您在收集报告以进行批处理时,等待迟到的报告。您可以通过将 scheduled_report_time 值与收到报告的时间进行对比,确定报告是否延迟。这些报告之间的时间差异有助于确定您可能需要等待多长时间才能收到迟到的报告。例如,在收集延迟报告时,请查看 scheduled_report_time 字段,并记录在收到 90%、95% 和 99% 的报告时所经历的时延(以小时为单位)。这些数据可用于确定等待迟到的报告需要多长时间。 您可以使用即时汇总报告来降低报告延迟的可能性。

以下图表显示了延迟生成的报告会根据安排的报告时间存储在相应的批次中。批处理 T 表示 scheduled_report_time,T+X 表示等待延迟报告的时间。这会生成一个摘要报告,其中包含批量报告中的大多数报告,这些报告对应的是其定期生成报告的时间。

显示报告会根据安排的报告时间存储在适当批次中的示意图。

可汇总报告的会计核算

汇总服务会维护“无重复”规则。此规则强制要求具有相同共享 ID 的所有可汇总报告都必须包含在同一批次中。

收集报告后,应将其批量处理,使具有相同共享 ID 的所有报告都属于一个批次。

如果某个报告已在另一个批处理中处理过,则再次处理该报告可能会导致隐私预算耗尽错误。正确地批量处理报告有助于防止因“无重复”规则而导致批量被拒。

共享 ID 是系统为每份报告生成的键,用于跟踪可汇总的报告会计。共享 ID 可确保具有相同共享 ID 的报告仅会纳入到一个摘要报告中。这意味着,映射到一个共享 ID 的报告必须全部包含在一个批次中。例如,如果报告 X 和报告 Y 具有相同的共享 ID,则必须将它们包含在同一批次中,以免因重复而被丢弃。

下图展示了要一起进行哈希处理以生成共享 ID 的 shared_info 组件。

显示会一起进行哈希处理以生成共享 ID 的 shared_info 组件的图。

下图展示了如何让两个不同的报告具有相同的共享 ID:

示意图:两个不同的报告如何可以具有相同的共享 ID。

注意scheduled_report_time 按小时截断,source_registration_time 按天截断。此外,在创建共享 ID 时不会使用 report_id。时间精确度未来可能会更新。

批量报告中存在重复报告

可汇总报告的 shared_info 字段中的 report_id 字段包含一个 UUID,用于识别批处理中的重复报告。如果批量中有多个具有相同 report_id 的报告,系统只会汇总第一个报告,并将其他报告视为重复报告并静默舍弃;汇总将照常进行,且不会发送任何错误。虽然这不是必需的,但广告技术平台可以先滤除具有相同报告 ID 的重复报告,然后再进行汇总,这样有望提升效果。

每个报告的 report_id 都是唯一的。

批次之间存在重复报告

系统会为每个报告分配一个共享 ID,该 ID 是根据报告的 shared_info 字段中的数据点组合生成的。多个报告可以具有相同的共享 ID,并且每个批次可以包含多个共享 ID。所有具有相同共享 ID 的报告都必须在同一批次中提交。如果具有相同共享 ID 的报告最终分为多个批次,系统只会接受第一个批次,并将其他批次视为重复内容而拒绝。为避免这种情况,必须正确创建批次

下图显示了一个示例,其中不同批次中具有相同共享 ID 的报告可能会导致后续批次失败。在该图片中,您可以看到,具有相同共享 ID e679aa 的两个或更多个报告被分批到不同的批次 #1 和 #2。由于在生成第 1 批摘要报告期间,使用了具有共享 ID e679aa 的所有报告的预算,因此系统不允许生成第 2 批报告,并会因出错而失败。

显示以下示例的图表:如果不同批次的报告具有相同的共享 ID,则可能会导致后续批次报告失败。

批量报告

以下是批量生成报告的推荐方法,可避免重复并优化汇总报告的核算。

按广告客户批量处理

注意:此策略仅适用于归因报告汇总。

不公开汇总不含 attribution_destination 字段(即广告客户)。建议按广告客户批量处理,也就是说,将属于单个广告客户的报告包含在同一批次中,以免达到每个批次可汇总报告的账号限制。“广告客户”是生成共享 ID 时会考虑的字段,因此具有相同广告客户的报告也可能具有相同的共享 ID,这要求这些报告必须位于同一批次中,以免出现错误。

按时间批量

建议在批量处理时考虑报告的定期生成时间 (shared_info.scheduled_report_time)。在生成共享 ID 时,系统会将定期生成报告的时间截断为小时,因此报告至少应按小时批量生成,也就是说,所有定期生成报告的时间都在同一小时内的报告都应归入同一批次,以免多个批次中包含具有相同共享 ID 的报告,这会导致作业出错。

批量频率和噪声

建议考虑噪声对可汇总报告的处理频率的影响。如果可汇总报告的批处理频率更高(例如,每小时处理一次报告),则包含的转化事件会更少,噪声的相对影响也会更大。如果降低频率,每周处理一次报告,噪声的影响相对较小。如需更好地了解噪声对批处理的影响,请使用噪声实验室进行实验。