Publishing Workflow
When you click Publish, Whathead analyzes your canvas and sends your campaigns to the connected advertising platforms. The publishing process validates your campaigns, determines what actions to take for each entity, and executes API calls to create or update campaigns, ad sets, and ads.- The complete publishing workflow from start to finish
- How to preview changes before publishing
- When entities are created, updated, or skipped
- How to handle publishing errors and retry failed campaigns
Publishing Process Overview
Publishing follows a structured workflow that ensures your campaigns are valid before sending them to platforms:Validation
Preview
Execution
Validation Before Publishing
Before you can publish, Whathead validates your campaigns against platform requirements and system constraints.What Gets Validated
Whathead checks:- Required fields: All mandatory fields must have values
- Budget minimums: Daily or lifetime budgets must meet platform minimums
- Targeting requirements: Audience targeting must be complete and valid
- Creative requirements: Ads must have required assets (images, videos, text)
- Hierarchy constraints: Nodes must follow proper parent-child relationships
- Platform compatibility: Settings must be supported by the target platform
- Objective compatibility: Ad sets connected to the same campaign must have compatible objectives
Common Validation Errors
Budget below minimum
Budget below minimum
- Meta: $1/day
- TikTok: $20/day
- Snapchat: $5/day
- Google: $10/day
Missing required field
Missing required field
Incompatible objectives
Incompatible objectives
Invalid creative format
Invalid creative format
Preview Functionality
After validation passes, you see a preview of what will happen when you publish. The preview shows the action Whathead will take for each entity.Understanding Preview Actions
The preview displays one of three actions for each node:| Action | What It Means | When It Happens |
|---|---|---|
| CREATE | Whathead will create a new entity on the platform | Node has no existing platform ID (new campaign, pasted node, or canvas-origin node) |
| UPDATE | Whathead will update an existing entity on the platform | Node has an existing platform ID and you made changes to its configuration |
| SKIP | Whathead will skip this entity (no API call) | Node has an existing platform ID but you made no changes |
Preview Example
Here’s what you might see in a preview:- The campaign will be updated because you changed its budget
- The first ad set will be skipped because you made no changes
- The first ad under the first ad set will be updated because you changed its copy
- The second ad under the first ad set will be created new
- The second ad set and its ad will be created new
Why Entities Are Skipped
Whathead skips entities that haven’t changed to avoid unnecessary API calls. This improves publishing speed and reduces the chance of rate limiting or API errors. An entity is skipped when:- It has an existing platform ID (loaded from the platform)
- You made no changes to its configuration
- Its parent wasn’t changed or reconnected
Create vs Update vs Skip Behavior
Understanding when entities are created, updated, or skipped is essential for managing campaigns effectively.CREATE Behavior
Entities are created new on the platform when:- Canvas-origin nodes: You added a node directly on the canvas using + Campaign, + Ad Set, or + Ad
- Pasted nodes: You copied and pasted nodes (paste clears existing IDs)
- Duplicated nodes: You used the duplicate function
- Reconnected nodes: You changed a node’s parent connection (creates a duplicate under the new parent)
- First publish: You’re publishing a campaign for the first time
- Whathead sends a CREATE request to the platform API
- The platform generates a new ID for the entity
- Whathead stores the platform ID on the node
- The entity appears in your platform portal as a new campaign, ad set, or ad
UPDATE Behavior
Entities are updated on the platform when:- Loaded from platform: You used Select Existing or Expand to load the entity
- Has existing ID: The node has an existingCampaignId, existingAdSetId, or existingAdId
- Has changes: You modified one or more fields in the node configuration
- Whathead sends an UPDATE request to the platform API
- The platform modifies the existing entity
- The entity retains its original platform ID
- Changes appear in your platform portal on the existing campaign, ad set, or ad
SKIP Behavior
Entities are skipped (no API call) when:- Loaded from platform: The entity has an existing platform ID
- No changes: You made no modifications to the entity configuration
- Parent unchanged: The entity’s parent wasn’t changed or reconnected
- Whathead makes no API call for this entity
- The entity remains unchanged on the platform
- Publishing completes faster because fewer API calls are needed
Decision Table
Here’s a quick reference for understanding CREATE vs UPDATE vs SKIP:| Node Origin | Has Existing ID? | Has Changes? | Action |
|---|---|---|---|
| Canvas (new node) | No | N/A | CREATE |
| Loaded from platform | Yes | Yes | UPDATE |
| Loaded from platform | Yes | No | SKIP |
| Copy/paste | No (cleared) | N/A | CREATE |
| Reconnected | No (cleared) | N/A | CREATE (duplicate) |
| Canvas (re-publish) | No | N/A | CREATE (duplicate) |
Publishing Execution
After you confirm the publish action, Whathead executes API calls to create or update entities on the platform.Execution Order
Whathead publishes entities in hierarchical order:- Campaigns first: All campaign nodes are created or updated
- Ad sets second: After campaigns complete, ad sets are created or updated
- Ads last: After ad sets complete, ads are created or updated
Progress Indicators
During publishing, you see:- Processing: Entity is currently being sent to the platform
- Success: Entity was created or updated successfully
- Failed: Entity encountered an error (see error message)
- Skipped: Entity was skipped (no changes)
Handling Partial Failures
If some entities succeed and others fail:- Successful entities: Receive platform IDs and are live on the platform
- Failed entities: Remain on the canvas with error messages
- Dependent entities: Children of failed parents are not published
Retry and Error Handling
When publishing fails, you can fix errors and retry.Common Publishing Errors
Authentication error
Authentication error
Rate limit exceeded
Rate limit exceeded
Budget insufficient
Budget insufficient
Creative rejected
Creative rejected
Retry Workflow
To retry failed entities:Fix the issues
Publishing Confirmation
After publishing completes, you see a summary of results:- Total entities processed: How many campaigns, ad sets, and ads were involved
- Successful: How many entities were created or updated successfully
- Skipped: How many entities were skipped (no changes)
- Failed: How many entities encountered errors
- View in platform: Click to open the platform portal and see your live campaigns
- Download report: Export a detailed report of publishing results
- Close: Return to the Campaign Builder
Special Publishing Scenarios
Publishing Multiple Campaigns
When you publish multiple campaigns at once:- Whathead processes campaigns sequentially to respect platform rate limits
- Platform-specific delays are applied between campaigns
- Each campaign’s hierarchy is published in order (campaign → ad sets → ads)
- Partial failures don’t affect other campaigns
- You see individual status for each campaign
Cross-Platform Publishing
When publishing campaigns to different platforms:- Each platform is processed independently
- Platform-specific validation rules apply
- Authentication is checked per platform
- Failures on one platform don’t affect others
Bulk Publishing
When publishing many entities:- Whathead batches API calls to improve efficiency
- Rate limiting is managed automatically
- Progress indicators show overall completion percentage
- You can cancel publishing mid-process (entities already published remain live)
What Happens After Publishing
Once publishing succeeds:- Platform IDs stored: Entities receive existingCampaignId, existingAdSetId, or existingAdId
- Campaigns go live: Entities appear in your platform portal
- Delivery starts: If campaigns are active, platforms begin delivering ads
- Canvas updates: Nodes show success indicators and platform IDs
Editing Published Campaigns
After publishing, you can:- Edit node configurations and republish to UPDATE entities
- Add new ad sets or ads under existing campaigns (new entities are CREATED)
- Pause or activate campaigns by changing status fields
- Delete nodes (this doesn’t delete entities on the platform—use the platform portal for that)
Publishing Best Practices
Next Steps
Now that you understand the publishing workflow, explore these related topics:Validation Errors
Create vs Update
Publishing Scenarios
Existing Campaign Editing
Bulk Publishing
Platform Limitations
Common Questions
What happens if I publish a canvas-origin campaign multiple times?
What happens if I publish a canvas-origin campaign multiple times?
Can I undo a publish?
Can I undo a publish?
Why was my entity skipped?
Why was my entity skipped?
What happens if publishing fails halfway through?
What happens if publishing fails halfway through?
Can I publish to multiple platforms at once?
Can I publish to multiple platforms at once?
How do I know if my changes will update or create new entities?
How do I know if my changes will update or create new entities?
What happens when I reconnect a node to a different parent?
What happens when I reconnect a node to a different parent?
Can I preview changes without publishing?
Can I preview changes without publishing?