From a10b53645c116984e1cf691c3af7f74feffba05b Mon Sep 17 00:00:00 2001 From: Max Ostapenko <1611259+max-ostapenko@users.noreply.github.com> Date: Wed, 19 Aug 2026 00:07:17 +0200 Subject: [PATCH] docs: migrate ads metric documentation to dedicated directory and clean up privacy reference documentation Signed-off-by: Max Ostapenko <1611259+max-ostapenko@users.noreply.github.com> --- .../docs/reference/custom-metrics/ads.mdx | 446 ------------------ .../reference/custom-metrics/other/ads.mdx | 370 +++++++++++++++ .../{other.mdx => other/index.mdx} | 2 +- .../docs/reference/custom-metrics/privacy.mdx | 229 ++++----- 4 files changed, 455 insertions(+), 592 deletions(-) delete mode 100644 src/content/docs/reference/custom-metrics/ads.mdx create mode 100644 src/content/docs/reference/custom-metrics/other/ads.mdx rename src/content/docs/reference/custom-metrics/{other.mdx => other/index.mdx} (97%) diff --git a/src/content/docs/reference/custom-metrics/ads.mdx b/src/content/docs/reference/custom-metrics/ads.mdx deleted file mode 100644 index f4856a4..0000000 --- a/src/content/docs/reference/custom-metrics/ads.mdx +++ /dev/null @@ -1,446 +0,0 @@ ---- -title: Ads custom metric -description: Reference docs for the feature struct ---- - -_Appears in: [`custom_metrics.other`](/reference/custom-metrics/other/) struct_\ -_As: [`ads`](/reference/custom-metrics/other/#ads)_ - -
-An example of the decoded object from `https://www.amazon.com/` page crawl -```json -{ - "ads": { - "present": true, - "status": 200, - "redirected": false, - "account_count": 1, - "account_types": { - "direct": { - "domains": [ - "placeholder.example.com" - ], - "account_count": 1, - "domain_count": 1 - }, - "reseller": { - "domains": [], - "account_count": 0, - "domain_count": 0 - } - }, - "line_count": 10, - "variables": [], - "variable_count": 0 - }, - "app_ads": { - "present": true, - "status": 200, - "redirected": false, - "account_count": 1, - "account_types": { - "direct": { - "domains": [ - "placeholder.example.com" - ], - "account_count": 1, - "domain_count": 1 - }, - "reseller": { - "domains": [], - "account_count": 0, - "domain_count": 0 - } - }, - "line_count": 10, - "variables": [], - "variable_count": 0 - }, - "sellers": { - "present": true, - "redirected": true, - "status": 200, - "seller_count": 2732, - "seller_types": { - "publisher": { - "domains": [ - "cumuli.com", - "realself.com", - "trendscatchers.io", - ... - ], - "seller_count": 2199, - "domain_count": 1923 - }, - "intermediary": { - "domains": [ - "bidsxchange.com", - "vuukle.com", - "vdo.ai", - ... - ], - "seller_count": 232, - "domain_count": 172 - }, - "both": { - "domains": [ - "gourmetads.com", - "freestar.com", - "shinez.io", - ... - ], - "seller_count": 148, - "domain_count": 134 - } - }, - "passthrough_count": 0, - "confidential_count": 2 - } -} -``` -
- -## Schema - -### `ads` - -Type: `object` - -Contains information about the ads.txt file. - -#### `ads.present` - -Type: `boolean` - -Indicates if the ads.txt file is present. - -#### `ads.status` - -Type: `integer` - -HTTP status code of the ads.txt file response. - -#### `ads.redirected` - -Type: `boolean` - -Indicates if the ads.txt file request was redirected. - -#### `ads.redirected_to` - -Type: `string` - -URL to which the ads.txt resource was redirected. - -#### `ads.account_count` - -Type: `integer` - -Number of advertising accounts listed in the ads.txt file. - -#### `ads.account_types` - -Type: `object` - -Types of accounts (direct or reseller) listed in the ads.txt file. - -#### `ads.account_types.direct` - -Type: `object` - -Information about direct advertising accounts. - -##### `ads.account_types.direct.domains` - -Type: `array` - -List of domains with direct advertising accounts. - -##### `ads.account_types.direct.account_count` - -Type: `integer` - -Number of direct advertising accounts. - -##### `ads.account_types.direct.domain_count` - -Type: `integer` - -Number of unique domains with direct advertising accounts. - -#### `ads.account_types.reseller` - -Type: `object` - -Information about reseller advertising accounts. - -##### `ads.account_types.reseller.domains` - -Type: `array` - -List of domains with reseller advertising accounts. - -##### `ads.account_types.reseller.account_count` - -Type: `integer` - -Number of reseller advertising accounts. - -##### `ads.account_types.reseller.domain_count` - -Type: `integer` - -Number of unique domains with reseller advertising accounts. - -#### `ads.line_count` - -Type: `integer` - -Total number of lines in the ads.txt file. - -#### `ads.variables` - -Type: `array` - -List of variables found in the ads.txt file. - -#### `ads.variable_count` - -Type: `integer` - -Number of variables found in the ads.txt file. - -### `app_ads` - -Type: `object` - -Contains information about the app-ads.txt file. - -#### `app_ads.present` - -Type: `boolean` - -Indicates if the app-ads.txt file is present. - -#### `app_ads.status` - -Type: `integer` - -HTTP status code of the app-ads.txt file response. - -#### `app_ads.redirected` - -Type: `boolean` - -Indicates if the app-ads.txt file request was redirected. - -#### `app_ads.redirected_to` - -Type: `string` - -URL to which the app-ads.txt resource was redirected. - -#### `app_ads.account_count` - -Type: `integer` - -Number of advertising accounts listed in the app-ads.txt file. - -#### `app_ads.account_types` - -Type: `object` - -Types of accounts (direct or reseller) listed in the app-ads.txt file. - -#### `app_ads.account_types.direct` - -Type: `object` - -Information about direct advertising accounts. - -##### `app_ads.account_types.direct.domains` - -Type: `array` - -List of domains with direct advertising accounts. - -##### `app_ads.account_types.direct.account_count` - -Type: `integer` - -Number of direct advertising accounts. - -##### `app_ads.account_types.direct.domain_count` - -Type: `integer` - -Number of unique domains with direct advertising accounts. - -#### `app_ads.account_types.reseller` - -Type: `object` - -Information about reseller advertising accounts. - -##### `app_ads.account_types.reseller.domains` - -Type: `array` - -List of domains with reseller advertising accounts. - -##### `app_ads.account_types.reseller.account_count` - -Type: `integer` - -Number of reseller advertising accounts. - -##### `app_ads.account_types.reseller.domain_count` - -Type: `integer` - -Number of unique domains with reseller advertising accounts. - -#### `app_ads.line_count` - -Type: `integer` - -Total number of lines in the app-ads.txt file. - -#### `app_ads.variables` - -Type: `array` - -List of variables found in the app-ads.txt file. - -#### `app_ads.variable_count` - -Type: `integer` - -Number of variables found in the app-ads.txt file. - -### `sellers` - -Type: `object` - -Contains information about the sellers.json file. - -#### `sellers.present` - -Type: `boolean` - -Indicates if the sellers.json file is present. - -#### `sellers.status` - -Type: `integer` - -HTTP status code of the sellers.json file response. - -#### `sellers.redirected` - -Type: `boolean` - -Indicates if the sellers.json file request was redirected. - -#### `sellers.redirected_to` - -Type: `string` - -URL to which the sellers.json resource was redirected. - -#### `sellers.seller_count` - -Type: `integer` - -Number of sellers listed in the sellers.json file. - -#### `sellers.seller_types` - -Type: `object` - -Types of sellers (publisher, intermediary, both) listed in the sellers.json file. - -#### `sellers.seller_types.publisher` - -Type: `object` - -Information about publisher sellers. - -##### `sellers.seller_types.publisher.domains` - -Type: `array` - -List of domains associated with publisher sellers. - -##### `sellers.seller_types.publisher.seller_count` - -Type: `integer` - -Number of publisher sellers. - -##### `sellers.seller_types.publisher.domain_count` - -Type: `integer` - -Number of unique domains associated with publisher sellers. - -#### `sellers.seller_types.intermediary` - -Type: `object` - -Information about intermediary sellers. - -##### `sellers.seller_types.intermediary.domains` - -Type: `array` - -List of domains associated with intermediary sellers. - -##### `sellers.seller_types.intermediary.seller_count` - -Type: `integer` - -Number of intermediary sellers. - -##### `sellers.seller_types.intermediary.domain_count` - -Type: `integer` - -Number of unique domains associated with intermediary sellers. - -#### `sellers.seller_types.both` - -Type: `object` - -Information about sellers who are both publishers and intermediaries. - -##### `sellers.seller_types.both.domains` - -Type: `array` - -List of domains associated with sellers who are both publishers and intermediaries. - -##### `sellers.seller_types.both.seller_count` - -Type: `integer` - -Number of sellers who are both publishers and intermediaries. - -##### `sellers.seller_types.both.domain_count` - -Type: `integer` - -Number of unique domains associated with sellers who are both publishers and intermediaries. - -#### `sellers.passthrough_count` - -Type: `integer` - -Number of passthrough sellers listed in the sellers.json file. - -#### `sellers.confidential_count` - -Type: `integer` - -Number of confidential sellers listed in the sellers.json file. - diff --git a/src/content/docs/reference/custom-metrics/other/ads.mdx b/src/content/docs/reference/custom-metrics/other/ads.mdx new file mode 100644 index 0000000..74f33b8 --- /dev/null +++ b/src/content/docs/reference/custom-metrics/other/ads.mdx @@ -0,0 +1,370 @@ +--- +title: Ads custom metric +description: Reference docs for the ads custom metric +--- + +_Appears in: [`custom_metrics.other`](/reference/custom-metrics/other/) struct_\ +_As: [`ads`](/reference/custom-metrics/other/#ads)_ + +## Schema + +### `ads` + +Type: `object` + +Contains information about the ads.txt file. See [IAB Ads.txt Specification](https://github.com/InteractiveAdvertisingBureau/Supply-Chain-Validation/blob/main/ads.txt%20v1.1.md). + +#### `ads.present` + +Type: `boolean` + +Indicates if the ads.txt or app-ads.txt file is present. + +#### `ads.status` + +Type: `integer` + +HTTP status code of the ads.txt file response. + +#### `ads.redirected` + +Type: `boolean` + +Indicates if the ads.txt file request was redirected. + +#### `ads.redirected_to` + +Type: `string` + +URL to which the ads.txt resource was redirected. + +#### `ads.account_count` + +Type: `integer` + +Number of advertising accounts listed in the ads.txt file. + +#### `ads.account_types` + +Type: `object` + +Types of accounts (direct or reseller) listed in the ads.txt file. + +##### `ads.account_types.direct` + +Type: `object` + +Information about direct advertising accounts. + +###### `ads.account_types.direct.domains` + +Type: `array` + +List of domains with advertising accounts of this type. + +###### `ads.account_types.direct.account_count` + +Type: `integer` + +Number of advertising accounts of this type. + +###### `ads.account_types.direct.domain_count` + +Type: `integer` + +Number of unique domains with advertising accounts of this type. + +##### `ads.account_types.reseller` + +Type: `object` + +Information about reseller advertising accounts. + +###### `ads.account_types.reseller.domains` + +Type: `array` + +List of domains with advertising accounts of this type. + +###### `ads.account_types.reseller.account_count` + +Type: `integer` + +Number of advertising accounts of this type. + +###### `ads.account_types.reseller.domain_count` + +Type: `integer` + +Number of unique domains with advertising accounts of this type. + +#### `ads.line_count` + +Type: `integer` + +Total number of lines in the ads.txt file. + +#### `ads.variables` + +Type: `array` + +List of variables found in the ads.txt file. + +#### `ads.variable_count` + +Type: `integer` + +Number of variables found in the ads.txt file. + +#### `ads.error` + +Type: `string` + +Error message if fetch or parse failed. + +### `app_ads` + +Type: `object` + +Contains information about the app-ads.txt file. See [IAB App-Ads.txt Specification](https://github.com/InteractiveAdvertisingBureau/Supply-Chain-Validation/blob/main/app-ads.txt.md). + +#### `app_ads.present` + +Type: `boolean` + +Indicates if the ads.txt or app-ads.txt file is present. + +#### `app_ads.status` + +Type: `integer` + +HTTP status code of the ads.txt file response. + +#### `app_ads.redirected` + +Type: `boolean` + +Indicates if the ads.txt file request was redirected. + +#### `app_ads.redirected_to` + +Type: `string` + +URL to which the ads.txt resource was redirected. + +#### `app_ads.account_count` + +Type: `integer` + +Number of advertising accounts listed in the ads.txt file. + +#### `app_ads.account_types` + +Type: `object` + +Types of accounts (direct or reseller) listed in the ads.txt file. + +##### `app_ads.account_types.direct` + +Type: `object` + +Information about direct advertising accounts. + +###### `app_ads.account_types.direct.domains` + +Type: `array` + +List of domains with advertising accounts of this type. + +###### `app_ads.account_types.direct.account_count` + +Type: `integer` + +Number of advertising accounts of this type. + +###### `app_ads.account_types.direct.domain_count` + +Type: `integer` + +Number of unique domains with advertising accounts of this type. + +##### `app_ads.account_types.reseller` + +Type: `object` + +Information about reseller advertising accounts. + +###### `app_ads.account_types.reseller.domains` + +Type: `array` + +List of domains with advertising accounts of this type. + +###### `app_ads.account_types.reseller.account_count` + +Type: `integer` + +Number of advertising accounts of this type. + +###### `app_ads.account_types.reseller.domain_count` + +Type: `integer` + +Number of unique domains with advertising accounts of this type. + +#### `app_ads.line_count` + +Type: `integer` + +Total number of lines in the ads.txt file. + +#### `app_ads.variables` + +Type: `array` + +List of variables found in the ads.txt file. + +#### `app_ads.variable_count` + +Type: `integer` + +Number of variables found in the ads.txt file. + +#### `app_ads.error` + +Type: `string` + +Error message if fetch or parse failed. + +### `sellers` + +Type: `object` + +Contains information about the sellers.json file. See [IAB Sellers.json Specification](https://github.com/InteractiveAdvertisingBureau/Supply-Chain-Validation/blob/main/sellers-json.md). + +#### `sellers.present` + +Type: `boolean` + +Indicates if the sellers.json file is present. + +#### `sellers.status` + +Type: `integer` + +HTTP status code of the sellers.json file response. + +#### `sellers.redirected` + +Type: `boolean` + +Indicates if the sellers.json file request was redirected. + +#### `sellers.redirected_to` + +Type: `string` + +URL to which the sellers.json resource was redirected. + +#### `sellers.seller_count` + +Type: `integer` + +Number of sellers listed in the sellers.json file. + +#### `sellers.seller_types` + +Type: `object` + +Types of sellers (publisher, intermediary, both) listed in the sellers.json file. + +##### `sellers.seller_types.publisher` + +Type: `object` + +Information about publisher sellers. + +###### `sellers.seller_types.publisher.domains` + +Type: `array` + +List of domains associated with this seller type. + +###### `sellers.seller_types.publisher.seller_count` + +Type: `integer` + +Number of sellers of this type. + +###### `sellers.seller_types.publisher.domain_count` + +Type: `integer` + +Number of unique domains associated with this seller type. + +##### `sellers.seller_types.intermediary` + +Type: `object` + +Information about intermediary sellers. + +###### `sellers.seller_types.intermediary.domains` + +Type: `array` + +List of domains associated with this seller type. + +###### `sellers.seller_types.intermediary.seller_count` + +Type: `integer` + +Number of sellers of this type. + +###### `sellers.seller_types.intermediary.domain_count` + +Type: `integer` + +Number of unique domains associated with this seller type. + +##### `sellers.seller_types.both` + +Type: `object` + +Information about sellers who are both publishers and intermediaries. + +###### `sellers.seller_types.both.domains` + +Type: `array` + +List of domains associated with this seller type. + +###### `sellers.seller_types.both.seller_count` + +Type: `integer` + +Number of sellers of this type. + +###### `sellers.seller_types.both.domain_count` + +Type: `integer` + +Number of unique domains associated with this seller type. + +#### `sellers.passthrough_count` + +Type: `integer` + +Number of passthrough sellers listed in the sellers.json file. + +#### `sellers.confidential_count` + +Type: `integer` + +Number of confidential sellers listed in the sellers.json file. + +#### `sellers.error` + +Type: `string` + +Error message if fetch or parse failed. + diff --git a/src/content/docs/reference/custom-metrics/other.mdx b/src/content/docs/reference/custom-metrics/other/index.mdx similarity index 97% rename from src/content/docs/reference/custom-metrics/other.mdx rename to src/content/docs/reference/custom-metrics/other/index.mdx index f090056..ebdeb8a 100644 --- a/src/content/docs/reference/custom-metrics/other.mdx +++ b/src/content/docs/reference/custom-metrics/other/index.mdx @@ -10,7 +10,7 @@ _As: [`other`](/reference/structs/custom-metrics/#other)_ ### `ads` -Advertising technology and usage. See the [ads](/reference/custom-metrics/ads/) custom metric for more information. +Advertising technology and usage. See the [ads](/reference/custom-metrics/other/ads/) custom metric for more information. ### `almanac` diff --git a/src/content/docs/reference/custom-metrics/privacy.mdx b/src/content/docs/reference/custom-metrics/privacy.mdx index 9c17847..d858170 100644 --- a/src/content/docs/reference/custom-metrics/privacy.mdx +++ b/src/content/docs/reference/custom-metrics/privacy.mdx @@ -6,288 +6,227 @@ description: Reference docs for the privacy custom metric _Appears in: [`custom_metrics`](/reference/structs/custom-metrics/) struct_\ _As: [`privacy`](/reference/structs/custom-metrics/#privacy)_ -
-An example of the decoded object from `https://www.google.com/` page crawl -```json -{ - "privacy_wording_links": [ - { - "text": "Privacy" - } - ], - "iab_tcf_v1": { - "present": false, - "data": null, - "compliant_setup": null - }, - "iab_tcf_v2": { - "present": false, - "data": null, - "compliant_setup": null - }, - "iab_usp": { - "present": false, - "privacy_string": null - }, - "navigator_doNotTrack": false, - "navigator_globalPrivacyControl": false, - "document_permissionsPolicy": false, - "document_featurePolicy": false, - "referrerPolicy": { - "entire_document_policy": "origin", - "individual_requests": null, - "link_relations": null - }, - "media_devices": { - "navigator_mediaDevices_enumerateDevices": false, - "navigator_mediaDevices_getUserMedia": true, - "navigator_mediaDevices_getDisplayMedia": false - }, - "geolocation": { - "navigator_geolocation_getCurrentPosition": false, - "navigator_geolocation_watchPosition": false - }, - "fingerprinting": { - "counts": { - "prefers-contrast": 4, - "forced-colors": 15, - "devicememory": 1, - "hardwareconcurrency": 2, - "localstorage": 5, - "screen.width": 7, - "screen.height": 5, - "sessionstorage": 1, - "gettimezoneoffset": 5, - "maxtouchpoints": 5, - "ontouchstart": 5, - "navigator.vendor": 1, - "getchanneldata": 4, - "navigator.platform": 1 - }, - "likelyFingerprintingScripts": [ - "https://www.google.com/", - "https://www.gstatic.com/og/_/js/k=og.qtm.en_US.ftxzKLuybBw.2019.O/rt=j/m=qabr,q_d,qcwid,qapid,qald,q_dg/exm=qaaw,qadd,qaid,qein,qhaw,qhba,qhbr,qhch,qhga,qhid,qhin/d=1/ed=1/rs=AA2YrTsOEv0aSAP39vut5xzjLXfdU4aRbQ", - ... - ] - }, - "request_hostnames_with_cname": { - "ogs.google.com": [ - "www3.l.google.com" - ], - "apis.google.com": [ - "plus.l.google.com" - ] - }, - "ccpa_link": { - "hasCCPALink": false, - "CCPALinkPhrases": [] - } -} -``` -
- ## Schema -### `privacy_wording_links` - -Type: `array` - -Links related to privacy policy. - -#### `privacy_wording_links[i].text` - -Type: `string` - -Title of the link. - ### `iab_tcf_v1` Type: `object` -IAB TCF v1 settings. +IAB Transparency and Consent Framework v1 settings and vendor consents. See [IAB TCF v1.1](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/CMP%20JS%20API%20v1.1%20Final.md). #### `iab_tcf_v1.present` Type: `boolean` -Presence of IAB TCF v1. +Whether the `__cmp` API function is present on the window object. #### `iab_tcf_v1.data` Type: `object` -TCF v1 vendor consents. [VendorConsents](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/CMP%20JS%20API%20v1.1%20Final.md#vendorconsents-) +TCF v1 vendor consents data returned by `getVendorConsents`. See [VendorConsents](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/CMP%20JS%20API%20v1.1%20Final.md#vendorconsents-). #### `iab_tcf_v1.compliant_setup` Type: `boolean` -Verifies compliance of TCF v1 vendor consents. +Verifies whether the TCF v1 CMP setup is compliant with IAB standards. ### `iab_tcf_v2` Type: `object` -IAB TCF v2 settings. +IAB Transparency and Consent Framework v2 settings and vendor consents. See [IAB TCF v2](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md). #### `iab_tcf_v2.present` Type: `boolean` -Presence of IAB TCF v2. +Whether the `__tcfapi` API function is present on the window object. #### `iab_tcf_v2.data` Type: `object` -TCF v2 vendor consents. [TCData](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md#tcdata) +TCF v2 vendor consents data returned by `getTCData`. See [TCData](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md#tcdata). #### `iab_tcf_v2.compliant_setup` Type: `boolean` -Verifies compliance of TCF v2 vendor consents. +Verifies whether the TCF v2 CMP setup is compliant with IAB standards. + +### `iab_gpp` + +Type: `object` + +Global Privacy Platform (GPP) ping response data. See [Global-Privacy-Platform](https://github.com/InteractiveAdvertisingBureau/Global-Privacy-Platform). + +#### `iab_gpp.present` + +Type: `boolean` + +Whether the `__gpp` API function is present on the window object. + +#### `iab_gpp.data` + +Type: `object` + +Ping response data returned by the `__gpp` API. ### `iab_usp` Type: `object` -Shows the presence of IAB U.S. Privacy String. +IAB US Privacy User Signal Mechanism (USP API) data. See [USPrivacy](https://github.com/InteractiveAdvertisingBureau/USPrivacy). #### `iab_usp.present` Type: `boolean` -Shows the presence of IAB U.S. Privacy String. +Whether the `__uspapi` API function is present on the window object. #### `iab_usp.privacy_string` Type: `string` -IAB U.S. Privacy String. +US Privacy string returned by `getUSPData`. ### `navigator_doNotTrack` Type: `boolean` -Indicates whether the browser's "Do Not Track" setting is enabled. +Whether the browser's "Do Not Track" setting was accessed or detected in response bodies. See [EFF Do Not Track](https://www.eff.org/issues/do-not-track). ### `navigator_globalPrivacyControl` Type: `boolean` -Indicates whether the browser's Global Privacy Control setting is enabled. +Whether the Global Privacy Control (GPC) property was accessed or detected in response bodies. See [Global Privacy Control](https://globalprivacycontrol.org/). ### `document_permissionsPolicy` Type: `boolean` -Indicates the presence of the Permissions Policy. +Whether document Permissions Policy is referenced in response bodies. See [W3C Permissions Policy](https://www.w3.org/TR/permissions-policy-1/#introspection). ### `document_featurePolicy` Type: `boolean` -Indicates the presence of the Feature Policy. +Whether document Feature Policy (legacy Permissions Policy) is referenced in response bodies. ### `referrerPolicy` Type: `object` -Specifies the referrer policy for the entire document and individual requests. +Referrer policy declared for the entire document, subresource requests, or link relations. See [MDN Referrer-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy). #### `referrerPolicy.entire_document_policy` Type: `string` -Referrer policy for the entire document. +Referrer policy set for the entire document using meta tag. #### `referrerPolicy.individual_requests` +Type: `array` + +Referrer policies specified on individual elements via referrerpolicy attribute. + +##### `referrerPolicy.individual_requests[i].tagName` + Type: `string` -Referrer policy for individual requests. +HTML tag name of the element (e.g., IMG, SCRIPT). -#### `referrerPolicy.link_relations` +##### `referrerPolicy.individual_requests[i].referrerpolicy` Type: `string` -Referrer policy for link relations. +Value of the referrerpolicy attribute. + +##### `referrerPolicy.individual_requests[i].count` + +Type: `integer` + +Number of occurrences on the page. -### `media_devices` +#### `referrerPolicy.link_relations` Type: `object` -Tracks the usage of media device APIs like `enumerateDevices` and `getUserMedia`. +Count of elements specifying rel="noreferrer" grouped by HTML tag name. -#### `media_devices["API_NAME"]` +### `request_hostnames_with_cname` -Type: `boolean` +Type: `object` -Indicates usage of a particular API. +Mapping of request hostnames to their canonical CNAME chains. -### `geolocation` +### `ccpa_link` Type: `object` -Tracks the usage of geolocation APIs like `getCurrentPosition` and `watchPosition`. +California Consumer Privacy Act (CCPA) compliance links detection. See [CPPA FAQ](https://cppa.ca.gov/faq.html). -#### `geolocation["API_NAME"]` +#### `ccpa_link.hasCCPALink` Type: `boolean` -Indicates usage of a particular API. +Whether links matching CCPA opt-out criteria were found on the page. -### `fingerprinting` +### `iab_ddr` Type: `object` -Tracks potential fingerprinting attempts by counting API calls and listing likely fingerprinting scripts. +IAB Data Deletion Request Framework response data. See [Data Deletion Request Framework](https://github.com/InteractiveAdvertisingBureau/Data-Subject-Rights/blob/main/Data%20Deletion%20Request%20Framework.md). -#### `fingerprinting.counts` +#### `iab_ddr.present` -Type: `object` +Type: `boolean` -Counts of fingerprinting-related API calls. +Whether the `/dsrdelete.json` endpoint exists and returns valid JSON. -#### `fingerprinting.counts["API_NAME"]` +#### `iab_ddr.status` Type: `integer` -Counts of fingerprinting-related API calls. +HTTP status code of the `/dsrdelete.json` request. -#### `fingerprinting.likelyFingerprintingScripts` +#### `iab_ddr.redirected` -Type: `array` +Type: `boolean` -List of likely fingerprinting script URLs. +Whether the request was redirected. -### `request_hostnames_with_cname` +#### `iab_ddr.identifiers` -Type: `object` +Type: `array` -Lists hostnames with their corresponding CNAME records. +Sanitized identifiers supported for data deletion requests. -#### `request_hostnames_with_cname.["HOSTNAME"]` +#### `iab_ddr.endpointOrigin` -Type: `array` +Type: `string` -CNAME records for a given hostname. +Target origin if redirected. -### `ccpa_link` +#### `iab_ddr.vendorScriptPresent` -Type: `object` +Type: `boolean` -California Consumer Privacy Act (CCPA) compliance. +Whether vendor script is declared. -#### `ccpa_link.hasCCPALink` +#### `iab_ddr.vendorScriptRequirement` Type: `boolean` -Presence of a CCPA link. +Whether vendor script requirement is declared. + +#### `iab_ddr.error` -#### `ccpa_link.CCPALinkPhrases` +Type: `string` -Type: `array` +Error message if request or parsing failed. -Related CCPA link phrases.