-
Notifications
You must be signed in to change notification settings - Fork 51
RFC: wire FrequencyCapScope through to FrequencyCap #4240
Copy link
Copy link
Open
Labels
claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.Issue has been triaged by the Claude Code triage routine. Remove to re-triage.rfcProtocol change — auto-adds to roadmap boardProtocol change — auto-adds to roadmap boardschemaJSON Schema source-of-truth: definitions, codegen artifacts, validation, hygieneJSON Schema source-of-truth: definitions, codegen artifacts, validation, hygiene
Metadata
Metadata
Assignees
Labels
claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.Issue has been triaged by the Claude Code triage routine. Remove to re-triage.rfcProtocol change — auto-adds to roadmap boardProtocol change — auto-adds to roadmap boardschemaJSON Schema source-of-truth: definitions, codegen artifacts, validation, hygieneJSON Schema source-of-truth: definitions, codegen artifacts, validation, hygiene
Type
Projects
Status
No status
Background
adcp-client-python4.5.0 ships an unusedFrequencyCapScopeenum atenums/frequency_cap_scope.py:```python
class FrequencyCapScope(str, Enum):
package = "package"
```
The enum exists but
core/frequency_cap.jsondoes not have ascopefield that uses it. Looks like a partially-landed proposal.Proposed change
Add
scopetoFrequencyCap:```json
{
"scope": {
"$ref": "/schemas/enums/frequency_cap_scope.json",
"default": "media_buy",
"description": "Apply at media buy or package level"
}
}
```
The enum should likely also include
media_buy(currently only haspackage) — adapter implementations distinguish between buy-level and package-level frequency capping.Use case
salesagent carries
FrequencyCap.scopeas aLiteral['media_buy', 'package']extension. GAM and Mock adapters use it to pick where to apply the cap (line item vs. order). Filed as part of cleanup PR bokelley/salesagent#208.Migration path: salesagent will move to
ext.salesagent.scopeuntil this lands.