From 6211377d0ec29fddae268d7eb500d0baf3613dd0 Mon Sep 17 00:00:00 2001 From: Martin Thomson Date: Fri, 22 Aug 2025 16:59:41 +1000 Subject: [PATCH 1/3] Add notes about how to set these values --- api.bs | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/api.bs b/api.bs index 78ef894..58c5df0 100644 --- a/api.bs +++ b/api.bs @@ -1295,8 +1295,9 @@ given [=site=] |site|, returning an [=epoch index=]: 1. Let |startEpoch| be a [=user agent=]-defined value - for the earliest [=epoch index=] - that is supported for attribution. + for the earliest epoch index, + which is the first [=epoch index=] + that is supported for attribution on |site|.

This value is not a constant [=epoch index=]. @@ -1525,6 +1526,8 @@ To validate {{AttributionConversionOptions}} |options|: :: |credit| 1. Let |lookback| be |options|.{{AttributionConversionOptions/lookbackDays}} [=days=] if it [=map/exists=], the [=implementation-defined=] maximum otherwise. +1. Let |lookback| be the [=implementation-defined=] maximum + if it is larger than that maximum. 1. If |lookback| is 0 [=days=], throw a {{RangeError}}. 1. If the [=list/size=] of |options|.{{AttributionConversionOptions/matchValues}} is @@ -1769,6 +1772,33 @@ To fill a histogram with last-n-touch attribution, given a [=set=] of +### Setting Implementation-Defined Values ### {#impl-def} + +This specification identifies several [=implementation-defined=] values. +This section includes some recommendations for implementations +regarding how to best set those values. + +An implementation sets [=implementation-defined=] maximum values +for {{AttributionImpressionOptions/lifetimeDays}} and +{{AttributionConversionOptions/lookbackDays}}. +There is no point to having different maximum values for +these values as the smaller of the two values +will determine which saved [=impressions=] are available for conversions. + +An implementation can also use the value it sets +for for {{AttributionImpressionOptions/lifetimeDays}} and +{{AttributionConversionOptions/lookbackDays}} +to set the [=earliest epoch index=] +when executing the [=get the starting epoch for attribution=] algorithm. +Invoking [=get the current epoch=] algorithm for the site, +passing the current time less the corresponding duration +ensures that the [=earliest epoch index=] +includes all possible [=impressions=] that can be queried. + +Deciding on a value for differential privacy parameters +is hard and therefore TBD. + + ## User Control and Visibility ## {#user-control}

From 069423cdfe53831fce92640edd194d1eaee1d56d Mon Sep 17 00:00:00 2001 From: Martin Thomson Date: Fri, 22 Aug 2025 17:50:13 +1000 Subject: [PATCH 2/3] Guidance on setting implementation-defined values Closes #231. --- api.bs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/api.bs b/api.bs index 58c5df0..c4ed36b 100644 --- a/api.bs +++ b/api.bs @@ -1289,20 +1289,21 @@ Resetting the budget is necessary to ensure that no information about the gap in browsing history is exposed. -

+
To get the starting epoch for attribution given [=site=] |site|, returning an [=epoch index=]: 1. Let |startEpoch| be a [=user agent=]-defined value - for the earliest epoch index, + for the earliest epoch index, which is the first [=epoch index=] that is supported for attribution on |site|.

This value is not a constant [=epoch index=]. A value is chosen for each site - based on [=user agent=] preferences or configuration. + based on [=user agent=] preferences or configuration; + see [[#impl-def]]. 1. If the [=last browsing history clear=] is set, perform the following steps: @@ -1772,7 +1773,7 @@ To fill a histogram with last-n-touch attribution, given a [=set=] of

-### Setting Implementation-Defined Values ### {#impl-def} +## Setting Implementation-Defined Values ## {#impl-def} This specification identifies several [=implementation-defined=] values. This section includes some recommendations for implementations From f729c383c4f172750119527ccdf4f5fc3b408b21 Mon Sep 17 00:00:00 2001 From: Martin Thomson Date: Mon, 25 Aug 2025 10:31:38 +1000 Subject: [PATCH 3/3] four Co-authored-by: Andrew Paseltiner --- api.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api.bs b/api.bs index c4ed36b..752b298 100644 --- a/api.bs +++ b/api.bs @@ -1787,7 +1787,7 @@ these values as the smaller of the two values will determine which saved [=impressions=] are available for conversions. An implementation can also use the value it sets -for for {{AttributionImpressionOptions/lifetimeDays}} and +for {{AttributionImpressionOptions/lifetimeDays}} and {{AttributionConversionOptions/lookbackDays}} to set the [=earliest epoch index=] when executing the [=get the starting epoch for attribution=] algorithm.