Skip to content

Latest commit

 

History

History
301 lines (198 loc) · 11.9 KB

verbose_debugging_reports.md

File metadata and controls

301 lines (198 loc) · 11.9 KB

Verbose Debugging Reports

This document describes the format of verbose debugging reports.

The report data is included in the request body as a JSON list of dictionaries. Each dictionary has a string field type and a dictionary field body, e.g.:

[{
  "type": "source-destination-limit",
  "body": {
    "attribution_destination": "https://destination.example",
    "limit": "100",
    "source_debug_key": "1234567890",
    "source_event_id": "12340873456",
    "source_site": "https://source.example"
  }
}]

The content of the body field depends on the type.

Source debugging reports

The following reports are produced in response to attribution source registrations.

The body will contain the following fields for all source debugging reports:

  • attribution_destination: The source registration's parsed destination sites (i.e. with URLs replaced with sites, duplicates removed, and sorted). This will be a string if there was one such site, or a list of strings if there were multiple.
  • source_event_id: The source registration's source_event_id.
  • source_site: The top-level site on which the source registration occurred.

Additionally:

  • If the source registration contained a valid debug_key and cookie-based debugging was allowed, then the body will also contain a source_debug_key field.
  • If the source registration was rejected due to an API limit, then the body will also contain a string-typed limit field.

source-destination-limit

The source was rejected due to the destination limit.

Additional fields: limit

source-max-event-states-limit

A source is rejected due to the [event state limit][].

Additional fields: limit

source-noised

The source was successfully registered, but it will not be attributable by any subsequent trigger because noise has been applied.

The body may also include a source_destination_limit field if the destination limit was exceeded.

source-storage-limit

The source was rejected due to a storage limit.

Additional fields: limit

source-success

The source was successfully registered or the source was rejected for one of the following reasons:

These error conditions are deliberately not distinguished from a successful registration for security purposes.

The body may also include a source_destination_limit field if the destination limit was exceeded.

source-destination-rate-limit

The source was rejected due to the destinations per source and reporting site rate limit.

Additional fields: limit

source-destination-per-day-rate-limit

The source was rejected due to the destinations per source and reporting site per day rate limit.

Additional fields: limit

source-unknown-error

The source was rejected due to an internal error.

source-channel-capacity-limit

The source was rejected due to the channel-capacity limit.

Additional fields: limit

source-scopes-channel-capacity-limit

The source was rejected due to the attribution scope channel-capacity limit.

Additional fields: limit

source-trigger-state-cardinality-limit

The source was rejected due to the trigger-state cardinality limit.

Additional fields: limit

source-reporting-origin-per-site-limit

The source was rejected due to the reporting origins per source and reporting site limit.

Additional fields: limit

Trigger debugging reports

The following reports are produced in response to attribution trigger registrations.

The body will contain the following fields for all trigger debugging reports except trigger-event-low-priority and trigger-event-excessive-reports:

  • attribution_destination: The top-level site on which the trigger registration occurred.

Additionally:

  • If the trigger registration contained a valid debug_key and cookie-based debugging was allowed, then the body will also contain a trigger_debug_key field.
  • If the trigger registration was rejected due to an API limit, then the body will also contain a string-typed limit field.
  • If the trigger was attributed to a source, then the body will also contain the following fields:
    • source_event_id: The source registration's source_event_id.
    • source_site: The top-level site on which the source registration occurred.
    • source_debug_key: The source registration's debug_key, but omitted if the source registration did not contain a valid debug_key or cookie-based debugging was prohibited.

trigger-no-matching-source

The trigger was rejected because its <reporting origin, destination site> pair could not be matched to a source.

trigger-no-matching-filter-data

The trigger was rejected because its top-level filters did not match the attributed source's filter data.

trigger-event-attributions-per-source-destination-limit

Event-level attribution for the trigger failed due to the max attributions rate limit.

Additional fields: limit

trigger-aggregate-attributions-per-source-destination-limit

Aggregatable attribution for the trigger failed due to the max attributions rate limit.

Additional fields: limit

trigger-reporting-origin-limit

The trigger was rejected due to the attributed reporting origin limit.

Additional fields: limit

trigger-event-deduplicated

Event-level attribution for the trigger was deduplicated.

trigger-event-no-matching-configurations

Event-level attribution for the trigger failed because no event_trigger_data entry matched the attributed source.

trigger-event-noise

Event-level attribution for the trigger failed because the attributed source was subject to noise.

trigger-event-low-priority

Event-level attribution for the trigger failed because the matching event_trigger_data's priority was lower than that of any pending event-level reports for the same source.

The body will be identical to the event-level report body that would have been produced had attribution succeeded.

trigger-event-excessive-reports

Event-level attribution for the trigger failed because the attributed source had already reached the maximum number of reports.

The body will be identical to the event-level report body that would have been produced had attribution succeeded.

trigger-event-storage-limit

Event-level attribution for the trigger failed due to the storage limit.

Additional fields: limit

trigger-event-report-window-not-started

Event-level attribution for the trigger failed because the attributed source's event-level report window hadn't begun.

trigger-event-report-window-passed

Event-level attribution for the trigger failed because the attributed source's event-level report window had passed.

trigger-aggregate-deduplicated

Aggregatable attribution for the trigger was deduplicated.

trigger-aggregate-no-contributions

Aggregatable attribution for the trigger failed because no histogram contributions were produced.

trigger-aggregate-excessive-reports

Aggregatable attribution for the trigger failed because the attributed source had already reached the maximum number of reports.

Additional fields: limit

trigger-aggregate-insufficient-budget

Aggregatable attribution for the trigger failed because the attributed source had insufficient budget.

Additional fields: limit

trigger-aggregate-storage-limit

Aggregatable attribution for the trigger failed due to the storage limit.

Additional fields: limit

trigger-aggregate-report-window-passed

Aggregatable attribution for the trigger failed because the attributed source's aggregatable [report window][attribution trigger algorithm] had passed.

trigger-unknown-error

The trigger was rejected due to an internal error.