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=]
- 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=].
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:
@@ -1525,6 +1527,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 +1773,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 {{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}