Skip to main content

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.
What you’ll learn:
  • 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:
1

Validation

Whathead checks all nodes for errors and platform-specific constraints. Campaigns with validation errors cannot publish until you fix the issues.
2

Preview

You review what will happen for each entity: which will be created new, which will update existing entities, and which will be skipped because they haven’t changed.
3

Confirmation

You confirm the publish action. Whathead begins executing API calls to the platform.
4

Execution

Whathead sends requests to create or update entities on the platform. Progress indicators show which entities are processing.
5

Results

You see success or failure status for each entity. Successful entities receive platform IDs. Failed entities show error messages with resolution steps.

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
You cannot publish campaigns with validation errors. Red warning icons on nodes indicate errors that must be fixed. Click the node to see detailed error messages and resolution steps.

Common Validation Errors

Error: “Campaign budget must be at least $X per day”Cause: The daily budget is below the platform’s minimum requirement.Resolution: Increase the budget to meet the minimum. Platform minimums:
  • Meta: $1/day
  • TikTok: $20/day
  • Snapchat: $5/day
  • Google: $10/day
Error: “Ad set targeting is required”Cause: A required field is empty or incomplete.Resolution: Open the node configuration and fill in all required fields marked with asterisks (*).
Error: “Cannot connect campaigns with different objectives to the same ad set”Cause: You connected multiple campaigns with different objectives to one ad set node. Ad sets inherit optimization goals from their parent campaign, so all parent campaigns must have compatible objectives.Resolution: Either use separate ad sets for each campaign objective, or ensure all parent campaigns have the same objective.
Error: “Image dimensions must be at least 1080x1080 pixels”Cause: Creative assets don’t meet platform specifications.Resolution: Upload assets that meet the platform’s format, dimension, and file size requirements. Check Upload Requirements for specifications.
Fix validation errors as you build rather than waiting until publish. Green checkmarks on nodes indicate they’re ready to publish.

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:
ActionWhat It MeansWhen It Happens
CREATEWhathead will create a new entity on the platformNode has no existing platform ID (new campaign, pasted node, or canvas-origin node)
UPDATEWhathead will update an existing entity on the platformNode has an existing platform ID and you made changes to its configuration
SKIPWhathead will skip this entity (no API call)Node has an existing platform ID but you made no changes
The preview helps you understand exactly what will happen before committing changes to your live campaigns. Review it carefully, especially when working with existing campaigns.

Preview Example

Here’s what you might see in a preview:
Campaign: "Summer Sale 2024" → UPDATE
  ├─ Ad Set: "US Audience 18-35" → SKIP (no changes)
  │   ├─ Ad: "Beach Photo Variant A" → UPDATE
  │   └─ Ad: "Beach Photo Variant B" → CREATE (new ad)
  └─ Ad Set: "UK Audience 25-45" → CREATE (new ad set)
      └─ Ad: "City Photo Variant A" → CREATE (new ad)
In this example:
  • 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
Skipping unchanged entities is efficient and safe. You’re not required to make changes to every entity when publishing.

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:
  1. Canvas-origin nodes: You added a node directly on the canvas using + Campaign, + Ad Set, or + Ad
  2. Pasted nodes: You copied and pasted nodes (paste clears existing IDs)
  3. Duplicated nodes: You used the duplicate function
  4. Reconnected nodes: You changed a node’s parent connection (creates a duplicate under the new parent)
  5. First publish: You’re publishing a campaign for the first time
When an entity is created:
  • 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
Canvas-origin nodes always CREATE even if you publish them multiple times. They don’t have existing platform IDs, so each publish creates a new entity. To update an entity, you must load it from the platform using Select Existing or Expand.

UPDATE Behavior

Entities are updated on the platform when:
  1. Loaded from platform: You used Select Existing or Expand to load the entity
  2. Has existing ID: The node has an existingCampaignId, existingAdSetId, or existingAdId
  3. Has changes: You modified one or more fields in the node configuration
When an entity is updated:
  • 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
All major platforms (Meta, TikTok, Snapchat, Google) support updating existing ads when you make changes. The platform updates the existing entity and preserves the platform ID.

SKIP Behavior

Entities are skipped (no API call) when:
  1. Loaded from platform: The entity has an existing platform ID
  2. No changes: You made no modifications to the entity configuration
  3. Parent unchanged: The entity’s parent wasn’t changed or reconnected
When an entity is skipped:
  • Whathead makes no API call for this entity
  • The entity remains unchanged on the platform
  • Publishing completes faster because fewer API calls are needed
If you want to force an update even when nothing changed, you can make a minor change (like adding a space to a field) and then remove it. This marks the entity as changed and triggers an UPDATE.

Decision Table

