Use this file to discover all available pages before exploring further.
Privacy-Centric Cross-Media Measurement
A distributed system for cross-publisher, cross-media ads measurement through secure multiparty computations. Built with differential privacy and cryptographic protocols for guaranteed privacy protection.
Get the measurement system up and running in your environment
1
Understand the Architecture
Review the system architecture to understand how the Kingdom and Duchy nodes work together. The Kingdom serves as the central coordinator while Duchies perform secure multiparty computations.
# Clone the repositorygit clone https://github.com/world-federation-of-advertisers/cross-media-measurement.gitcd cross-media-measurement
The system requires at least one Kingdom deployment and two independent Duchy deployments for security.
2
Set Up Your Build Environment
Install Bazel and the required dependencies for building the measurement system components.
# Check Bazel version (see .bazelversion for required version)bazel --version# Run the test suite to verify your environmentbazel test //src/test/...
See the Building guide for detailed environment requirements including Clang, SWIG, and platform specifications.
3
Deploy to Kubernetes
Choose your deployment target (GKE or EKS) and follow the deployment guides for Kingdom and Duchy components.
Explore the Setup & Deployment section for platform-specific instructions.
4
Configure and Run Measurements
Once deployed, configure measurement reports through the Kingdom API. Publishers fulfill requisitions by computing encrypted sketches and sending them to Duchies.
# Example: Create a measurement using the v2alpha API# (Requires authenticated access to your Kingdom deployment)curl -X POST https://your-kingdom-api/v2alpha/measurements \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d @measurement-config.json
Explore by Topic
Deep dive into specific areas of the measurement system
System Architecture
Learn how the Kingdom, Duchies, and secure multiparty computation protocols work together.
Deployment Guides
Deploy the measurement system on GKE or EKS with Terraform and Kubernetes.
Differential Privacy
Understand how differential privacy protects user privacy in measurement results.
API Reference
Explore the public and system APIs for measurements, requisitions, and reporting.
Operations
Manage certificates, retention policies, and runtime operations for production deployments.
Development
Build from source, run tests, and contribute to the measurement system codebase.
Key Features
What makes the Halo measurement system unique
Privacy-Preserving Computation
Secure multiparty computation ensures no single party can decrypt measurement data. All Duchies must participate to generate results.
Differential Privacy
Built-in differential privacy protections with noise injection and privacy budget management for mathematically guaranteed privacy.
Multi-Cloud Architecture
Deploy across multiple cloud providers (GCP, AWS) for enhanced security and independence between Duchy operators.
Kubernetes-Native
Designed for cloud-native deployments with Kubernetes manifests, Helm configurations, and Terraform modules.