Script updating gh-pages from b8c215d. [ci skip]

This commit is contained in:
ID Bot 2022-01-27 10:11:03 +00:00
parent 6fa3e10dcb
commit 26b9199397
6 changed files with 108 additions and 3199 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,829 +0,0 @@
Network Working Group F. Ring
Internet-Draft H. Niefeld
Intended status: Informational Offen
Expires: 19 February 2022 18 August 2021
A File Format for the Discoverable Use of Analytics
draft-ring-analyticstxt-latest
Abstract
Internet privacy has become an important feature for users of
websites and services. This document proposes a way for websites and
services to declare and disclose their usage of analytics and
tracking software. analytics.txt aims to be an elaborate file format
that describes the privacy related characteristics of analytics and
tracking software in a non-biased way. An analytics.txt file is
understandable for a non-technical audience, while also useful for
the automated consumption by tools and software.
Discussion Venues
This note is to be removed before publishing as an RFC.
Source for this draft and an issue tracker can be found at
https://github.com/offen/analyticstxt.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 19 February 2022.
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Simplified BSD License text
as described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License.
Table of Contents
1. Introduction
1.1. Motivation
1.2. Scope of this proposal
1.2.1. About providing a human readable format
1.3. Definition of the term "analytics" in the scope of this
document
1.4. Verifying the provided information
1.4.1. Non-biased
1.4.2. Non-canonical
2. Conventions and Definitions
3. Specification
3.1. Comments
3.2. Line Separators
3.3. Extensibility
3.4. Field Definitions
3.4.1. Author
3.4.2. Collects
3.4.3. Stores
3.4.4. Uses
3.4.5. Allows
3.4.6. Retains
3.4.7. Honors
3.4.8. Tracks
3.4.9. Varies
3.4.10. Shares
3.4.11. Implements
3.4.12. Deploys
3.5. Examples of analytics.txt files
3.5.1. A site using analytics
3.5.2. Specifying required fields only
3.5.3. A site not using any analytics
4. Location of the analytics.txt file
4.1. Alternatives
4.1.1. link Tag
4.1.2. HTTP Header
4.2. Precedence
4.3. Scope of a file
5. Security Considerations
5.1. Incorrect or stale information
5.2. Spam
5.3. Multi-user environments
6. IANA Considerations
6.1. Well-Known URIs registry
7. References
7.1. Normative References
7.2. Informative References
Appendix A. Acknowledgments
Authors' Addresses
1. Introduction
1.1. Motivation
User tracking and the utilization of analytics software on websites
has become a widely employed routine, visibly and invisibly affecting
the way the user facing internet works and behaves. Yet, there is no
well-defined way of accessing information about what software is
being used and what kind of data it is collecting in a standardized
way. Legislation can only ever cover a subset of the range of
existing technological implementations, creating incentives for
software to find workarounds, thus allowing them to hide their
presence from users. Automated audits are limited to aspects that
are possible to detect in clients, but cannot disclose other
important implementation details.
1.2. Scope of this proposal
This document defines a way to specify the privacy related
characteristics of analytics and tracking software. We aim for this
information to be consumable both by humans as well as software.
The file "analytics.txt" is not intended to replace the requirement
for complying with existing regulations, but supposed to give
insights beyond the scope of these regulations.
1.2.1. About providing a human readable format
A fundamental design goal of the "analytics.txt" format is to make
such a file human readable. While the percentage of consumers that
are actually human beings will likely be low - browser extensions or
search engines would be good examples of possible consumers - this
tenet can drive the specification into a direction where the format
will focus on providing information that is useful for human beings,
even when captured and processed further by other software.
1.3. Definition of the term "analytics" in the scope of this document
Analytics as referred to in this document involves the collection of
usage statistics in order to generate reports that can help the
providers of websites and services to better understand and optimize
their services towards real world user behavior. This can also
include measuring different content against different groups of
users.
1.4. Verifying the provided information
"analytics.txt" is designed to provide insights beyond what is
technically auditable from a client perspective. While some
characteristics could be determined automatically or manually at
client level, others won't, and will rely on implementors providing
correct information about what is happening at layers that are opaque
to users. This means consumers of an "analytics.txt" file will
implictly need to trust the implementor to provide correct
information, implicating two design goals for the format (technical
implications are discussed in Section 5.1).
1.4.1. Non-biased
All of the given datapoints are purely informational, there is no
right or wrong option to choose from, and the format will never
provide guidelines on how to assess or rate an "analytics.txt" file.
Based on this, implementors don't have strong incentives for
providing incorrect information, but choose implementation because
they are wishing to disclose information about their site that they
otherwise couldn't.
1.4.2. Non-canonical
An "analytics.txt" file should never be the canonical source of truth
for making automated decisions or ratings about a site. It is
supposed to be one of multiple signals that can be used for assessing
the behavior of a website, creating the possibility to connect and
compare the provided data with what has been surveyed using other
channels of information.
2. Conventions and Definitions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
The term "implementors" refers to the providers of services and
websites that wish to use an analytics.txt file.
3. Specification
This document defines a text file format that can be used by
implementors to signal information about their usage of analytics
software to both users and software.
By convention, this file is called "analytics.txt". Its location and
scope are described in Section 4.
This text file contains multiple fields with different values. A
field contains a "name" which is the first part of a field all the
way up to the colon (for example: "Author:") and follows the syntax
defined for "field-name" in section 3.6.8 of [RFC5322]. Field names
are case-insensitive (as per section 2.3 of [RFC5234]). The "value"
comes after the field name and follows the syntax defined for
"unstructured" in section 3.2.5 of [RFC5322]. The file MAY also
contain blank lines and comments.
A field MUST always consist of a name and a value (for example:
"Author: Jane Doe jane.doe@example.com
(mailto:jane.doe@example.com)"). Each field MUST appear on its own
line. Unless specified otherwise by the field definition, multiple
values MUST be chained together for a single field (for example:
"Implements: gdpr, ccpa") using the "," character (%x2c). A field
MAY NOT appear multiple times.
Implementors SHOULD aim for authoring an analytics.txt file that is
easy to understand by non-technical audiences.
3.1. Comments
Any line beginning with the "#" (%x23) symbol MUST be interpreted as
a comment. The content of the comment may contain any ASCII or
Unicode characters in the %x21-7E and %x80-FFFFF ranges plus the tab
(%x09) and space (%x20) characters.
Example:
# This is a comment
Implementors SHOULD make deliberate use of comments to make an
analytics.txt file more accessible for non-technical audiences.
3.2. Line Separators
Every line MUST end either with a carriage return and line feed
characters (CRLF / %x0D %x0A) or just a line feed character (LF /
%x0A).
3.3. Extensibility
Like many other formats and protocols, this format may need to be
extended over time to fit the ever-changing landscape of the
Internet. Special attention is required for defining the allowed
values in enumerations to ensure they are a. extendable and b. do not
become obsolete too quickly.
3.4. Field Definitions
Field names are case-insensitive, yet implementors SHOULD use the
capitalized style used in this document for consistency.
Field values are case-insensitive. Unless otherwise specified,
implementors MUST refer to the allowed values for a field given by
the specification.
3.4.1. Author
This REQUIRED field holds an OPTIONAL display name and a REQUIRED
email address ("name-addr") as per section 3.4 of [RFC5322] providing
information about a person or entity responsible for maintaining the
contents of the file. The field MUST contain a valid email address
which shall be used for inquiries about the correctness and additions
to the data provided in the file.
3.4.1.1. Example
Author: Jane Doe <jane.doe@example.com>
3.4.2. Collects
This REQUIRED multi-value field indicates which potentially privacy
relevant user specific data is being collected or used in session
identification or other procedures. These values MUST also be
specified if a property is not persisted as-is, but stored or
processed in a hashed and/or combined form. Some of the allowed
values overlap to a certain extent, e.g. a User Agent string might be
used in a Browser Fingerprint.
3.4.2.1. Allowed values
3.4.2.1.1. none
No analytics data is collected at all. This value MUST NOT be used
in conjunction with other values.
3.4.2.1.2. url
The URL of a visit, including its path, is collected and used. This
MUST also be specified in case URLs are stripped of certain
parameters or pseudonymized before being stored.
3.4.2.1.3. time
The time of visit is collected.
3.4.2.1.4. ip-address
The request IP address is being used.
3.4.2.1.5. geo-location
Geographic location of users is determined and used. This could for
example be derived from the request IP, or from using browser APIs.
3.4.2.1.6. user-agent
Information about the utilized User Agent is being collected.
3.4.2.1.7. fingerprint
Browser Fingerprinting is used. Such mechanisms usually try to
compute a unique identifier from properties of the host Operating
System, allowing them to re-identify users without having to persist
an identifier.
3.4.2.1.8. device-type
The user's device type (e.g. mobile / tablet / desktop) is being
determined and collected. The categories and rules for this
distinction might be different for different software solutions.
3.4.2.1.9. referrer
The Referrer of a visit is collected and used. This MUST also be
specified if the referrer value is stripped of potential path
fragments.
3.4.2.1.10. visit-duration
The duration of a visit, either on page- or on session-level is
measured and used.
3.4.2.1.11. custom-events
Custom events like conversion goals are defined and used. This MAY
be left out in case the analytics software in use offers such
functionality, but implementors chose not to use the feature.
3.4.2.1.12. session-recording
Detailed behavior like mouse movement and scrolling is recorded and
can possibly be played back when analyzing the analytics data.
3.4.2.2. Example
Collects: url, device-type, referrer
3.4.3. Stores
This field is REQUIRED unless the only value of the Collects field as
per Section 3.4.2 is none. The multi-value field indicates whether
data is persisted on the client during the collection of analytics
data and declares the browser features used for doing so. In case no
data is being persisted at all, the value none MUST be used as the
single entry for this field.
3.4.3.1. Allowed values
3.4.3.1.1. none
No data is persisted on the client during the collection of usage
data. This value MUST NOT be used in conjunction with other values.
3.4.3.1.2. first-party-cookies
First party cookies are in use. There is no differentiation between
session or persistent cookies, just like HTTP and JavaScript cookies
are considered equal.
3.4.3.1.3. third-party-cookies
Third party cookies are in use. There is no differentiation between
session or persistent cookies, just like HTTP and JavaScript cookies
are considered equal.
3.4.3.1.4. local-storage
Data is persisted on the client using non-cookie JavaScript APIs like
"localStorage", "sessionStorage", "WebSQL" or "IndexedDB"
3.4.3.1.5. cache
The analytics software leverages browser cache mechanisms to store
identifiers. For example, ETag headers can be used to identify users
based on their browser caches' contents. This value is not required
in case the analytics software sends static resources with cache
headers, but does not make use of the request headers on subsequent
requests for purposes other than managing caching of assets.
3.4.3.2. Example
Stores: first-party-cookies, local-storage
3.4.4. Uses
This field is REQUIRED unless the only value of the Collects field
Section 3.4.2 is none. The multi-value field indicates the technical
implementation details for how analytics data is being collected.
3.4.4.1. Allowed values
3.4.4.1.1. javascript
A client-side script is used to collect data.
3.4.4.1.2. pixel
A static resource - typically a pixel - transferred via HTTP is being
used to collect data through the request parameters.
3.4.4.1.3. server-side
Collection of usage data is happening on the server side at the
application layer.
3.4.4.1.4. logs
Usage data is being calculated from server log files.
3.4.4.1.5. other
Other techniques that are not described in this section are in use.
3.4.4.2. Example
Uses: script
3.4.5. Allows
This field is REQUIRED unless the only value of the Collects field
Section 3.4.2 is none. The multi-value field discloses information
about whether user consent is being acquired before collecting
analytics data, and if it is possible for users to opt out of the
collection of usage data.
3.4.5.1. Allowed values
3.4.5.1.1. none
The software does not define a way for users to opt in or opt out of
the collection of usage data. This value also applies to scenarios
where only a subset of data is collected by default and could be
extended by opting in. This value MUST NOT be used in conjunction
with other values.
3.4.5.1.2. opt-in
No usage data is collected before users have given their consent.
3.4.5.1.3. opt-out
Users can opt out of collection of usage data using a dedicated
feature tailored towards the user audience. This value is only
applicable in case no data at all is collected after having opted
out.
3.4.5.2. Example
Allows: opt-out
3.4.6. Retains
This field is REQUIRED unless the only value of the Collects field
Section 3.4.2 is none. The single-value field indicates the duration
for which the analytics data is being stored before being deleted.
This duration MUST also cover periods where data might transition to
be stored in aggregated form only. The value is either a duration in
days (including the days suffix), or the token "perpetual" in case
data is retained without expiring it at some point. A day is defined
as 24 hours. In case the retention period does not divide evenly
into days, it MUST be brought up to the next round figure.
3.4.6.1. Example
Retains: 365 days
3.4.7. Honors
This OPTIONAL, RECOMMENDED multi-value field indicates which browser
level privacy controls are being honored when collecting data.
3.4.7.1. Allowed values
3.4.7.1.1. none
Data is collected even if any of the browser settings listed below
are in use. This value MUST NOT be used in conjunction with other
values.
3.4.7.1.2. do-not-track
User-Agents that have DoNotTrack [DNT] enabled will be excluded from
the collection of analytics data.
3.4.7.1.3. global-privacy-control
User agents that have Global Privacy Control [GPC] enabled will be
excluded from the collection of analytics data.
3.4.7.2. Example
Honors: do-not-track, global-privacy-control
3.4.8. Tracks
This OPTIONAL, RECOMMENDED multi-value field indicates the coverage
in session and user lifecycle tracking.
3.4.8.1. Allowed values
3.4.8.1.1. none
Each event that is collected is anonymous. There is no way to
connect and group multiple pageviews by user or similar. This value
MUST NOT be used in conjunction with other values.
3.4.8.1.2. sessions
Metrics that source from a single browser session can be grouped and
distinguished as such.
3.4.8.1.3. users
Users can be identified across multiple browser sessions.
3.4.8.2. Example
Tracks: sessions, users
3.4.9. Varies
This OPTIONAL, RECOMMENDED single-value field indicates the usage of
content experiments like A/B testing. It MUST contain a single value
only.
3.4.9.1. Allowed values
3.4.9.1.1. none
All users are served the same content without any changes. This
value MUST NOT be used in conjunction with other values.
3.4.9.1.2. random
Content experiments are performed by grouping users randomly into
buckets and serving them different content.
3.4.9.1.3. geographic
Content experiments are performed by targeting user based on their
geographic location.
3.4.9.1.4. behavioral
Content experiments are performed by grouping users into buckets
based on their behavior and serving them different content.
3.4.9.2. Example
Varies: random
3.4.10. Shares
This OPTIONAL, RECOMMENDED multi-value field indicates whether data
is shared with select users, the general public or third parties.
3.4.10.1. Allowed values
3.4.10.1.1. none
The data collected is not shared with any party unless directly
affiliated with the implementor, e.g. employees.
3.4.10.1.2. per-user
Users can access the usage data that is associated with them in a
non-aggregated way, isolating all data that is specific to their
current means of re-identification.
3.4.10.1.3. general-public
Usage statistics for the site or service are available to the general
public.
3.4.10.1.4. third-party
Data is being shared non-publicly with third parties. This MUST also
be specified when datasets are aggregated or pseudonymized
beforehand.
3.4.10.2. Example
Shares: general-public
3.4.11. Implements
This OPTIONAL field indicates conformance with existing regulations
and legislation. Values for this field SHOULD use all lowercase
tokens with whitespace being replaced by the dash character (%x2d).
Example values are:
* gdpr
* ccpa
3.4.11.1. Example
Implements: gdpr, ccpa
3.4.12. Deploys
This OPTIONAL field indicates which software is being used for
collecting analytics. Values for this field SHOULD use all lowercase
tokens with whitespace being replaced by the dash character (%x2d).
Example values are:
* google-analytics
* plausible
* hotjar
* matomo
3.4.12.1. Example
Deploys: google-analytics, hotjar
3.5. Examples of analytics.txt files
3.5.1. A site using analytics
# analytics.txt file for www.example.com
Author: Jane Doe <doe@example.com>
Collects: url, referrer, device-type
Stores: first-party-cookies, local-storage
# Usage data is encrypted end-to-end
Uses: javascript
# Users can also delete their usage data only without opting out
Allows: opt-in, opt-out
Retains: 186 days
# Optional fields
Honors: none
Tracks: sessions, users
Varies: none
Shares: per-user
Implements: gdpr
3.5.2. Specifying required fields only
Author: John Doe <doe@example.com>
Collects: url, ip-address, geo-location, user-agent, referrer, device-type, custom-events
Stores: none
Uses: javascript
Allows: none
Retains: perpetual
3.5.3. A site not using any analytics
# analytics.txt file for www.example.com
Author: Jane Doe <doe@example.com>
Collects: none
4. Location of the analytics.txt file
By default, an analytics.txt file SHOULD be placed in the ".well-
known" location as per [RFC8615] of a domain name or IP address.
4.1. Alternatives
In case implementors are unable to meet this requirement, other
options are available.
4.1.1. link Tag
Implementors MAY signal the location of an analytics.txt file in the
context of a HTML document using a link element of rel "analytics"
Example:
<link rel="analytics" href="https://example.com/resources/analytics.txt">
4.1.2. HTTP Header
Implementors MAY send an HTTP header of "X-Analytics-Txt" with a
response, sending the URI of the applicable file.
Example:
X-Analytics-Txt: https://example.com/resources/analytics.txt
4.2. Precedence
In case multiple of these signals are being used, the precedence
taken is:
1. X-Analytics-Txt Header
2. link element
3. ".well-known" location
4.3. Scope of a file
An analytics.txt file located in the ".well-known" location MUST only
apply to the domain or IP address of the URI used to retrieve it, and
SHALL NOT apply to any of its subdomains or parent domains. If the
location is signaled using the HTTP Header or in the document markup
itself, its scope SHALL be limited to the requested resource only.
If distributed in non-standard locations, an analytics.txt file MAY
also apply to products and services provided by the organization
publishing the file (e.g. desktop or mobile applications) and which
cannot be mapped to a domain name or IP address. In such cases,
implementors MUST add sufficient commentary describing the applicable
scope.
5. Security Considerations
5.1. Incorrect or stale information
If information given in an "analytics.txt" file is incorrect or not
kept up to date, this can result in usage of services under wrong
assumptions, thus exposing users to possibly unwanted data collection
and handling. Not having an "analytics.txt" file may be preferable
to having incorrect or stale information in this file. This
guideline also applies to field level: in case of ambiguities or
uncertainties, it's recommended to omit a field or a value rather
than providing incorrect information. Implementors MUST use the
"Author" field (see Section 3.4.1) to allow inquiries about the
correctness of the given information.
5.2. Spam
Implementors should be aware that disclosing mandatory author
information as per Section 3.4.1 in such a file exposes them to
possible Spam schemes or spurious requests.
5.3. Multi-user environments
In multi-user / multi-tenant environments, it may possible for a
single user to take over the location of the "/.well-known/
analytics.txt" file which would also apply to others. Organizations
should ensure the ".well-known" location is properly protected.
Implementors can instead use other locations as per Section 4 in such
scenarios.
6. IANA Considerations
6.1. Well-Known URIs registry
The "Well-Known URIs" registry should be updated with the following
additional values (using the template from [RFC8615]):
URI suffix: analytics.txt
Specification document(s): this document
Status: permanent
7. References
7.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://datatracker.ietf.org/doc/html/rfc2119>.
[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
DOI 10.17487/RFC5322, October 2008,
<https://datatracker.ietf.org/doc/html/rfc5322>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://datatracker.ietf.org/doc/html/rfc8174>.
[RFC8615] Nottingham, M., "Well-Known Uniform Resource Identifiers
(URIs)", RFC 8615, DOI 10.17487/RFC8615, May 2019,
<https://datatracker.ietf.org/doc/html/rfc8615>.
7.2. Informative References
[DNT] Fielding, R.T. and D. Singer, "Tracking Preference
Expression (DNT)", n.d.,
<https://www.w3.org/TR/tracking-dnt/>.
[GPC] Berjon, R., Zimmeck, S., Soltani, A., Harbage, D., and P.
Snyder, "Global Privacy Control (GPC)", n.d.,
<https://globalprivacycontrol.github.io/gpc-spec/>.
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234,
DOI 10.17487/RFC5234, January 2008,
<https://datatracker.ietf.org/doc/html/rfc5234>.
Appendix A. Acknowledgments
The authors would like to acknowledge the feedback and input provided
during the creation of this document as given by Michiel Leenaars,
Cyrill Kraehenbuehl, Lasse Voss.
Authors' Addresses
Frederik Ring
Offen
Email: frederik.ring@gmail.com
Hendrik Niefeld
Offen
Email: hello@niefeld.com

View File

@ -1,52 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>offen/analyticstxt draft-ring-analyticstxt-02 preview</title>
<meta name="viewport" content="initial-scale=1.0">
<style type="text/css">/*<![CDATA[*/
body { font-family: "Helvetica Neue","Open Sans", Helvetica, Calibri,sans-serif; }
h1, h2, td { font-family: "Helvetica Neue", "Roboto Condensed", "Open Sans", Helvetica, Calibri, sans-serif; }
h1 { font-size: 20px; } h2 { font-size: 16px; }
table { margin: 5px 10px; border-collapse: collapse; }
th, td { font-weight: normal; text-align: left; padding: 2px 5px; }
a:link { color: #000; } a:visited { color: #00a; }
/*]]>*/</style>
</head>
<body>
<h1>Editor's drafts for draft-ring-analyticstxt-02 branch of <a href="https://github.com/offen/analyticstxt/tree/draft-ring-analyticstxt-02">offen/analyticstxt</a></h1>
<p>View <a href="issues.html">saved issues</a>, or the latest GitHub <a href="https://github.com/offen/analyticstxt/issues">issues</a> and <a href="https://github.com/offen/analyticstxt/pulls">pull requests</a>.</p>
<table id="branch-draft-ring-analyticstxt-02">
<tr>
<th>draft-ring-analyticstxt</th>
<td><a href="./draft-ring-analyticstxt.html" class="html draft-ring-analyticstxt">html</a></td>
<td><a href="./draft-ring-analyticstxt.txt" class="txt draft-ring-analyticstxt">plain text</a></td>
<td><a href="https://tools.ietf.org/rfcdiff?url1=https://offen.github.io/analyticstxt/draft-ring-analyticstxt.txt&amp;url2=https://offen.github.io/analyticstxt/draft-ring-analyticstxt-02/draft-ring-analyticstxt.txt">diff with main</a></td>
<td><a href="https://tools.ietf.org/rfcdiff?url1=https://tools.ietf.org/id/draft-ring-analyticstxt.txt&amp;url2=https://offen.github.io/analyticstxt/draft-ring-analyticstxt-02/draft-ring-analyticstxt.txt" class="diff draft-ring-analyticstxt">diff with last submission</a></td>
</tr>
</table>
<script>
// @licstart
// Any copyright is dedicated to the Public Domain.
// http://creativecommons.org/publicdomain/zero/1.0/
// @licend
window.onload = function() {
var referrer_branch = 'main';
// e.g., "https://github.com/user/repo/tree/main"
var chunks = document.referrer.split("/");
if (chunks[2] === 'github.com' && chunks[5] === 'tree') {
referrer_branch = chunks[6];
}
let branch = document.querySelector('#branch-' + referrer_branch);
let h = document.location.hash.substring(1);
if (h === 'show') {
document.location.hash = '#' + branch.id;
} else if (branch && h.startsWith('go')) {
let e = branch.querySelector(h.substring(2));
if (e && e.href) {
document.location = e.href;
}
}
};
</script>
</body>
</html>

View File

@ -13,12 +13,12 @@ This document proposes a way for websites and services to declare and disclose t
analytics.txt aims to be an elaborate file format that describes the privacy related characteristics of analytics and tracking software in a non-biased way.
An analytics.txt file is understandable for a non-technical audience, while also useful for the automated consumption by tools and software.
" name="description">
<meta content="xml2rfc 3.9.1" name="generator">
<meta content="xml2rfc 3.12.0" name="generator">
<meta content="Internet-Draft" name="keyword">
<meta content="draft-ring-analyticstxt-latest" name="ietf.draft">
<!-- Generator version information:
xml2rfc 3.9.1
Python 3.9.5
xml2rfc 3.12.0
Python 3.9.7
appdirs 1.4.4
ConfigArgParse 1.3
google-i18n-address 2.5.0
@ -26,13 +26,13 @@ An analytics.txt file is understandable for a non-technical audience, while also
intervaltree 3.1.0
Jinja2 2.11.3
kitchen 1.2.6
lxml 4.6.3
lxml 4.6.5
pycountry 20.7.3
pyflakes 2.3.0
pyflakes 2.3.1
PyYAML 5.4.1
requests 2.25.1
requests 2.26.0
setuptools 52.0.0
six 1.15.0
six 1.16.0
-->
<link href="draft-ring-analyticstxt.xml" rel="alternate" type="application/rfc+xml">
<link href="#copyright" rel="license">
@ -841,11 +841,11 @@ address div.right {
<thead><tr>
<td class="left">Internet-Draft</td>
<td class="center">analytics.txt</td>
<td class="right">August 2021</td>
<td class="right">January 2022</td>
</tr></thead>
<tfoot><tr>
<td class="left">Ring &amp; Niefeld</td>
<td class="center">Expires 19 February 2022</td>
<td class="center">Expires 31 July 2022</td>
<td class="right">[Page]</td>
</tr></tfoot>
</table>
@ -858,12 +858,12 @@ address div.right {
<dd class="internet-draft">draft-ring-analyticstxt-latest</dd>
<dt class="label-published">Published:</dt>
<dd class="published">
<time datetime="2021-08-18" class="published">18 August 2021</time>
<time datetime="2022-01-27" class="published">27 January 2022</time>
</dd>
<dt class="label-intended-status">Intended Status:</dt>
<dd class="intended-status">Informational</dd>
<dt class="label-expires">Expires:</dt>
<dd class="expires"><time datetime="2022-02-19">19 February 2022</time></dd>
<dd class="expires"><time datetime="2022-07-31">31 July 2022</time></dd>
<dt class="label-authors">Authors:</dt>
<dd class="authors">
<div class="author">
@ -912,7 +912,7 @@ An analytics.txt file is understandable for a non-technical audience, while also
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."<a href="#section-boilerplate.1-3" class="pilcrow"></a></p>
<p id="section-boilerplate.1-4">
This Internet-Draft will expire on 19 February 2022.<a href="#section-boilerplate.1-4" class="pilcrow"></a></p>
This Internet-Draft will expire on 31 July 2022.<a href="#section-boilerplate.1-4" class="pilcrow"></a></p>
</section>
</div>
<div id="copyright">
@ -921,7 +921,7 @@ An analytics.txt file is understandable for a non-technical audience, while also
<a href="#name-copyright-notice" class="section-name selfRef">Copyright Notice</a>
</h2>
<p id="section-boilerplate.2-1">
Copyright (c) 2021 IETF Trust and the persons identified as the
Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved.<a href="#section-boilerplate.2-1" class="pilcrow"></a></p>
<p id="section-boilerplate.2-2">
This document is subject to BCP 78 and the IETF Trust's Legal
@ -930,9 +930,9 @@ An analytics.txt file is understandable for a non-technical audience, while also
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in
document must include Revised BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.<a href="#section-boilerplate.2-2" class="pilcrow"></a></p>
warranty as described in the Revised BSD License.<a href="#section-boilerplate.2-2" class="pilcrow"></a></p>
</section>
</div>
<div id="toc">
@ -940,168 +940,168 @@ An analytics.txt file is understandable for a non-technical audience, while also
<a href="#" onclick="scroll(0,0)" class="toplink"></a><h2 id="name-table-of-contents">
<a href="#name-table-of-contents" class="section-name selfRef">Table of Contents</a>
</h2>
<nav class="toc"><ul class="compact ulBare ulEmpty toc">
<li class="compact ulBare ulEmpty toc" id="section-toc.1-1.1">
<nav class="toc"><ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.1">
<p id="section-toc.1-1.1.1"><a href="#section-1" class="xref">1</a>.  <a href="#name-introduction" class="xref">Introduction</a></p>
<ul class="ulBare toc compact ulEmpty">
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.1.2.1">
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.1.2.1">
<p id="section-toc.1-1.1.2.1.1" class="keepWithNext"><a href="#section-1.1" class="xref">1.1</a>.  <a href="#name-motivation" class="xref">Motivation</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.1.2.2">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.1.2.2">
<p id="section-toc.1-1.1.2.2.1" class="keepWithNext"><a href="#section-1.2" class="xref">1.2</a>.  <a href="#name-scope-of-this-proposal" class="xref">Scope of this proposal</a></p>
<ul class="ulBare toc compact ulEmpty">
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.1.2.2.2.1">
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.1.2.2.2.1">
<p id="section-toc.1-1.1.2.2.2.1.1" class="keepWithNext"><a href="#section-1.2.1" class="xref">1.2.1</a>.  <a href="#name-about-providing-a-human-rea" class="xref">About providing a human readable format</a></p>
</li>
</ul>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.1.2.3">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.1.2.3">
<p id="section-toc.1-1.1.2.3.1"><a href="#section-1.3" class="xref">1.3</a>.  <a href="#name-definition-of-the-term-anal" class="xref">Definition of the term "analytics" in the scope of this document</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.1.2.4">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.1.2.4">
<p id="section-toc.1-1.1.2.4.1"><a href="#section-1.4" class="xref">1.4</a>.  <a href="#name-verifying-the-provided-info" class="xref">Verifying the provided information</a></p>
<ul class="ulBare toc compact ulEmpty">
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.1.2.4.2.1">
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.1.2.4.2.1">
<p id="section-toc.1-1.1.2.4.2.1.1"><a href="#section-1.4.1" class="xref">1.4.1</a>.  <a href="#name-non-biased" class="xref">Non-biased</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.1.2.4.2.2">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.1.2.4.2.2">
<p id="section-toc.1-1.1.2.4.2.2.1"><a href="#section-1.4.2" class="xref">1.4.2</a>.  <a href="#name-non-canonical" class="xref">Non-canonical</a></p>
</li>
</ul>
</li>
</ul>
</li>
<li class="compact ulBare ulEmpty toc" id="section-toc.1-1.2">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.2">
<p id="section-toc.1-1.2.1"><a href="#section-2" class="xref">2</a>.  <a href="#name-conventions-and-definitions" class="xref">Conventions and Definitions</a></p>
</li>
<li class="compact ulBare ulEmpty toc" id="section-toc.1-1.3">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3">
<p id="section-toc.1-1.3.1"><a href="#section-3" class="xref">3</a>.  <a href="#name-specification" class="xref">Specification</a></p>
<ul class="ulBare toc compact ulEmpty">
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.1">
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.1">
<p id="section-toc.1-1.3.2.1.1"><a href="#section-3.1" class="xref">3.1</a>.  <a href="#name-comments" class="xref">Comments</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.2">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.2">
<p id="section-toc.1-1.3.2.2.1"><a href="#section-3.2" class="xref">3.2</a>.  <a href="#name-line-separators" class="xref">Line Separators</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.3">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3">
<p id="section-toc.1-1.3.2.3.1"><a href="#section-3.3" class="xref">3.3</a>.  <a href="#name-extensibility" class="xref">Extensibility</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.4">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.4">
<p id="section-toc.1-1.3.2.4.1"><a href="#section-3.4" class="xref">3.4</a>.  <a href="#name-field-definitions" class="xref">Field Definitions</a></p>
<ul class="ulBare toc compact ulEmpty">
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.4.2.1">
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.4.2.1">
<p id="section-toc.1-1.3.2.4.2.1.1"><a href="#section-3.4.1" class="xref">3.4.1</a>.  <a href="#name-author" class="xref">Author</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.4.2.2">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.4.2.2">
<p id="section-toc.1-1.3.2.4.2.2.1"><a href="#section-3.4.2" class="xref">3.4.2</a>.  <a href="#name-collects" class="xref">Collects</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.4.2.3">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.4.2.3">
<p id="section-toc.1-1.3.2.4.2.3.1"><a href="#section-3.4.3" class="xref">3.4.3</a>.  <a href="#name-stores" class="xref">Stores</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.4.2.4">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.4.2.4">
<p id="section-toc.1-1.3.2.4.2.4.1"><a href="#section-3.4.4" class="xref">3.4.4</a>.  <a href="#name-uses" class="xref">Uses</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.4.2.5">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.4.2.5">
<p id="section-toc.1-1.3.2.4.2.5.1"><a href="#section-3.4.5" class="xref">3.4.5</a>.  <a href="#name-allows" class="xref">Allows</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.4.2.6">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.4.2.6">
<p id="section-toc.1-1.3.2.4.2.6.1"><a href="#section-3.4.6" class="xref">3.4.6</a>.  <a href="#name-retains" class="xref">Retains</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.4.2.7">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.4.2.7">
<p id="section-toc.1-1.3.2.4.2.7.1"><a href="#section-3.4.7" class="xref">3.4.7</a>.  <a href="#name-honors" class="xref">Honors</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.4.2.8">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.4.2.8">
<p id="section-toc.1-1.3.2.4.2.8.1"><a href="#section-3.4.8" class="xref">3.4.8</a>.  <a href="#name-tracks" class="xref">Tracks</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.4.2.9">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.4.2.9">
<p id="section-toc.1-1.3.2.4.2.9.1"><a href="#section-3.4.9" class="xref">3.4.9</a>.  <a href="#name-varies" class="xref">Varies</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.4.2.10">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.4.2.10">
<p id="section-toc.1-1.3.2.4.2.10.1"><a href="#section-3.4.10" class="xref">3.4.10</a>. <a href="#name-shares" class="xref">Shares</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.4.2.11">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.4.2.11">
<p id="section-toc.1-1.3.2.4.2.11.1"><a href="#section-3.4.11" class="xref">3.4.11</a>. <a href="#name-implements" class="xref">Implements</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.4.2.12">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.4.2.12">
<p id="section-toc.1-1.3.2.4.2.12.1"><a href="#section-3.4.12" class="xref">3.4.12</a>. <a href="#name-deploys" class="xref">Deploys</a></p>
</li>
</ul>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.5">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.5">
<p id="section-toc.1-1.3.2.5.1"><a href="#section-3.5" class="xref">3.5</a>.  <a href="#name-examples-of-analyticstxt-fi" class="xref">Examples of analytics.txt files</a></p>
<ul class="ulBare toc compact ulEmpty">
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.5.2.1">
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.5.2.1">
<p id="section-toc.1-1.3.2.5.2.1.1"><a href="#section-3.5.1" class="xref">3.5.1</a>.  <a href="#name-a-site-using-analytics" class="xref">A site using analytics</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.5.2.2">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.5.2.2">
<p id="section-toc.1-1.3.2.5.2.2.1"><a href="#section-3.5.2" class="xref">3.5.2</a>.  <a href="#name-specifying-required-fields-" class="xref">Specifying required fields only</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.3.2.5.2.3">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.5.2.3">
<p id="section-toc.1-1.3.2.5.2.3.1"><a href="#section-3.5.3" class="xref">3.5.3</a>.  <a href="#name-a-site-not-using-any-analyt" class="xref">A site not using any analytics</a></p>
</li>
</ul>
</li>
</ul>
</li>
<li class="compact ulBare ulEmpty toc" id="section-toc.1-1.4">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4">
<p id="section-toc.1-1.4.1"><a href="#section-4" class="xref">4</a>.  <a href="#name-location-of-the-analyticstx" class="xref">Location of the analytics.txt file</a></p>
<ul class="ulBare toc compact ulEmpty">
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.4.2.1">
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.1">
<p id="section-toc.1-1.4.2.1.1"><a href="#section-4.1" class="xref">4.1</a>.  <a href="#name-alternatives" class="xref">Alternatives</a></p>
<ul class="ulBare toc compact ulEmpty">
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.4.2.1.2.1">
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.1.2.1">
<p id="section-toc.1-1.4.2.1.2.1.1"><a href="#section-4.1.1" class="xref">4.1.1</a>.  <a href="#name-link-tag" class="xref">link Tag</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.4.2.1.2.2">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.1.2.2">
<p id="section-toc.1-1.4.2.1.2.2.1"><a href="#section-4.1.2" class="xref">4.1.2</a>.  <a href="#name-http-header" class="xref">HTTP Header</a></p>
</li>
</ul>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.4.2.2">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.2">
<p id="section-toc.1-1.4.2.2.1"><a href="#section-4.2" class="xref">4.2</a>.  <a href="#name-precedence" class="xref">Precedence</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.4.2.3">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.3">
<p id="section-toc.1-1.4.2.3.1"><a href="#section-4.3" class="xref">4.3</a>.  <a href="#name-scope-of-a-file" class="xref">Scope of a file</a></p>
</li>
</ul>
</li>
<li class="compact ulBare ulEmpty toc" id="section-toc.1-1.5">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5">
<p id="section-toc.1-1.5.1"><a href="#section-5" class="xref">5</a>.  <a href="#name-security-considerations" class="xref">Security Considerations</a></p>
<ul class="ulBare toc compact ulEmpty">
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.5.2.1">
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.1">
<p id="section-toc.1-1.5.2.1.1"><a href="#section-5.1" class="xref">5.1</a>.  <a href="#name-incorrect-or-stale-informat" class="xref">Incorrect or stale information</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.5.2.2">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.2">
<p id="section-toc.1-1.5.2.2.1"><a href="#section-5.2" class="xref">5.2</a>.  <a href="#name-spam" class="xref">Spam</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.5.2.3">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.3">
<p id="section-toc.1-1.5.2.3.1"><a href="#section-5.3" class="xref">5.3</a>.  <a href="#name-multi-user-environments" class="xref">Multi-user environments</a></p>
</li>
</ul>
</li>
<li class="compact ulBare ulEmpty toc" id="section-toc.1-1.6">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.6">
<p id="section-toc.1-1.6.1"><a href="#section-6" class="xref">6</a>.  <a href="#name-iana-considerations" class="xref">IANA Considerations</a></p>
<ul class="ulBare toc compact ulEmpty">
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.6.2.1">
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.6.2.1">
<p id="section-toc.1-1.6.2.1.1"><a href="#section-6.1" class="xref">6.1</a>.  <a href="#name-well-known-uris-registry" class="xref">Well-Known URIs registry</a></p>
</li>
</ul>
</li>
<li class="compact ulBare ulEmpty toc" id="section-toc.1-1.7">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.7">
<p id="section-toc.1-1.7.1"><a href="#section-7" class="xref">7</a>.  <a href="#name-references" class="xref">References</a></p>
<ul class="ulBare toc compact ulEmpty">
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.7.2.1">
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.7.2.1">
<p id="section-toc.1-1.7.2.1.1"><a href="#section-7.1" class="xref">7.1</a>.  <a href="#name-normative-references" class="xref">Normative References</a></p>
</li>
<li class="ulBare toc compact ulEmpty" id="section-toc.1-1.7.2.2">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.7.2.2">
<p id="section-toc.1-1.7.2.2.1"><a href="#section-7.2" class="xref">7.2</a>.  <a href="#name-informative-references" class="xref">Informative References</a></p>
</li>
</ul>
</li>
<li class="compact ulBare ulEmpty toc" id="section-toc.1-1.8">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.8">
<p id="section-toc.1-1.8.1"><a href="#appendix-A" class="xref">Appendix A</a>.  <a href="#name-acknowledgments" class="xref">Acknowledgments</a></p>
</li>
<li class="compact ulBare ulEmpty toc" id="section-toc.1-1.9">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.9">
<p id="section-toc.1-1.9.1"><a href="#appendix-B" class="xref"></a><a href="#name-authors-addresses" class="xref">Authors' Addresses</a></p>
</li>
</ul>
@ -1217,7 +1217,7 @@ A field MAY NOT appear multiple times.<a href="#section-3-4" class="pilcrow">¶<
<p id="section-3.1-1">Any line beginning with the "#" (%x23) symbol MUST be interpreted as a comment.
The content of the comment may contain any ASCII or Unicode characters in the %x21-7E and %x80-FFFFF ranges plus the tab (%x09) and space (%x20) characters.<a href="#section-3.1-1" class="pilcrow"></a></p>
<p id="section-3.1-2">Example:<a href="#section-3.1-2" class="pilcrow"></a></p>
<div class="artwork art-text alignLeft" id="section-3.1-3">
<div class="alignLeft art-text artwork" id="section-3.1-3">
<pre>
# This is a comment
</pre><a href="#section-3.1-3" class="pilcrow"></a>
@ -1262,7 +1262,7 @@ The field MUST contain a valid email address which shall be used for inquiries a
<h5 id="name-example">
<a href="#section-3.4.1.1" class="section-number selfRef">3.4.1.1. </a><a href="#name-example" class="section-name selfRef">Example</a>
</h5>
<div class="artwork art-text alignLeft" id="section-3.4.1.1-1">
<div class="alignLeft art-text artwork" id="section-3.4.1.1-1">
<pre>
Author: Jane Doe &lt;jane.doe@example.com&gt;
</pre><a href="#section-3.4.1.1-1" class="pilcrow"></a>
@ -1392,7 +1392,7 @@ This MAY be left out in case the analytics software in use offers such functiona
<h5 id="name-example-2">
<a href="#section-3.4.2.2" class="section-number selfRef">3.4.2.2. </a><a href="#name-example-2" class="section-name selfRef">Example</a>
</h5>
<div class="artwork art-text alignLeft" id="section-3.4.2.2-1">
<div class="alignLeft art-text artwork" id="section-3.4.2.2-1">
<pre>
Collects: url, device-type, referrer
</pre><a href="#section-3.4.2.2-1" class="pilcrow"></a>
@ -1466,7 +1466,7 @@ This value is not required in case the analytics software sends static resources
<h5 id="name-example-3">
<a href="#section-3.4.3.2" class="section-number selfRef">3.4.3.2. </a><a href="#name-example-3" class="section-name selfRef">Example</a>
</h5>
<div class="artwork art-text alignLeft" id="section-3.4.3.2-1">
<div class="alignLeft art-text artwork" id="section-3.4.3.2-1">
<pre>
Stores: first-party-cookies, local-storage
</pre><a href="#section-3.4.3.2-1" class="pilcrow"></a>
@ -1508,23 +1508,16 @@ The multi-value field indicates the technical implementation details for how ana
<h6 id="name-server-side">
<a href="#section-3.4.4.1.3" class="section-number selfRef">3.4.4.1.3. </a><a href="#name-server-side" class="section-name selfRef">server-side</a>
</h6>
<p id="section-3.4.4.1.3-1">Collection of usage data is happening on the server side at the application layer.<a href="#section-3.4.4.1.3-1" class="pilcrow"></a></p>
</section>
</div>
<div id="logs">
<section id="section-3.4.4.1.4">
<h6 id="name-logs">
<a href="#section-3.4.4.1.4" class="section-number selfRef">3.4.4.1.4. </a><a href="#name-logs" class="section-name selfRef">logs</a>
</h6>
<p id="section-3.4.4.1.4-1">Usage data is being calculated from server log files.<a href="#section-3.4.4.1.4-1" class="pilcrow"></a></p>
<p id="section-3.4.4.1.3-1">Collection of usage data is happening on the server side at the application layer.
This also includes deriving usage data from server logs.<a href="#section-3.4.4.1.3-1" class="pilcrow"></a></p>
</section>
</div>
<div id="other">
<section id="section-3.4.4.1.5">
<section id="section-3.4.4.1.4">
<h6 id="name-other">
<a href="#section-3.4.4.1.5" class="section-number selfRef">3.4.4.1.5. </a><a href="#name-other" class="section-name selfRef">other</a>
<a href="#section-3.4.4.1.4" class="section-number selfRef">3.4.4.1.4. </a><a href="#name-other" class="section-name selfRef">other</a>
</h6>
<p id="section-3.4.4.1.5-1">Other techniques that are not described in this section are in use.<a href="#section-3.4.4.1.5-1" class="pilcrow"></a></p>
<p id="section-3.4.4.1.4-1">Other techniques that are not described in this section are in use.<a href="#section-3.4.4.1.4-1" class="pilcrow"></a></p>
</section>
</div>
</section>
@ -1534,7 +1527,7 @@ The multi-value field indicates the technical implementation details for how ana
<h5 id="name-example-4">
<a href="#section-3.4.4.2" class="section-number selfRef">3.4.4.2. </a><a href="#name-example-4" class="section-name selfRef">Example</a>
</h5>
<div class="artwork art-text alignLeft" id="section-3.4.4.2-1">
<div class="alignLeft art-text artwork" id="section-3.4.4.2-1">
<pre>
Uses: script
</pre><a href="#section-3.4.4.2-1" class="pilcrow"></a>
@ -1589,7 +1582,7 @@ This value is only applicable in case no data at all is collected after having o
<h5 id="name-example-5">
<a href="#section-3.4.5.2" class="section-number selfRef">3.4.5.2. </a><a href="#name-example-5" class="section-name selfRef">Example</a>
</h5>
<div class="artwork art-text alignLeft" id="section-3.4.5.2-1">
<div class="alignLeft art-text artwork" id="section-3.4.5.2-1">
<pre>
Allows: opt-out
</pre><a href="#section-3.4.5.2-1" class="pilcrow"></a>
@ -1613,7 +1606,7 @@ In case the retention period does not divide evenly into days, it MUST be brough
<h5 id="name-example-6">
<a href="#section-3.4.6.1" class="section-number selfRef">3.4.6.1. </a><a href="#name-example-6" class="section-name selfRef">Example</a>
</h5>
<div class="artwork art-text alignLeft" id="section-3.4.6.1-1">
<div class="alignLeft art-text artwork" id="section-3.4.6.1-1">
<pre>
Retains: 365 days
</pre><a href="#section-3.4.6.1-1" class="pilcrow"></a>
@ -1665,7 +1658,7 @@ This value MUST NOT be used in conjunction with other values.<a href="#section-3
<h5 id="name-example-7">
<a href="#section-3.4.7.2" class="section-number selfRef">3.4.7.2. </a><a href="#name-example-7" class="section-name selfRef">Example</a>
</h5>
<div class="artwork art-text alignLeft" id="section-3.4.7.2-1">
<div class="alignLeft art-text artwork" id="section-3.4.7.2-1">
<pre>
Honors: do-not-track, global-privacy-control
</pre><a href="#section-3.4.7.2-1" class="pilcrow"></a>
@ -1718,7 +1711,7 @@ This value MUST NOT be used in conjunction with other values.<a href="#section-3
<h5 id="name-example-8">
<a href="#section-3.4.8.2" class="section-number selfRef">3.4.8.2. </a><a href="#name-example-8" class="section-name selfRef">Example</a>
</h5>
<div class="artwork art-text alignLeft" id="section-3.4.8.2-1">
<div class="alignLeft art-text artwork" id="section-3.4.8.2-1">
<pre>
Tracks: sessions, users
</pre><a href="#section-3.4.8.2-1" class="pilcrow"></a>
@ -1779,7 +1772,7 @@ This value MUST NOT be used in conjunction with other values.<a href="#section-3
<h5 id="name-example-9">
<a href="#section-3.4.9.2" class="section-number selfRef">3.4.9.2. </a><a href="#name-example-9" class="section-name selfRef">Example</a>
</h5>
<div class="artwork art-text alignLeft" id="section-3.4.9.2-1">
<div class="alignLeft art-text artwork" id="section-3.4.9.2-1">
<pre>
Varies: random
</pre><a href="#section-3.4.9.2-1" class="pilcrow"></a>
@ -1839,7 +1832,7 @@ This MUST also be specified when datasets are aggregated or pseudonymized before
<h5 id="name-example-10">
<a href="#section-3.4.10.2" class="section-number selfRef">3.4.10.2. </a><a href="#name-example-10" class="section-name selfRef">Example</a>
</h5>
<div class="artwork art-text alignLeft" id="section-3.4.10.2-1">
<div class="alignLeft art-text artwork" id="section-3.4.10.2-1">
<pre>
Shares: general-public
</pre><a href="#section-3.4.10.2-1" class="pilcrow"></a>
@ -1866,7 +1859,7 @@ Shares: general-public
<h5 id="name-example-11">
<a href="#section-3.4.11.1" class="section-number selfRef">3.4.11.1. </a><a href="#name-example-11" class="section-name selfRef">Example</a>
</h5>
<div class="artwork art-text alignLeft" id="section-3.4.11.1-1">
<div class="alignLeft art-text artwork" id="section-3.4.11.1-1">
<pre>
Implements: gdpr, ccpa
</pre><a href="#section-3.4.11.1-1" class="pilcrow"></a>
@ -1897,7 +1890,7 @@ Implements: gdpr, ccpa
<h5 id="name-example-12">
<a href="#section-3.4.12.1" class="section-number selfRef">3.4.12.1. </a><a href="#name-example-12" class="section-name selfRef">Example</a>
</h5>
<div class="artwork art-text alignLeft" id="section-3.4.12.1-1">
<div class="alignLeft art-text artwork" id="section-3.4.12.1-1">
<pre>
Deploys: google-analytics, hotjar
</pre><a href="#section-3.4.12.1-1" class="pilcrow"></a>
@ -1918,7 +1911,7 @@ Deploys: google-analytics, hotjar
<h4 id="name-a-site-using-analytics">
<a href="#section-3.5.1" class="section-number selfRef">3.5.1. </a><a href="#name-a-site-using-analytics" class="section-name selfRef">A site using analytics</a>
</h4>
<div class="artwork art-text alignLeft" id="section-3.5.1-1">
<div class="alignLeft art-text artwork" id="section-3.5.1-1">
<pre>
# analytics.txt file for www.example.com
Author: Jane Doe &lt;doe@example.com&gt;
@ -1946,7 +1939,7 @@ Implements: gdpr
<h4 id="name-specifying-required-fields-">
<a href="#section-3.5.2" class="section-number selfRef">3.5.2. </a><a href="#name-specifying-required-fields-" class="section-name selfRef">Specifying required fields only</a>
</h4>
<div class="artwork art-text alignLeft" id="section-3.5.2-1">
<div class="alignLeft art-text artwork" id="section-3.5.2-1">
<pre>
Author: John Doe &lt;doe@example.com&gt;
Collects: url, ip-address, geo-location, user-agent, referrer, device-type, custom-events
@ -1963,7 +1956,7 @@ Retains: perpetual
<h4 id="name-a-site-not-using-any-analyt">
<a href="#section-3.5.3" class="section-number selfRef">3.5.3. </a><a href="#name-a-site-not-using-any-analyt" class="section-name selfRef">A site not using any analytics</a>
</h4>
<div class="artwork art-text alignLeft" id="section-3.5.3-1">
<div class="alignLeft art-text artwork" id="section-3.5.3-1">
<pre>
# analytics.txt file for www.example.com
Author: Jane Doe &lt;doe@example.com&gt;
@ -1995,7 +1988,7 @@ Collects: none
</h4>
<p id="section-4.1.1-1">Implementors MAY signal the location of an analytics.txt file in the context of a HTML document using a link element of rel "analytics"<a href="#section-4.1.1-1" class="pilcrow"></a></p>
<p id="section-4.1.1-2">Example:<a href="#section-4.1.1-2" class="pilcrow"></a></p>
<div class="artwork art-text alignLeft" id="section-4.1.1-3">
<div class="alignLeft art-text artwork" id="section-4.1.1-3">
<pre>
&lt;link rel="analytics" href="https://example.com/resources/analytics.txt"&gt;
</pre><a href="#section-4.1.1-3" class="pilcrow"></a>
@ -2009,7 +2002,7 @@ Collects: none
</h4>
<p id="section-4.1.2-1">Implementors MAY send an HTTP header of <code>X-Analytics-Txt</code> with a response, sending the URI of the applicable file.<a href="#section-4.1.2-1" class="pilcrow"></a></p>
<p id="section-4.1.2-2">Example:<a href="#section-4.1.2-2" class="pilcrow"></a></p>
<div class="artwork art-text alignLeft" id="section-4.1.2-3">
<div class="alignLeft art-text artwork" id="section-4.1.2-3">
<pre>
X-Analytics-Txt: https://example.com/resources/analytics.txt
</pre><a href="#section-4.1.2-3" class="pilcrow"></a>

View File

@ -5,7 +5,7 @@
Network Working Group F. Ring
Internet-Draft H. Niefeld
Intended status: Informational Offen
Expires: 19 February 2022 18 August 2021
Expires: 31 July 2022 27 January 2022
A File Format for the Discoverable Use of Analytics
@ -44,11 +44,11 @@ Status of This Memo
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 19 February 2022.
This Internet-Draft will expire on 31 July 2022.
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the
Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
@ -56,9 +56,9 @@ Copyright Notice
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Simplified BSD License text
as described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License.
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
@ -387,7 +387,7 @@ Table of Contents
3.4.3.1.4. local-storage
Data is persisted on the client using non-cookie JavaScript APIs like
"localStorage", "sessionStorage", "WebSQL" or "IndexedDB"
localStorage, sessionStorage, WebSQL or IndexedDB
3.4.3.1.5. cache
@ -422,13 +422,10 @@ Table of Contents
3.4.4.1.3. server-side
Collection of usage data is happening on the server side at the
application layer.
application layer. This also includes deriving usage data from
server logs.
3.4.4.1.4. logs
Usage data is being calculated from server log files.
3.4.4.1.5. other
3.4.4.1.4. other
Other techniques that are not described in this section are in use.
@ -697,7 +694,7 @@ Retains: perpetual
4.1.2. HTTP Header
Implementors MAY send an HTTP header of "X-Analytics-Txt" with a
Implementors MAY send an HTTP header of X-Analytics-Txt with a
response, sending the URI of the applicable file.
Example:

View File

@ -23,16 +23,6 @@
<td><a href="https://tools.ietf.org/rfcdiff?url1=https://tools.ietf.org/id/draft-ring-analyticstxt.txt&amp;url2=https://offen.github.io/analyticstxt/draft-ring-analyticstxt.txt" class="diff draft-ring-analyticstxt">diff with last submission</a></td>
</tr>
</table>
<h2>Preview for branch <a href="draft-ring-analyticstxt-02">draft-ring-analyticstxt-02</a></h2>
<table id="branch-draft-ring-analyticstxt-02">
<tr>
<th>draft-ring-analyticstxt</th>
<td><a href="draft-ring-analyticstxt-02/draft-ring-analyticstxt.html" class="html draft-ring-analyticstxt">html</a></td>
<td><a href="draft-ring-analyticstxt-02/draft-ring-analyticstxt.txt" class="txt draft-ring-analyticstxt">plain text</a></td>
<td><a href="https://tools.ietf.org/rfcdiff?url1=https://offen.github.io/analyticstxt/draft-ring-analyticstxt.txt&amp;url2=https://offen.github.io/analyticstxt/draft-ring-analyticstxt-02/draft-ring-analyticstxt.txt">diff with main</a></td>
<td><a href="https://tools.ietf.org/rfcdiff?url1=https://tools.ietf.org/id/draft-ring-analyticstxt.txt&amp;url2=https://offen.github.io/analyticstxt/draft-ring-analyticstxt-02/draft-ring-analyticstxt.txt" class="diff draft-ring-analyticstxt">diff with last submission</a></td>
</tr>
</table>
<script>
// @licstart
// Any copyright is dedicated to the Public Domain.