{
"description": "An incoming source with null scopes should remove previous matching sources' scopes data.",
"api_config": {
"needs_attribution_scopes": true,
"max_destinations_per_rate_limit_window": "2",
"max_destinations_per_rate_limit_window_reporting_site": "2"
},
"input": {
"registrations": [
// S1: attribution scopes -> [1] destinations -> [D1]
// attribution scope limit -> 4.
{
"timestamp": "0",
"registration_request": {
"context_origin": "https://source.test",
"Attribution-Reporting-Eligible": "navigation-source"
},
"responses": [
{
"url": "https://reporter.test/register-source",
"response": {
"Attribution-Reporting-Register-Source": {
"destination": "https://destination.test",
"source_event_id": "123",
"attribution_scopes": {
"limit": 4,
"values": [
"1"
]
}
}
}
}
]
},
// S2: used to trigger global destination limit in following sources.
{
"timestamp": "1",
"registration_request": {
"context_origin": "https://source.test",
"Attribution-Reporting-Eligible": "navigation-source"
},
"responses": [
{
"url": "https://reporter2.test/register-source",
"response": {
"Attribution-Reporting-Register-Source": {
"destination": "https://destination2.test",
"source_event_id": "111",
"attribution_scopes": {
"limit": 4,
"values": [
"1"
]
}
}
}
}
]
},
// S3: attribution_scopes -> [] destinations -> [D1, D3].
// S1 attribution scope fields will be defaulted. S3 will hit the global
// max destinations limit and not register.
{
"timestamp": "1000",
"registration_request": {
"context_origin": "https://source.test",
"Attribution-Reporting-Eligible": "navigation-source"
},
"responses": [
{
"url": "https://reporter.test/register-source",
"response": {
"Attribution-Reporting-Register-Source": {
"destination": [
"https://destination.test",
"https://destination3.test"
],
"source_event_id": "234"
}
}
}
]
},
// T1: attribution scope -> "1", destination -> D1.
// This should match to none as S1 scopes were set to null.
{
"timestamp": "2000",
"registration_request": {
"context_origin": "https://destination.test"
},
"responses": [
{
"url": "https://reporter.test/register-trigger",
"debug_permission": true,
"response": {
"Attribution-Reporting-Register-Trigger": {
"attribution_scopes": [
"1"
],
"debug_reporting": true,
"event_trigger_data": [
{}
]
}
}
}
]
},
// T2: attribution scope -> [], destination -> D1.
// This should match to S1 as S3 was not registered.
{
"timestamp": "3000",
"registration_request": {
"context_origin": "https://destination.test"
},
"responses": [
{
"url": "https://reporter.test/register-trigger",
"debug_permission": true,
"response": {
"Attribution-Reporting-Register-Trigger": {
"debug_reporting": true,
"event_trigger_data": [
{
"trigger_data": "2"
}
]
}
}
}
]
},
// S4: attribution_scope_limit -> 4 attribution scopes -> [1].
// S1 should be deleted due to having a now null scope limit. S4 will hit
// the global max destinations limit and not register.
{
"timestamp": "4000",
"registration_request": {
"context_origin": "https://source.test",
"Attribution-Reporting-Eligible": "navigation-source"
},
"responses": [
{
"url": "https://reporter.test/register-source",
"response": {
"Attribution-Reporting-Register-Source": {
"destination": [
"https://destination.test",
"https://destination3.test"
],
"source_event_id": "345",
"attribution_scopes": {
"limit": 4,
"values": [
"2"
]
}
}
}
}
]
},
// T3: attribution scope -> [], destination -> D1.
// This should match to none as S1 was deleted and S4 was not registered.
{
"timestamp": "5000",
"registration_request": {
"context_origin": "https://destination.test"
},
"responses": [
{
"url": "https://reporter.test/register-trigger",
"debug_permission": true,
"response": {
"Attribution-Reporting-Register-Trigger": {
"debug_reporting": true,
"event_trigger_data": [
{
"trigger_data": "3"
}
]
}
}
}
]
}
]
},
"output": {
"reports": [
{
"payload": [
{
"body": {
"attribution_destination": "https://destination.test"
},
"type": "trigger-no-matching-source"
}
],
"report_time": "2000",
"report_url": "https://reporter.test/.well-known/attribution-reporting/debug/verbose"
},
{
"payload": [
{
"body": {
"attribution_destination": "https://destination.test"
},
"type": "trigger-no-matching-source"
}
],
"report_time": "5000",
"report_url": "https://reporter.test/.well-known/attribution-reporting/debug/verbose"
},
{
"payload": {
"attribution_destination": "https://destination.test",
"randomized_trigger_rate": 0.0024263,
"scheduled_report_time": "172800",
"source_event_id": "123",
"source_type": "navigation",
"trigger_data": "2"
},
"report_url": "https://reporter.test/.well-known/attribution-reporting/report-event-attribution",
"report_time": "172800000"
}
]
}
}