Skip to main content
Mapping only – no publish. The transfer adds nodes to the canvas. You must publish separately after reviewing.

Supported platform pairs

SourceDestinationNotes
MetaSnapchatFull campaign → ad set → ad mapping
SnapchatMetaFull mapping + story asset handling

Flow diagram

Step-by-step walkthrough

1

Source Configuration

Choose source platform (Meta or Snapchat), then select the ad account. Campaigns load automatically once an account is selected.
2

Select Campaign & Fetch

Pick a campaign from the dropdown and click Fetch Campaign. A live progress counter shows campaigns / ad sets fetched.
3

Select Ad Sets

All ad sets are pre-selected. Use Select All / Deselect All or check individual rows. Use the search box to filter by name or ID.
4

Fetch Ads

Click Fetch Ads for Selected (fetches only checked ad sets) or Fetch All Ad Sets (selects all then fetches). Progress shows ad set N/total.
5

Review & Select Ads

Expand any ad set row (chevron) to see its ads. Each ad has its own checkbox. Use the inline search to filter ads by name or ID.
6

Destination Configuration

Choose destination platform and account. Optionally override the campaign name (defaults to the source campaign name).
7

Story Asset Handling (Snapchat → Meta only)

If fetched Snapchat ads contain 9:16 vertical assets (is_story_compatible: true), a panel appears with two options:
  • Use story-size assets (Recommended) — optimised for Instagram Stories, Facebook Stories, Reels
  • Use standard feed assets — used for feed placements (may be cropped) The _useStoryAssets flag is stored on each ad node for the publish step to consume.
8

Save to Canvas

Click Save. The modal runs mapCampaign → mapAdSet → mapAd via CrossPlatformMappingService, then calls onNodesGenerated with the resulting nodes and edges. The modal closes and nodes appear on the canvas in a tree layout (campaign → ad sets → ads, 220 px horizontal spacing).

State persistence

Settings (source/dest platform, account IDs, campaign ID, selected ad set/ad IDs, campaign name) are persisted to localStorage under the key crossTransferModal_settings and restored when the modal reopens.

After saving to the canvas

Transferred campaigns, ad sets, and ads are added to the canvas as a tree. They are marked as coming from a cross-transfer and which platform they came from and which they’re going to. All items start in Paused status so you can review before publishing. For Snapchat → Meta, if you chose to use story-size assets, that preference is stored so the publish step can use the right creatives for Stories and Reels.