feat: Upgrade to adcp-client-python 2.18.0 and enhance list_creative_formats response #43
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR upgrades the adcp-client-python dependency to 2.18.0 and enhances the list_creative_formats tool to provide better human-readable output for LLM consumption.
Changes
1. Enhanced list_creative_formats Response
Added human-readable format details in the tool response content field
Each format now displays: name, ID, type, dimensions, description, required assets, optional assets, and supported macros
LLMs can now see full format specifications without needing structured data parsing
2. Upgraded to adcp-client-python 2.18.0
Updated dependency from adcp>=2.13.0 to adcp>=2.18.0
Migrated to new assets field (replaces deprecated assets_required)
Added create_asset() helper function returning the new Assets type
Backfill assets_required from assets for backward compatibility using get_required_assets() utility
3. Added Optional Impression Tracker Asset
Added create_impression_tracker_asset() helper for 3rd party tracking pixels
All formats (except VAST) now include an optional impression_tracker asset
VAST formats excluded as they have built-in tracking in the XML
4. Updated Server Utilities
_format_to_human_readable() now uses get_required_assets() and get_optional_assets() from adcp
Properly distinguishes between required and optional assets in output
5. Test Updates
Updated tests for PreviewRender which is now a RootModel (access via .root)
Updated tests for relaxed schema validation (additional fields now allowed)
Updated test_info_card_formats.py to verify new assets/assets_required structure
6. Bug Fix
Removed IMPRESSION_URL from COMMON_MACROS (not a universal macro)
Testing
All 256 tests pass ✅
Lint checks pass ✅
1. Test new assets discovery
2. Test improvement on LLM response
Before:


Now:
