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.