Here’s a quick reference for understanding CREATE vs UPDATE vs SKIP:
Node OriginHas Existing ID?Has Changes?Action
Canvas (new node)NoN/ACREATE
Loaded from platformYesYesUPDATE
Loaded from platformYesNoSKIP
Copy/pasteNo (cleared)N/ACREATE
ReconnectedNo (cleared)N/ACREATE (duplicate)
Canvas (re-publish)NoN/ACREATE (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:
  1. Campaigns first: All campaign nodes are created or updated
  2. Ad sets second: After campaigns complete, ad sets are created or updated
  3. Ads last: After ad sets complete, ads are created or updated
This order ensures parent entities exist before creating children.
If you’re publishing multiple campaigns, Whathead processes them sequentially with platform-specific rate-limit delays between campaigns. Within each campaign, the hierarchy order is maintained (campaign → ad sets → ads).

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
You can fix errors and retry publishing for failed entities without affecting successful ones.
If a campaign fails to create, its ad sets and ads will not be published. Fix the campaign error first, then retry publishing.

Retry and Error Handling

When publishing fails, you can fix errors and retry.

Common Publishing Errors

Error: “Platform authentication failed. Please reconnect your account.”Cause: Your platform connection expired or was revoked.Resolution: Go to Settings > Integrations and reconnect the platform. Then retry publishing.
Error: “Too many requests. Please wait and try again.”Cause: You exceeded the platform’s API rate limit.Resolution: Wait a few minutes and retry publishing. Consider publishing fewer campaigns at once.
Error: “Account balance is insufficient for this campaign budget.”Cause: Your ad account doesn’t have enough funds to support the campaign budget.Resolution: Add funds to your ad account in the platform portal, then retry publishing.
Error: “Ad creative violates platform policies.”Cause: Your ad content doesn’t comply with platform advertising policies.Resolution: Review the platform’s advertising policies, update your creative content, and retry publishing.

Retry Workflow

To retry failed entities:
1

Review error messages

Click failed nodes to see detailed error messages explaining what went wrong.
2

Fix the issues

Update node configurations to resolve the errors. This might involve changing budgets, updating creative, or reconnecting platforms.
3

Retry publishing

Click Publish again. Whathead will only attempt to publish entities that failed or haven’t been published yet. Successful entities are skipped.
Successful entities have platform IDs and are skipped on retry if you made no changes. Failed entities (which never received IDs) are published when you retry.

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
You can:
  • 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
Successful entities now have platform IDs stored on their nodes. If you edit and republish them, they will UPDATE rather than CREATE new entities.

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)
Canceling a publish operation stops future API calls but does not roll back entities that were already created or updated. Those entities remain live on the platform.

What Happens After Publishing

Once publishing succeeds:
  1. Platform IDs stored: Entities receive existingCampaignId, existingAdSetId, or existingAdId
  2. Campaigns go live: Entities appear in your platform portal
  3. Delivery starts: If campaigns are active, platforms begin delivering ads
  4. 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)
Learn more about editing published campaigns in Existing Campaign Editing.

Publishing Best Practices

Validate early and often: Fix validation errors as you build rather than waiting until publish. This prevents surprises and speeds up your workflow.
Review the preview: Always check the preview before confirming. Make sure CREATE, UPDATE, and SKIP actions match your expectations.
Start small: When publishing for the first time, start with one campaign to verify everything works correctly. Then scale up to bulk publishing.
Use skip efficiently: Don’t feel obligated to change every entity. Skipping unchanged entities is normal and efficient.
Handle errors promptly: If publishing fails, fix errors and retry immediately while the context is fresh. Don’t leave failed entities unresolved.

Next Steps

Now that you understand the publishing workflow, explore these related topics:

Common Questions

Each publish creates a new campaign on the platform. Canvas-origin nodes don’t have existing platform IDs, so they always CREATE. To update a campaign, load it from the platform using Select Existing or Expand.
No, publishing cannot be undone. Once entities are created or updated on the platform, they remain there. You can pause or delete campaigns in the platform portal, but Whathead doesn’t automatically roll back published changes.
Entities are skipped when they have existing platform IDs but you made no changes. This is efficient and normal. If you want to force an update, make a change to the entity configuration.
Entities that succeeded remain live on the platform. Entities that failed show error messages. Fix the errors and retry publishing—Whathead will only attempt failed entities, not successful ones.
Yes, if you have campaigns for different platforms on the same canvas, Whathead publishes them all when you click Publish. Each platform is processed independently.
Check the preview before confirming. It shows CREATE, UPDATE, or SKIP for each entity. Generally, entities loaded from the platform UPDATE, and canvas-origin entities CREATE.
Reconnecting clears the existing platform ID and creates a duplicate entity under the new parent when you publish. Platforms don’t support moving entities between parents, so Whathead creates a new entity instead.
Yes, the preview appears after validation and before confirmation. You can review what will happen and cancel if needed. No changes are sent to platforms until you confirm.