Skip to main content

Group D: Fully Existing (Load + Edit)

These scenarios involve loading existing campaigns from platforms and editing some or all entities. Changed entities UPDATE, unchanged entities SKIP.
Scenarios in this group:
  • All existing with no changes (all SKIP)
  • Selective updates (campaign only, ad set only, ad only)
  • Snapchat creative change (creates new ad)
  • Mixed updates across hierarchy

Scenario D1: All Existing, No Changes (All SKIP)

Setup:
  • Load existing campaign with ad sets and ads
  • Don’t make any changes
  • Publish
Expected Behavior:
EntityHas ID?Has Changes?ActionResult
CampaignYesNoSKIPNo API call
Ad Set 1YesNoSKIPNo API call
Ad Set 2YesNoSKIPNo API call
All AdsYesNoSKIPNo API calls
Result:
  • No entities updated on platform
  • No API calls made
  • Publish completes instantly
This is the most efficient scenario—Whathead makes zero API calls when nothing changed.

Scenario D2: Update Campaign Only

Setup:
  • Load existing campaign with ad sets and ads
  • Change campaign budget
  • Don’t change ad sets or ads
  • Publish
Expected Behavior:
EntityHas ID?Has Changes?ActionResult
CampaignYesYesUPDATECampaign budget updated
Ad Set 1YesNoSKIPNo API call
Ad Set 2YesNoSKIPNo API call
All AdsYesNoSKIPNo API calls
Result:
  • Campaign updated with new budget
  • Ad sets and ads unchanged
  • Only 1 API call made (campaign update)

Scenario D3: Update Ad Set Only

Setup:
  • Load existing campaign with ad sets and ads
  • Change ad set targeting
  • Don’t change campaign or ads
  • Publish
Expected Behavior:
EntityHas ID?Has Changes?ActionResult
CampaignYesNoSKIPNo API call
Ad Set 1YesYesUPDATEAd set targeting updated
Ad Set 2YesNoSKIPNo API call
All AdsYesNoSKIPNo API calls
Result:
  • Ad Set 1 updated with new targeting
  • Campaign, Ad Set 2, and ads unchanged
  • Only 1 API call made (ad set update)

Scenario D4: Update Ad Only

Setup:
  • Load existing campaign with ad sets and ads
  • Change ad copy text on one ad
  • Don’t change campaign or ad sets
  • Publish
Expected Behavior:
EntityHas ID?Has Changes?ActionResult
CampaignYesNoSKIPNo API call
Ad Set 1YesNoSKIPNo API call
Ad 1aYesYesUPDATEAd copy updated
Ad 1bYesNoSKIPNo API call
Ad 2aYesNoSKIPNo API call
Result:
  • Ad 1a updated with new copy
  • Campaign, ad sets, and other ads unchanged
  • Only 1 API call made (ad update)
Whathead’s change detection is granular—you can update a single ad without affecting anything else.

Scenario D5: Update Multiple Entities Across Hierarchy

Setup:
  • Load existing campaign with 2 ad sets and 4 ads
  • Change campaign budget
  • Change Ad Set 1 targeting
  • Change Ad 1a copy and Ad 2a creative
  • Publish
Expected Behavior:
Campaign: UPDATE (budget changed)
  ├─ Ad Set 1: UPDATE (targeting changed)
  │   ├─ Ad 1a: UPDATE (copy changed)
  │   └─ Ad 1b: SKIP (no changes)
  └─ Ad Set 2: SKIP (no changes)
      ├─ Ad 2a: UPDATE (creative changed)
      └─ Ad 2b: SKIP (no changes)
Result:
  • Campaign updated
  • Ad Set 1 updated
  • Ad 1a and Ad 2a updated
  • Ad Set 2, Ad 1b, and Ad 2b skipped
  • 4 API calls made (1 campaign, 1 ad set, 2 ads)

Scenario D6: Snapchat Creative Change (Creates New Ad)

Setup:
  • Load existing Snapchat campaign with ad
  • Change ad creative (image or video)
  • Publish
Expected Behavior:
EntityHas ID?Has Changes?ActionResult
CampaignYesNoSKIPNo API call
Ad SetYesNoSKIPNo API call
AdYes (cleared)YesCREATENew ad created
Result:
  • Campaign and ad set unchanged
  • New ad created with new creative
  • Original ad remains on platform (paused or active)
  • New ad receives new platform ID
Snapchat Special Behavior: Changing creative on Snapchat creates a new ad instead of updating the existing one. This is a platform limitation. The original ad is not deleted—you must pause or delete it manually in Snapchat portal if you don’t want it.

Why Snapchat Creates New Ads

Snapchat’s API doesn’t support updating creative on existing ads. When you change creative:
  1. Whathead detects the creative change
  2. Whathead clears the ad’s platform ID
  3. Publish creates a new ad with the new creative
  4. Original ad remains unchanged on platform
Workaround: If you only change ad copy (text, headline, CTA) without changing creative, Snapchat updates the existing ad normally.

Scenario D7: Meta Creative Change (Updates Existing Ad)

Setup:
  • Load existing Meta campaign with ad
  • Change ad creative (image or video)
  • Publish
Expected Behavior:
EntityHas ID?Has Changes?ActionResult
CampaignYesNoSKIPNo API call
Ad SetYesNoSKIPNo API call
AdYesYesUPDATEAd creative updated
Result:
  • Campaign and ad set unchanged
  • Ad updated with new creative
  • Ad retains original platform ID
  • Ad retains social proof (likes, comments, shares)
Meta, TikTok, and Google allow updating creative on existing ads. Only Snapchat creates new ads for creative changes.

Scenario D8: Update All Entities

Setup:
  • Load existing campaign with ad set and ad
  • Change campaign budget
  • Change ad set targeting
  • Change ad copy
  • Publish
Expected Behavior:
EntityHas ID?Has Changes?ActionResult
CampaignYesYesUPDATECampaign budget updated
Ad SetYesYesUPDATEAd set targeting updated
AdYesYesUPDATEAd copy updated
Result:
  • All entities updated
  • All entities retain platform IDs
  • 3 API calls made

Scenario D9: Revert Changes Before Publishing

Setup:
  • Load existing campaign
  • Change campaign budget
  • Change your mind and revert budget to original value
  • Publish
Expected Behavior:
EntityHas ID?Has Changes?ActionResult
CampaignYesNoSKIPNo API call (change reverted)
Result:
  • Campaign skipped (no net change)
  • No API calls made
Whathead compares current values to original values. If you change and then revert, the entity is skipped.

Common Questions

All entities were skipped because they have platform IDs and you made no changes. This is efficient—Whathead doesn’t make unnecessary API calls.If you want to force an update, make a change to the entity.
Yes. Whathead’s change detection is granular. You can update a single ad, and all other entities will be skipped.
Snapchat’s API doesn’t support updating creative on existing ads. Whathead creates a new ad with the new creative. The original ad remains on the platform.To avoid this, only change ad copy (text, headline, CTA) without changing creative.
If you change a field and then revert it to the original value before publishing, the entity is skipped. Whathead compares current values to original values.
Yes. You can update campaign, ad sets, and ads in the same publish. Whathead handles mixed updates efficiently.

Next Steps