sync_creatives
Synchronize creative assets with the centralized creative library using upsert semantics. This task supports bulk operations, partial updates, assignment management, and comprehensive validation for efficient creative library management. Response Time: Instant to days (returnscompleted, working < 120s, or submitted for hours/days)
Overview
Thesync_creatives task provides a powerful, efficient approach to creative library management using upsert semantics - creatives are either created (if they don’t exist) or updated (if they do exist) based on their creative_id. This eliminates the need to check existence before uploading and enables seamless bulk operations.
Key Features:
- Bulk Operations: Process up to 100 creatives per request
- Upsert Semantics: Automatic create-or-update behavior
- Patch Mode: Update only specified fields while preserving others
- Assignment Management: Bulk assign creatives to packages in the same request
- Validation Modes: Choose between strict (fail-fast) or lenient (process-valid) validation
- Dry Run: Preview changes before applying them
- Generative Creatives: Submit brand manifest and generation prompts for AI or human-created creatives
- Comprehensive Reporting: Detailed results for each creative processed
Request Parameters
Core Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
creatives | array | Yes | Array of creative assets to sync (max 100) |
patch | boolean | No | Partial update mode (default: false) |
dry_run | boolean | No | Preview changes without applying (default: false) |
validation_mode | enum | No | Validation strictness: “strict” or “lenient” (default: “strict”) |
push_notification_config | PushNotificationConfig | No | Optional webhook for async sync notifications (see Webhook Configuration below) |
Assignment Management
| Parameter | Type | Required | Description |
|---|---|---|---|
assignments | object | No | Bulk creative-to-package assignments (simple package-level only - see note below) |
delete_missing | boolean | No | Archive creatives not in this sync (default: false) |
assignments field only supports package-level assignments without placement targeting. To assign creatives to specific placements within a product, use create_media_buy or update_media_buy with creative_assignments[].placement_ids.
Creative Asset Structure
Each creative in thecreatives array follows the Creative Asset schema with support for:
Hosted Assets:
creative_id,name,format_id(required)assetsobject with asset types likeimage,video,audio(required)tags(optional)
creative_id,name,format_id(required)assetsobject withvast,daast,html, orjavascriptasset types (required)tags(optional)
creative_id,name,format_id(required - references a generative format)assetsobject withpromoted_offeringsandgeneration_prompt- Publisher creates the creative (AI or human - buyer may not know the implementation method)
- Response includes
preview_urlwhen ready for review - Note: Some buyers may care about creation method for brand safety or compliance reasons
Webhook Configuration (Task-Specific)
For large bulk operations or creative approval workflows, you can provide a task-specific webhook to be notified when the sync completes:- Bulk sync takes longer than ~120 seconds (status:
working→completed) - Creative approval required (status:
submitted→completed) - Large creative uploads processing asynchronously
- Protocol fields at top-level (operation_id, task_type, status, etc.)
resultcontains complete sync_creatives response with summary and results
Response Format
The response provides comprehensive details about the sync operation:Generative Creative Workflow
For generative formats, buyers submit a creative manifest (brand information + generation instructions) rather than finished assets. The publisher then creates the creative - either through AI generation, human designers, or a hybrid approach. Key Characteristics:- Implementation Agnostic: Buyer submits the same request whether the publisher uses AI, human designers, or both
- Async by Default: Response time ranges from seconds (AI) to days (human review)
- Preview-First: Publisher returns
preview_urlfor buyer approval before campaign launch - Simple Approval: Set
approved: trueto finalize orapproved: falsewith updatedgeneration_promptto request changes - Conversational Refinement: Use
context_idfrom response to continue the conversation
context_id is managed at the protocol level (automatic in A2A, manual in MCP) and is not part of the task request parameters. See Context Management for details.
Workflow Steps:
premium_bespoke_display- Custom-designed display ad (human designer, 24-48h)ai_native_responsive- AI-generated native ad (automated, under 60s)hybrid_video_30s- AI draft + human polish (hybrid, 2-4h)
Usage Examples
Example 1: Full Sync with New Creatives
Upload new creatives with automatic assignment:Example 2: Patch Update - Asset URLs Only
Update asset URLs without affecting other creative properties:Example 3: Third-Party HTML Tag Upload
Upload a creative with third-party HTML tag:Example 4: Generative Creative Submission
Submit a creative manifest for publisher to create (AI or human): Request:url field in the promoted_offerings asset represents the advertiser’s brand or product website (e.g., https://retailer.com), not a reference to a cached manifest. Publishers can use this URL to gather additional brand context if needed.
Initial Response (Async):
context_id parameter is needed in requests.
The buyer may not know if this creative was generated by AI in 20 seconds or designed by a human team over 2 days. The workflow is identical either way, though publishers should communicate their approach for buyers who care about creation method.
Example 5: Dry Run Preview
Preview changes before applying them:Example 6: Library Replacement (Advanced)
Replace entire creative library with new set (use with extreme caution):Operational Modes
Patch vs Full Upsert
Full Upsert Mode (default):- Replaces the entire creative with provided data
- Missing optional fields are cleared/reset to defaults
- Use when you want to ensure complete creative definition
patch: true):
- Updates only the fields specified in the request
- Preserves existing values for unspecified fields
- Use for selective updates (e.g., updating click URLs only)
Validation Modes
Strict Mode (default):- Entire sync operation fails if any creative has validation errors
- Ensures data consistency and integrity
- Use for production uploads where quality is critical
- Processes valid creatives and reports errors for invalid ones
- Allows partial success in bulk operations
- Use for large imports where some failures are acceptable
Error Handling
Validation Errors
Common validation scenarios and their handling:Assignment Errors
When assignments fail, they’re reported within each creative’s result:Best Practices
1. Batch Size Management
- Stay within 100 creatives per request limit
- For large libraries, break into multiple sync requests
- Consider rate limiting to avoid overwhelming the platform
2. Validation Strategy
- Use
dry_run: trueto preview changes for large updates - Start with
validation_mode: "strict"to catch data quality issues - Switch to
lenientmode for large imports with expected failures
3. Creative ID Strategy
- Use consistent, meaningful creative ID conventions
- Include format hints in IDs (e.g.,
hero_video_30s,banner_300x250) - Avoid special characters that might cause URL encoding issues
4. Assignment Management
- Group related package assignments in single requests
- Use assignment bulk operations for efficiency
- Monitor assignment results for failed package assignments
5. Error Recovery
- Implement retry logic for transient failures
- Parse detailed error responses to identify data quality issues
- Use patch mode for correcting specific field errors
Migration from Legacy Creative Tasks
Thesync_creatives task replaces previous action-based creative management approaches:
Old Approach:
- No
actionparameter needed - upsert behavior is automatic - Bulk operations are the default, not an add-on
- Assignment management integrated into sync operation
- More granular control with patch mode and validation modes
Platform Considerations
Google Ad Manager
- Requires policy compliance review for new creatives
- Supports standard IAB formats with automatic format validation
- Creative approval typically within 24 hours
Kevel
- Supports custom creative formats and templates
- Real-time creative decisioning capabilities
- Flexible template-based native ad support
Triton Digital
- Audio-specific platform with specialized format requirements
- Station-level creative targeting capabilities
- Supports DAAST and standard audio ad formats
Related Tasks
list_creatives- Query creative library with filtering and searchcreate_media_buy- Create campaigns that use library creativeslist_creative_formats- Discover supported creative formats
The sync_creatives task provides the foundation for efficient creative library management in AdCP, enabling bulk operations and flexible update patterns while maintaining data quality and consistency.