Problem
List operations have inconsistent pagination support:
| Operation |
Pagination |
Style |
list_creatives |
Yes |
Offset-based (limit/offset, has_more, total_pages) |
list_property_lists |
Yes |
Cursor-based (max_results/cursor, has_more) |
list_accounts |
None |
Simple array |
get_products |
None |
Simple array |
Two operations lack pagination entirely, and the two that have it use different patterns (offset vs cursor).
Proposal
-
Add pagination to get_products and list_accounts — both can return unbounded result sets from platforms with many products or retailer accounts.
-
Standardize on one pagination pattern. Cursor-based is generally better for large or frequently-changing datasets (which ad platforms tend to be), and avoids the consistency issues of offset-based pagination.
Suggested standard pattern for requests:
{
"pagination": {
"max_results": 50,
"cursor": "optional_cursor_string"
}
}
Suggested standard pattern for responses:
{
"pagination": {
"total_count": 142,
"returned_count": 50,
"has_more": true,
"cursor": "next_page_cursor"
}
}
-
Migrate list_creatives from offset-based to cursor-based for consistency (breaking change, would need a major version bump or deprecation period).
Related
Adapter implementation issue: adcontextprotocol/adcp-client#222
Problem
List operations have inconsistent pagination support:
list_creativeslimit/offset,has_more,total_pages)list_property_listsmax_results/cursor,has_more)list_accountsget_productsTwo operations lack pagination entirely, and the two that have it use different patterns (offset vs cursor).
Proposal
Add pagination to
get_productsandlist_accounts— both can return unbounded result sets from platforms with many products or retailer accounts.Standardize on one pagination pattern. Cursor-based is generally better for large or frequently-changing datasets (which ad platforms tend to be), and avoids the consistency issues of offset-based pagination.
Suggested standard pattern for requests:
{ "pagination": { "max_results": 50, "cursor": "optional_cursor_string" } }Suggested standard pattern for responses:
{ "pagination": { "total_count": 142, "returned_count": 50, "has_more": true, "cursor": "next_page_cursor" } }Migrate
list_creativesfrom offset-based to cursor-based for consistency (breaking change, would need a major version bump or deprecation period).Related
Adapter implementation issue: adcontextprotocol/adcp-client#222