demo · v130
cross-campaign confusion — and how scopes fix it
The chromestatus motivation: "API callers not receiving attribution reports or incorrect attribution in scenarios where there are multiple different advertisers/campaigns that all convert on the same destination site." Walk through the exact scenario, with the API's old and new attribution decisions side-by-side.
Privacy Sandbox simulator
The Attribution Reporting API requires Privacy Sandbox enabled and only delivers reports off-thread with noise. This page is a deterministic walkthrough of the spec's matching rules so you can see the change in behavior without waiting on real reports.
pick a real-world scenario:
user journey
attribution decision
before scopes (pre-Chrome 130)
click "replay" above
with attribution_scopes (Chrome 130+)
click "replay" above
the spec change
// BEFORE: filter happens AFTER source selection.
// Same eTLD+1 destination = all sources are candidates.
// Browser picks one by recency/priority — often the wrong campaign.
{
"source_event_id": "1234",
"destination": "https://shop.example" // shared destination = collision
}
// AFTER: filter happens BEFORE attribution. scopes restrict which
// sources can match which triggers.
{
"source_event_id": "1234",
"destination": "https://shop.example",
"attribution_scopes": {
"limit": 5,
"values": ["campaign-shoes"]
}
}
// Trigger from shoes campaign only matches scope "campaign-shoes":
{ "attribution_scopes": ["campaign-shoes"] }