Skip to main content

Group B & C: Existing Campaign + New Children

These scenarios involve existing campaigns (with platform IDs) where you add new ad sets or ads. The campaign may UPDATE or SKIP depending on whether you changed it, while new children always CREATE.
Scenarios in this group:
  • Existing campaign (unchanged) + new ad sets
  • Existing campaign (with changes) + new ad sets
  • Existing campaign + existing ad set + new ads
  • Mixed existing and new ad sets

Scenario B1: Existing Campaign + New Ad Sets (Campaign Unchanged)

Setup:
  • Load existing campaign (has ID)
  • Add 2 new ad set nodes under the campaign
  • Configure new ad sets
  • Publish
Expected Behavior:
EntityHas ID?Has Changes?ActionResult
CampaignYesNoSKIPNo API call
Ad Set 1 (new)NoN/ACREATENew ad set created
Ad Set 2 (new)NoN/ACREATENew ad set created
Result:
  • Campaign unchanged on platform
  • 2 new ad sets created under existing campaign
  • New ad sets receive platform IDs
This is efficient—Whathead doesn’t make unnecessary API calls for the unchanged campaign.

Scenario B2: Existing Campaign + New Ad Sets (Campaign Changed)

Setup:
  • Load existing campaign (has ID)
  • Change campaign budget
  • Add 2 new ad set nodes
  • Publish
Expected Behavior:
EntityHas ID?Has Changes?ActionResult
CampaignYesYesUPDATECampaign budget updated
Ad Set 1 (new)NoN/ACREATENew ad set created
Ad Set 2 (new)NoN/ACREATENew ad set created
Result:
  • Campaign updated with new budget
  • 2 new ad sets created under campaign
  • All entities retain/receive platform IDs

Scenario B3: Existing Campaign + Existing Ad Set + New Ads

Setup:
  • Load existing campaign (has ID)
  • Expand to load existing ad set (has ID)
  • Add 3 new ad nodes under the ad set
  • Publish
Expected Behavior:
EntityHas ID?Has Changes?ActionResult
CampaignYesNoSKIPNo API call
Ad SetYesNoSKIPNo API call
Ad 1 (new)NoN/ACREATENew ad created
Ad 2 (new)NoN/ACREATENew ad created
Ad 3 (new)NoN/ACREATENew ad created
Result:
  • Campaign and ad set unchanged
  • 3 new ads created under existing ad set
  • New ads receive platform IDs
This is a common pattern for A/B testing—add new ad variations to existing ad sets.

Scenario C1: Mixed Existing and New Ad Sets

Setup:
  • Load existing campaign with 2 existing ad sets
  • Add 2 new ad set nodes
  • Edit one existing ad set
  • Publish
Expected Behavior:
EntityHas ID?Has Changes?ActionResult
CampaignYesNoSKIPNo API call
Ad Set 1 (existing)YesYesUPDATEAd set updated
Ad Set 2 (existing)YesNoSKIPNo API call
Ad Set 3 (new)NoN/ACREATENew ad set created
Ad Set 4 (new)NoN/ACREATENew ad set created
Result:
  • Campaign unchanged
  • 1 existing ad set updated
  • 1 existing ad set skipped
  • 2 new ad sets created
Whathead handles mixed scenarios efficiently—only changed or new entities trigger API calls.

Scenario C2: Existing Campaign + New Ad Set with Multiple Ads

Setup:
  • Load existing campaign
  • Add new ad set
  • Add 5 ads under the new ad set
  • Publish
Expected Behavior:
Campaign (existing): SKIP
  └─ Ad Set (new): CREATE
      ├─ Ad 1 (new): CREATE
      ├─ Ad 2 (new): CREATE
      ├─ Ad 3 (new): CREATE
      ├─ Ad 4 (new): CREATE
      └─ Ad 5 (new): CREATE
Result:
  • Campaign unchanged
  • 1 new ad set created
  • 5 new ads created under the new ad set

Scenario C3: Existing Campaign + Existing Ad Sets + Mixed New Ads

Setup:
  • Load existing campaign with 2 ad sets
  • Expand both ad sets to load existing ads
  • Add 2 new ads under Ad Set 1
  • Add 1 new ad under Ad Set 2
  • Publish
Expected Behavior:
Campaign (existing): SKIP
  ├─ Ad Set 1 (existing): SKIP
  │   ├─ Ad 1a (existing): SKIP
  │   ├─ Ad 1b (existing): SKIP
  │   ├─ Ad 1c (new): CREATE
  │   └─ Ad 1d (new): CREATE
  └─ Ad Set 2 (existing): SKIP
      ├─ Ad 2a (existing): SKIP
      └─ Ad 2b (new): CREATE
Result:
  • Campaign and ad sets unchanged
  • Existing ads unchanged
  • 3 new ads created (2 under Ad Set 1, 1 under Ad Set 2)

Scenario C4: Existing Campaign + Change Campaign + Add New Children

Setup:
  • Load existing campaign
  • Change campaign name and budget
  • Add 2 new ad sets
  • Each new ad set has 2 new ads
  • Publish
Expected Behavior:
Campaign (existing): UPDATE (name and budget changed)
  ├─ Ad Set 1 (new): CREATE
  │   ├─ Ad 1a (new): CREATE
  │   └─ Ad 1b (new): CREATE
  └─ Ad Set 2 (new): CREATE
      ├─ Ad 2a (new): CREATE
      └─ Ad 2b (new): CREATE
Result:
  • Campaign updated with new name and budget
  • 2 new ad sets created
  • 4 new ads created (2 per ad set)
You can update parent entities and add new children in the same publish operation.

Common Questions

The campaign was skipped because it has a platform ID and you made no changes to it. This is efficient—Whathead only makes API calls for changed or new entities.If you want to update the campaign, make a change to it before publishing.
Yes. Whathead handles mixed scenarios. Existing ad sets with changes UPDATE, existing ad sets without changes SKIP, and new ad sets CREATE.
If the campaign update fails, new ad sets are still created under the existing campaign (using its existing ID). The campaign remains in its previous state.
Yes. This is Scenario B3. The ad set is skipped (no changes), and new ads are created under it.

Next Steps