Summary
The current decisioning platform mapping treats signal-owned the same as signal-marketplace: both require and advertise get_signals plus activate_signal.
For publisher-owned signals that are already usable on the seller platform inventory, activate_signal is the wrong semantic. The seller returns its own first-party signals from get_signals; those signals can only be used on that seller inventory and are already active/usable in later media-buy targeting. There is no buyer-triggered destination provisioning step.
Current SDK behavior
adcp.decisioning.handler.SPECIALISM_TO_ADVERTISED_TOOLS["signal-owned"] includes activate_signal.
adcp.decisioning.dispatch.REQUIRED_METHODS_PER_SPECIALISM["signal-owned"] requires activate_signal.
- This forces owned-signal sellers either to expose a no-op/fictional activation API or avoid the
signal-owned specialism.
Expected behavior
One of these would work:
- Treat
signal-owned as discovery-only by default: advertise/require get_signals, not activate_signal.
- Add a capability/feature flag that distinguishes "owned signals already usable on this inventory" from "signals requiring destination provisioning".
- Split the specialisms so marketplace/provisioned signals continue to require
activate_signal, while seller-local owned signals do not.
signals.features.catalog_signals=True plus get_signals is sufficient for the discovery/catalog use case.
Observed in
Summary
The current decisioning platform mapping treats
signal-ownedthe same assignal-marketplace: both require and advertiseget_signalsplusactivate_signal.For publisher-owned signals that are already usable on the seller platform inventory,
activate_signalis the wrong semantic. The seller returns its own first-party signals fromget_signals; those signals can only be used on that seller inventory and are already active/usable in later media-buy targeting. There is no buyer-triggered destination provisioning step.Current SDK behavior
adcp.decisioning.handler.SPECIALISM_TO_ADVERTISED_TOOLS["signal-owned"]includesactivate_signal.adcp.decisioning.dispatch.REQUIRED_METHODS_PER_SPECIALISM["signal-owned"]requiresactivate_signal.signal-ownedspecialism.Expected behavior
One of these would work:
signal-ownedas discovery-only by default: advertise/requireget_signals, notactivate_signal.activate_signal, while seller-local owned signals do not.signals.features.catalog_signals=Trueplusget_signalsis sufficient for the discovery/catalog use case.Observed in
adcp==5.6.0