demo · v134

Source & Trigger Registration Pair

The cap — num_aggregatable_reports_per_source — lives on the source registration header served by the publisher. Whether that cap applies depends on the trigger registration served by the advertiser: set trigger_context_id and the cap is lifted entirely. Edit both registration headers and watch the outcome change.

Publisher — Attribution-Reporting-Register-Source
Advertiser — Attribution-Reporting-Register-Trigger
include trigger_context_id (lifts the per-source cap)

Outcome — simulated conversion run

Conversions fired
Reports sent
Reports dropped (cap)
Cap regime
Sent
Dropped
// Publisher serves on ad impression:
// Attribution-Reporting-Register-Source: {
//   "source_event_id": "1234567890",
//   "destination": "https://shop.example",
//   "num_aggregatable_reports_per_source": 20,   // ← cap lives HERE
//   "aggregation_keys": { "campaign_budget": "0x1" }
// }
//
// Advertiser serves on conversion:
// Attribution-Reporting-Register-Trigger: {
//   "event_trigger_data": [{ "trigger_data": "1" }],
//   "trigger_context_id": "order-789"   // ← set this to lift the cap
// }
//
// Chrome 134: when trigger_context_id is non-null on the trigger,
// the num_aggregatable_reports_per_source limit is NOT enforced.
// Every trigger fires its report regardless of how many already ran.

see also