meta_create_creative

Build a Meta ad creative from media you uploaded to AdCrunch. Image and video both work.

Turns media you have uploaded to AdCrunch into a Meta ad creative — the thing meta_create_ad puts into an ad set. This is what closes the loop that Bring your own creative opens: upload, register, build.

Input

Field Type Required Description
advertiserId acc_* yes The Meta advertiser.
assetId ast_* yes The AdCrunch asset. Must already be registered to this advertiser.
pageId string yes The Facebook Page the ad speaks from — from meta_list_pages.
link URL yes Where the ad sends people.
message string yes Primary text — the body copy above the media.
headline string yes The bold headline beside the button.
description string no Supporting line. Not shown in every placement.
callToAction enum yes The button, e.g. SHOP_NOW. NO_BUTTON for none.
name string yes Internal name in Ads Manager. Users never see it.

You never choose a format

Pass the AdCrunch asset ID — the same ast_* you gave asset_register — not a Meta image hash or video ID. AdCrunch looks up what that asset registered as on this advertiser and builds the right spec: an image becomes a link ad, a video becomes a video ad. That is a fact about the asset, not a decision worth asking you to make, and there is deliberately no way to pass a raw Meta identifier instead.

A video uploaded a moment ago is fine

Meta returns a video ID long before the video is usable, and a video ad needs a thumbnail Meta has not generated yet. This tool waits for processing to finish and then picks Meta’s preferred frame — so you are not told to come back later. If it is still not ready after the wait, you get a clear “still processing, try again shortly”, not a Graph error.

Output

{ workflowId }. Poll get_mutation_status for the new creative’s { id }, then pass that to meta_create_ad.

Errors

Each is decided before anything is created, and says what to do next:

  • Not registered to this advertiser — the asset exists, but not in that ad account’s library. Call asset_register for it first.
  • Registration failed — Meta has no copy of it. Check asset_get for the reason, then register again.
  • Registration still running — wait and retry.
  • Video still processing / no thumbnail / Meta could not process it — the upload is fine in the first case, just not ready yet.

Not supported

Carousel creatives (child_attachments), custom video thumbnails, Advantage+ creative, and building a creative from an image that already exists in Meta’s library but was not uploaded through AdCrunch. For that last case, reuse the existing creative instead by passing its ID to meta_create_ad.