|
91 | 91 | }, |
92 | 92 | "revoked_publisher_domains": { |
93 | 93 | "type": "array", |
94 | | - "description": "Publisher domains explicitly removed from this managed network. Validators MUST treat any publisher domain listed here as no-longer-authorized, taking precedence over any appearance of the same domain in `authorized_agents[].publisher_properties[].publisher_domain` / `.publisher_domains[]` or in top-level `properties[].publisher_domain`. Lets a network propagate per-publisher revocations on the next refresh instead of waiting for the file-level 7-day cache cap. Validators MUST hold previously-observed `(publisher_domain, revoked_at)` tuples for 7 days from the validator's first observation, even if the entry vanishes from a subsequent fetch — this closes the rollback gap where an attacker re-serves a stale file with the revocation removed. Networks SHOULD retain entries for at least 7 days after `revoked_at` so validators that didn't observe the original entry still pick it up on refresh.", |
| 94 | + "description": "Publisher domains explicitly removed from this managed network. Validators MUST treat any publisher domain listed here as no-longer-authorized, taking precedence over any appearance of the same domain in `authorized_agents[].publisher_properties[].publisher_domain` / `.publisher_domains[]` or in top-level `properties[].publisher_domain`. Lets a network propagate per-publisher revocations on the next refresh instead of waiting for the file-level 7-day cache cap. Validators MUST hold previously-observed `(publisher_domain, revoked_at)` tuples for 7 days from the validator's first observation, even if the entry vanishes from a subsequent fetch \u2014 this closes the rollback gap where an attacker re-serves a stale file with the revocation removed. Networks SHOULD retain entries for at least 7 days after `revoked_at` so validators that didn't observe the original entry still pick it up on refresh.", |
95 | 95 | "items": { |
96 | 96 | "type": "object", |
97 | 97 | "properties": { |
|
113 | 113 | "publisher_request", |
114 | 114 | "other" |
115 | 115 | ], |
116 | | - "description": "Reason for revocation. Operator-internal self-classification for review routing — not a public accusation. `relationship_ended` is the routine commercial case. `compliance_violation` SHOULD be used only when the network has itself determined the publisher is out of policy; for un-adjudicated third-party allegations (regulator inquiries, advertiser complaints, ongoing investigations), use `other` to avoid making a discoverable adverse statement. `publisher_request` is for publisher-initiated exits." |
| 116 | + "description": "Reason for revocation. Operator-internal self-classification for review routing \u2014 not a public accusation. `relationship_ended` is the routine commercial case. `compliance_violation` SHOULD be used only when the network has itself determined the publisher is out of policy; for un-adjudicated third-party allegations (regulator inquiries, advertiser complaints, ongoing investigations), use `other` to avoid making a discoverable adverse statement. `publisher_request` is for publisher-initiated exits." |
117 | 117 | } |
118 | 118 | }, |
119 | 119 | "required": [ |
|
819 | 819 | ], |
820 | 820 | "examples": [ |
821 | 821 | { |
822 | | - "$schema": "/schemas/3.0.7/adagents.json", |
| 822 | + "$schema": "/schemas/3.0.12/adagents.json", |
823 | 823 | "authoritative_location": "https://cdn.example.com/adagents/v2/adagents.json", |
824 | 824 | "last_updated": "2025-01-15T10:00:00Z" |
825 | 825 | }, |
826 | 826 | { |
827 | | - "$schema": "/schemas/3.0.7/adagents.json", |
| 827 | + "$schema": "/schemas/3.0.12/adagents.json", |
828 | 828 | "properties": [ |
829 | 829 | { |
830 | 830 | "property_id": "example_site", |
|
902 | 902 | "last_updated": "2025-01-10T12:00:00Z" |
903 | 903 | }, |
904 | 904 | { |
905 | | - "$schema": "/schemas/3.0.7/adagents.json", |
| 905 | + "$schema": "/schemas/3.0.12/adagents.json", |
906 | 906 | "contact": { |
907 | 907 | "name": "Meta Advertising Operations", |
908 | 908 | "email": "adops@meta.com", |
|
1011 | 1011 | "last_updated": "2025-01-10T15:30:00Z" |
1012 | 1012 | }, |
1013 | 1013 | { |
1014 | | - "$schema": "/schemas/3.0.7/adagents.json", |
| 1014 | + "$schema": "/schemas/3.0.12/adagents.json", |
1015 | 1015 | "contact": { |
1016 | 1016 | "name": "Tumblr Advertising" |
1017 | 1017 | }, |
|
1050 | 1050 | "last_updated": "2025-01-10T16:00:00Z" |
1051 | 1051 | }, |
1052 | 1052 | { |
1053 | | - "$schema": "/schemas/3.0.7/adagents.json", |
| 1053 | + "$schema": "/schemas/3.0.12/adagents.json", |
1054 | 1054 | "contact": { |
1055 | 1055 | "name": "Example Third-Party Sales Agent", |
1056 | 1056 | "email": "sales@agent.example", |
|
1096 | 1096 | "last_updated": "2025-01-10T17:00:00Z" |
1097 | 1097 | }, |
1098 | 1098 | { |
1099 | | - "$schema": "/schemas/3.0.7/adagents.json", |
| 1099 | + "$schema": "/schemas/3.0.12/adagents.json", |
1100 | 1100 | "contact": { |
1101 | 1101 | "name": "Premium News Publisher", |
1102 | 1102 | "email": "adops@news.example.com", |
|
1171 | 1171 | "last_updated": "2025-01-10T18:00:00Z" |
1172 | 1172 | }, |
1173 | 1173 | { |
1174 | | - "$schema": "/schemas/3.0.7/adagents.json", |
| 1174 | + "$schema": "/schemas/3.0.12/adagents.json", |
1175 | 1175 | "contact": { |
1176 | 1176 | "name": "Polk Automotive Data", |
1177 | 1177 | "email": "partnerships@polk.com", |
|
0 commit comments