Skip to main content
When you click Publish, Whathead sends your canvas to your connected ad account. This page explains the difference between saving and publishing, what gets created or updated, and how to use the publish modal and retries.

Save vs Publish

ActionWhenWhat happens
SaveYou click Save in a campaign, ad set, or ad form.Your changes are stored on the canvas only. Nothing is sent to Meta, TikTok, or Snapchat.
PublishYou click Publish in the top bar and confirm in the publish modal.Whathead sends new or changed campaigns, ad sets, and ads to the platform. The platform creates or updates them and returns IDs; those are stored so future publishes can update the same items.
Saving only updates your local canvas. To create or update anything on the platform, you must click Publish.

What gets created, updated, or skipped

For each campaign, ad set, and ad on the canvas, Whathead decides:
SituationWhat happens
New item (never published, or no platform ID)Create — The platform creates it and returns an ID. Whathead stores that ID so the next publish can update it.
Existing item with changesUpdate — Whathead sends only the editable fields that changed. The platform updates the existing campaign, ad set, or ad.
Existing item with no changesSkip — Nothing is sent for that item. It’s left as-is on the platform.
Whole campaign unchangedThe whole campaign tree can be skipped and may not appear in the publish list.
Campaign already on platform but empty (no ad sets) and nothing to doIt may be excluded from the publish modal.
Change detection runs when you Save. If you edit and save, that item is marked as changed and will be updated on the next Publish. If you don’t change anything, it will be skipped.
When you save after editing, Whathead compares your form to the last loaded version and marks what changed. When you publish, it sends only what’s new or changed.

How we decide: Create, Update, or Skip

For every campaign, ad set, and ad, Whathead asks two questions:
  • Create — The item is sent to the platform and created. You get a new campaign, ad set, or ad.
  • Update — Only the fields you changed are sent. The existing item on the platform is updated.
  • Skip — Nothing is sent. The item on the platform is left as-is.

What happens when I… (all portals)

Use this as a quick reference for common actions. Meta, TikTok, and Snapchat all follow the same logic unless noted.
What you didCampaignAd setAdWorks on
Create a new campaign (and ad sets, ads) and publishCreateCreateCreateMeta, TikTok, Snapchat
Load existing campaign (Select Existing), edit name or budget, publishUpdateMeta, TikTok, Snapchat
Load existing campaign, don’t edit, publishSkipMeta, TikTok, Snapchat
Existing campaign + add a new ad set and new ads, publishSkip or UpdateCreateCreateMeta, TikTok, Snapchat
Load existing campaign → Expand (fetch ad sets/ads) → edit some, publishSkip or UpdateUpdate (changed) / Skip (unchanged)Update / SkipMeta, TikTok, Snapchat
Copy a campaign (or ad set, or ad) and paste → publishCreate (pasted tree)CreateCreateMeta, TikTok, Snapchat
Move an ad to another ad set (reconnect) → publishNew ad under new ad set (platforms don’t support moving)Meta, TikTok, Snapchat
Move an ad set to another campaign → publishNew ad set + new ads under new campaignCreateMeta, TikTok, Snapchat
Bulk edit (e.g. status, budget) on several campaigns or ad sets → publishUpdate (edited) / Skip (not edited)Update / SkipMeta, TikTok, Snapchat
Cross-transfer (Snapchat → Meta or Meta → Snapchat) then publishCreate (all new on destination)CreateCreateMeta, Snapchat
Copy/paste and reconnect always create new entities on the platform. Whathead clears “existing” IDs so the pasted or moved item is treated as new. You don’t need to do anything special — just publish.

Scenario matrix

A full reference of what happens to each level (campaign, ad set, ad) when you publish in different situations. Use the tabs below to look up your case.
For a short summary of common actions, see What happens when I… above.

Legend

OutcomeMeaning
CreateSent to the platform and created; you get a new entity and an ID is stored.
UpdateOnly changed fields are sent; the existing entity on the platform is updated.
SkipNothing is sent; the entity on the platform is left as-is.

Publish order

Whathead always sends in this order so parents exist before children: Campaign first → then each ad set → then ads (and creatives when needed) per ad set.

By scenario group

Everything on the canvas is new (no “Select Existing”, no prior publish).
ScenarioCampaignAd setAd
New campaign + new ad set + new adCreateCreateCreate
New campaign + multiple ad sets + multiple adsCreateCreateCreate
New campaign + new ad set + carousel adsCreateCreateCreate (cards in one creative)
Publish the same canvas node again (no “Load Existing”)CreateCreateCreate
Canvas-origin nodes always create on the platform. To update an existing campaign/ad set/ad, you must load it via Select Existing (or Expand).

Platform differences (Meta vs TikTok vs Snapchat)

Same Create/Update/Skip logic applies everywhere; a few behaviors differ by platform.
  • Changing creative (image, video, or copy) on an existing ad: Whathead creates a new creative and updates the ad to use it. The same ad stays; only the creative is new.
  • Carousel ads: Multiple cards are built from your carousel setup and sent as one creative.
  • Reconnect / paste: Pasted or moved ads keep their asset references (e.g. image hash); a new creative and new ad are created on publish so the duplicate works.

How to publish

1

Open the Publish modal

Click Publish in the Campaign Builder top bar. A list of campaigns (and their status) appears.
2

Choose what to publish

Use the mode: All (every campaign for the selected platform), Selected (only the campaigns you check), Multi-Platform (campaigns across several platforms), or Cross-Transfer (cross-transfer flow).
3

Start publishing

Click the button to start. Whathead checks your connection, then sends each campaign (and its ad sets and ads) in order. For Snapchat, a short delay is applied between campaigns to respect rate limits.
4

Check results

Each campaign row shows a status: waiting, publishing, done, or error. When done, new or updated IDs are stored so the canvas stays in sync with the platform.

Publish modes

Publishes every campaign shown for the platform you have selected (e.g. all Meta campaigns on the canvas).

What you might see

When nothing on the canvas has been published before, every campaign, ad set, and ad is created on the platform. After a successful publish, IDs are stored so future edits can update those same items.
If you loaded existing campaigns or ad sets (Select Existing) or published before, those items have IDs. When you publish again, only the ones you changed are updated; the rest are skipped.
If a campaign and all its ad sets and ads are unchanged, the whole tree may be skipped and the campaign might not appear in the publish list (or you’ll see that it was skipped).
If a campaign row shows an error, you can click Retry on that row to try again. Use Retry Failed in the footer to retry all failed campaigns. You can retry up to a few times. There is no automatic retry; you choose when to retry.

Progress and status

  • Waiting — Not started yet (gray).
  • Publishing — Currently being sent (blue, with a spinner).
  • Done — Successfully published (green). Progress bar for that item is full.
  • Error — Something went wrong (red). An error message is shown; use Retry or Retry Failed to try again.
Overall progress is based on how many items have finished. Failed items don’t count as progress until they succeed on retry.

Retrying after an error

  • Each campaign row that failed has a Retry button. Click it to try publishing that campaign again.
  • The Retry Failed button in the footer retries all failed campaigns one after another.
  • You can retry up to a few times per campaign. If it still fails, check the error message (e.g. connection, permissions, or platform limits) and fix the issue before publishing again.