归因范围允许 API 调用方在来源注册和触发器注册期间指定一个字符串列表,该列表可用于在进行归因之前进行过滤。这样可以进行更精细的过滤,从而提高 API 效率并提供更大的灵活性。例如,它可以帮助您在同一网站上分别跟踪不同的广告客户。此外,它还便于在单个广告横幅中跟踪多个广告系列或产品。
归因范围是可选字段,可在来源注册和触发器注册期间设置。在归因期间,只有归因范围值包含至少一个触发源的归因范围值的来源才会被纳入归因考虑范围。如果触发器中未指定任何范围,则系统会考虑所有来源。在继续之前,您应先熟悉归因报告 API 和高级别过滤条件。
在来源注册期间
向标头 Attribution-Reporting-Register-Source 添加了一个可选参数 attribution_scopes,该标头包含两个必需参数:values 和 limit;以及一个可选参数:max_event_states。
- limit:表示每个目标来源报告来源允许的不同的范围总数。系统会删除所有具有相同报告来源和目标来源但限制较小的已注册来源。
- values:表示特定来源的归因范围列表。这些值必须是字符串,且长度不得超过 50 个字符。
- max_event_states(可选):表示 API 调用方计划在所有后续事件源注册中使用的最大事件状态数。请注意,系统会删除任何具有相同报告来源和目的地但
max_event_states value不同的现有已注册来源。此可选字段的默认值为 3。
来源注册示例
Attribution-Reporting-Register-source: {
//optional
"attribution_scopes":{
"limit": <int>,
"values": <list of strings>,
// optional
"max_event_states": <int>
},
...
}
在触发器注册期间
在触发器注册期间,向标头 Attribution-Reporting-Register-Trigger 添加了可选参数 attribution_scopes。确保参数值是一个字符串列表,表示触发器的范围。如果指定了触发器的 attribution_scopes,则只有当来源的 attribution_scopes 值参数包含触发器的 attribution_scopes 中的至少一个值时,触发器才会匹配来源。
触发器注册示例
Attribution-Reporting-Register-Trigger: {
//optional
"attribution_scopes": <list of strings>,
...
}
归因范围示例
以下示例展示了在使用归因范围时,触发归因于来源的情况。
来源注册 #1
Attribution-Reporting-Register-source: {
"destination": "https://trigger.example",
"attribution_scopes": {
"limit": 2,
"values": ["advertiser1"],
"max_event_states": 3
},
...
}
来源注册 #2
Attribution-Reporting-Register-source: {
"destination": "https://trigger.example",
"attribution_scopes": {
"limit": 2,
"values": ["advertiser2"],
"max_event_states": 3
},
...
}
触发器注册
Attribution-Reporting-Register-Trigger: {
"attribution_scopes": ["advertiser1"],
...
}
当触发器注册发生时,API 会选择归因范围值与触发器注册中的值相交的来源,以供归因时考虑。匹配的来源注册将继续进行其余的归因流程。在此示例中,API 调用方将收到一个归因报告,其中将触发器注册归因于第一个来源注册。
归因范围与过滤条件
虽然归因范围和过滤器的功能可能看起来相似,但它们的区别在于在触发器注册流程中的应用位置。在归因之前,系统会先过滤归因范围。这意味着,它会根据哪些来源的范围与触发器中的范围相交,减少具有相同目标网站和报告来源的未过期候选来源池。不过,顶级过滤条件是在触发归因于单个来源后应用的。如果来源过滤条件和触发过滤条件没有交集,则不会生成任何报告。
下图显示了一组具有相同目标网站和报告来源且未过期的来源和触发器。我们将简要介绍如何使用归因范围和过滤条件,以及是否会根据可用的来源和触发器生成报告。
归因前
- 来源 1 会被滤除,因为其归因范围与触发器的范围
casualwear不一致。即使来源在所有可用来源中具有最高优先级,也可能会被过滤掉,因为预归因过滤发生在检查优先级之前。 - 来源 2 也因与触发器的范围不同而被过滤掉。此来源还具有与触发器相同的过滤条件,但高级别过滤条件在归因之后才会应用。
在归因期间
- 来源 3 未被选择用于归因,因为其优先级低于来源 4。
- 系统会选择来源 4,因为它的归因范围与触发器匹配,并且优先级最高。高级别过滤条件是在归因后应用的,因此在归因过程中不会考虑这些过滤条件。
帖子归因
- 由于所选来源(来源 4)和触发器的高级过滤条件不相交,因此系统不会生成报告。
上一个示例不会生成报告。不过,如果完全移除第四个来源,则:
在归因期间
- 系统会选择来源 3,因为其归因范围与触发器的归因范围相交。
帖子归因
- 来源 3 未被拒绝,因为其过滤条件与触发器中的过滤条件相交。然后,归因将通过其余的帖子归因检查,如果通过所有检查,系统会生成报告。
归因范围可减少纳入归因考虑范围的来源数量。然后,系统会对这个较小的来源池应用剩余的归因步骤,这可能会生成报告。
归因范围在归因流程中的位置
在选择归因来源之前,系统会先应用归因范围。它还优先于顶级过滤条件和自定义报告窗口过滤条件。下图显示了简化的整体归因流程,其中归因范围在归因和其余归因检查之前发生。
归因流程操作
以下是归因流程期间执行的各种操作的总结:
- 来源注册:当用户与广告客户网站上的广告互动时,系统会注册来源事件。然后,设备会向报告来源的端点发送请求,该端点会返回一个包含来源事件数据的标头。
- 触发器注册:当广告客户的网站上发生转化时,系统会注册一个触发器事件。设备向报告来源发送另一项请求,报告来源会以包含触发事件数据的标头做出响应。
- 来源匹配:设备会根据目标网站、报告来源和过期时间等条件来匹配来源事件和触发事件。
- 归因范围检查:系统会根据来源和触发器 attribution_scopes 值之间的交集来过滤来源。
- 归因:如果多个来源匹配,设备会选择优先级最高的来源进行归因。如果优先级相同,则选择最近的那个。
- 过滤条件检查:设备会比较来源过滤条件和触发过滤条件,以确定它们是否匹配。如果过滤条件不匹配,则会舍弃归因。
- 停用其他来源:如果所选来源的过滤条件匹配,设备会停用在来源匹配阶段匹配的来源。已停用的来源将包括归因范围与触发范围不匹配的来源。
- 归因后检查:设备会对所选归因执行更多检查,例如检查来源是否因虚假报告而添加了噪声、使用去重键检查重复的归因、检查触发是否在来源的报告窗口内,以及检查速率限制。
- 生成报告:如果所有检查都通过,设备会生成并安排发送归因报告,以发送到报告来源的端点。
后续步骤
- 如需详细了解归因范围,请参阅 GitHub 上的预归因过滤说明。
- 如需详细了解过滤条件,请参阅使用过滤条件定义客户规则。