-
Notifications
You must be signed in to change notification settings - Fork 24
feat: AXE-27 add unified assets field for better asset discovery #361
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
We have a "required" field already, so I think the better approach might be to rename assets_required to just assets, and have the required field determine which are needed. This would also let us do something like 'one of' in the future. I think we should deprecate assets_required but continue to support it until we fully migrate. |
Definitely agree 👍 I hesitated initially since it’s a somewhat invasive change, but it’s clearly better to make this adjustment early. I'll update the PR The adcp-client PR will be posted after this is merged :) |
dd50792 to
d3ba7a8
Compare
- Add new 'assets' array to format schema with 'required' boolean per asset - Deprecate 'assets_required' (still supported for backward compatibility) - Enables full asset discovery for buyers and AI agents - Update server to include both fields in format responses - Update documentation across creative and media-buy docs - Bump version to 2.6.0
d3ba7a8 to
a8723be
Compare
- Resolve package-lock.json version to 2.6.0 - Accept main's simplified media-buy/list_creative_formats (points to creative docs) - Update creative/list_creative_formats with assets field - Fix asset_type: use 'url' for tracking pixels (valid content type)
bokelley
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
overall - do we split out a 2.6.x branch so we can have ongoing patches to 2.5.x?
| output_format_ids: format.output_format_ids, | ||
| agent_url: format.agent_url, | ||
| })), | ||
| formats: formats.map(format => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do we have to do this map anyway? why can't we just return directly from the JS client here? and shouldn't it be smart about this and map assets_required to assets.required = true so the client is magically compatible?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct me if I was wrong, this won't be used by any adcp client, this seems used in the member page (https://agenticadvertising.org/members), where when user on a creative agent in the member directory, it opens a modal and calls loadAgentFormats(url)
In the client there is no http call needed, everything enforced by the type(schema) already, we will add logic to make the migration happens behind scene.
- So all historical data are automatically compatible
- the new creatives will automatically mapped to the new field even if they're using the old spec
|
This PR has been moved to #490 |
Add unified
assetsfield to format schema for better asset discoveryTicket: https://linear.app/scope3-projects/issue/AXE-27/adcp-protocol-fix-fix-document-improve-assets-discovery-for-tracker
Problem
Currently, buyers and AI agents have no way to discover what optional assets a creative format supports. The
assets_requiredarray only tells them the minimum assets needed, but formats often support additional assets that enhance the creative:Without asset discovery, AI agents building creatives miss opportunities to create richer experiences.
Solution
Since each asset in
assets_requiredalready has arequiredboolean field, we introduced a unifiedassetsarray:required: true- Asset MUST be provided for a valid creativerequired: false- Asset is optional, enhances the creative when providedThis is cleaner than having two separate arrays (
assets_required+assets_optional).Example
Changes
assetsfield, deprecateassets_required(still supported)assetsandassets_requiredin format responsesMigration
Non-breaking change.
assets_requiredis deprecated but still supported for backward compatibility. New implementations should useassets.