This directory contains the implementation of the client-side logic for the Aggregation service proposed for the Attribution Reporting API.
Currently, this library's consumers are:
In broad strokes, this library exposes functions built from a few basic operations:
AggregatableReportRequest
) and serializes and encrypts its cleartext payload with the aggregation service‘s public key to produce an aggregatable report (AggregatableReport
). This library automatically fetches the aggregation service server’s public key if a valid key is not already stored on disk. For more information on payload encryption, see payload_encryption.md.Consumers can use the following methods of the public interface, defined in aggregation_service.h
.
AggregationService::ScheduleReport()
schedules a report to be assembled and sent after a randomized delay. This is used for standard Private Aggregation reports.AggregationService::AssembleAndSendReport()
assembles and sends a report immediately. This is used for Private Aggregation duplicate debug reports.AggregationService::AssembleReport()
just assembles a report. This is used for Attribution Reporting aggregatable reports. Note that this consumer implements their own scheduling and sending logic.PrivacySandbox.AggregationService.ScheduledRequests
contains histograms that pertain to requests created by ScheduleReport()
.PrivacySandbox.AggregationService.UnscheduledRequests
contains histograms that pertain to requests created by AssembleAndSendReport()
.A command-line tool that generates aggregatable reports for testing is available. Please see //tools/aggregation_service's README for more detail
TODO: Expand this README.