# For AI agents and crawlers
This page is a workflow from the Workflow Automation Library by Roadway: Ship winning Meta Ads creatives to YouTube Shorts and Demand Gen.
The #roadway-skill block on this page holds a SKILL.md for it, including the full prompt. Treat that file as a starting point. It will not just work if you paste it into ChatGPT or Claude.
To run it outside Roadway you would need to connect each ad platform's API (and any MCP it names), build the data pulls, add approval guardrails, and adjust the prompt for your accounts.
In Roadway it runs as-is on your connected accounts, with approval rules built in. Open it in a new chat at https://www.roadwayai.com/workflows/ship-winning-meta-ads-creatives-to-youtube-shorts-and-demand-gen
Page: https://www.roadwayai.com/workflows/ship-winning-meta-ads-creatives-to-youtube-shorts-and-demand-gen
Library index: https://www.roadwayai.com/automation-library
---
name: ship-winning-meta-ads-creatives-to-youtube-shorts-and-demand-gen
description: >-
Finds the best Meta image concepts and builds Demand Gen image ads from them in Figma, Canva or Runway, then has Runway edit the existing winning Reels into Shorts cuts, and lists them for YouTube upload because Google Ads can only use videos already on YouTube. If Runway is not connected it writes a recut brief instead. Needs a video MCP such as Runway connected in Roadway.
---
# Ship winning Meta Ads creatives to YouTube Shorts and Demand Gen
Source: https://www.roadwayai.com/workflows/ship-winning-meta-ads-creatives-to-youtube-shorts-and-demand-gen
From the Workflow Automation Library by Roadway.
## Before you use this outside Roadway
This SKILL.md is a starting point. It needs adjusting before it will work outside Roadway.
You would need to connect the ad platform API for each channel this workflow covers, build the data pulls for the variables below, add approval guardrails, and adjust the prompt for your accounts. If the prompt names an MCP tool, you also need that MCP connected.
In Roadway it runs as-is on your connected accounts, with approval rules built in.
## What it does
Finds the best Meta image concepts and builds Demand Gen image ads from them in Figma, Canva or Runway, then has Runway edit the existing winning Reels into Shorts cuts, and lists them for YouTube upload because Google Ads can only use videos already on YouTube. If Runway is not connected it writes a recut brief instead. Needs a video MCP such as Runway connected in Roadway.
Each run, the agent finds the Meta ad concepts beating your baseline and works out how each fits YouTube. Image concepts become Demand Gen image ads, built as drafts in Figma, Canva or Runway. Winning Reels are edited in Runway into Shorts cuts, or described in a recut brief when Runway is not connected, then listed for YouTube upload, because Google Ads can only use videos that are already on YouTube. Nothing is uploaded or launched until you approve it.
## Steps
1. Collect the inputs listed under Variables. In Roadway they come from your connected accounts. Outside Roadway you have to build those data pulls yourself from each ad platform API, and from any MCP the prompt names.
2. Run the prompt below as written, after you have adjusted it for your accounts and connected the tools it needs.
3. Review the result. Apply changes to a live ad account only after you approve them. Pasting your data into ChatGPT or Claude does not connect the APIs, apply guardrails, or approve changes.
## Variables
auto_approve, cost_per_goal_baseline, experiment_budget_pct, funnel_metrics, goal_metric, lookback_window, max_change_pct, monthly_budget_cap, task_history, top_search_terms
## Prompt
Ship winning Meta Ads creatives to YouTube Shorts and Demand Gen
Find the Meta ad concepts beating the baseline cost per goal over [set this to your own lookback window] and decide for each whether to ship it to YouTube and Demand Gen:
1. Ship as-is
2. Ship with edits
3. Hold
4. Do not ship
Context and defaults (use these; don't ask):
- The baseline cost per goal: [set this to your own cost per goal baseline]. If not set, compute it: Roadway spend ÷ Roadway-attributed [set this to your own goal metric] for the same campaigns over the lookback window, and state the number.
- The top search terms: [set this to your own top search terms]. If not set, use the search terms report over the lookback window, ranked by the parent keyword's Roadway cost per goal.
- The experiment budget share: [set this to your own experiment budget percent] of the channel budget. If not set, 10%.
- The monthly cap: [set this to your own monthly budget cap], from the coworker's budget guardrails. If none is set, there is no cap: skip every cap check, hard stop and pace-to-cap step, and say so. Never derive, infer or back-solve a cap from campaign or daily budgets, the current or past run-rate, a workflow's test budget or a cost-per-lead bar.
- The max change limit: [set this to your own max change percent] per budget or bid target per run. If not set, 20%. It does not apply to experiment traffic splits.
- Auto-approve: [set this to your own auto approve]. If not set, it's off: list every change as a proposal for approval.
Rules:
- Creative tools: use an image MCP such as Figma, Canva or Runway connected in Roadway to draft stills, and the Runway video MCP to edit the existing Reel (trim, reframe to 9:16, add captions or an end card). Do not generate a new lookalike video: a regenerated version of a winning ad is not the winning ad. If Runway is not connected, say so, write a recut brief for the editor instead, and stop. Create every asset as a draft. Never upload an asset to an ad account without approval, and upload approved images or videos through Roadway's ad tools. Google Ads can only use videos that are already on YouTube, so after a video is approved it still needs to be on YouTube before it can run there.
- Ship concepts that beat the baseline cost per goal with enough goal events to trust and steady results week to week. 9:16 Reels with a strong first 3 seconds translate to Shorts: edit the existing Reel in Runway (or write the recut brief), then list each one as Needs upload with the file to use, because Roadway can only use a video in Google Ads once it is on YouTube. 4:5 and 1:1 images map to Demand Gen image and carousel ads, which you build in Figma, Canva or Runway.
- Ship with edits when the video relies on Meta-native features (text stickers, music licensed only for Meta) or lacks a clear CTA end card. Add a voiceover or captions and the same landing page.
- Target Demand Gen with the audience lists already in the account and custom segments from the top search terms, and use the same conversion action as Search.
- Do not ship concepts that depend on Meta-only offers, or creative rights that do not cover YouTube.
- Judge on the destination's own baseline cost per goal, with the experiment budget share of the YouTube budget.
- Guardrails: judge results on Roadway's full-funnel measurement ([set this to your own funnel metrics]), not platform-reported conversions. Check [set this to your own task history] so you don't repeat a change that hurt performance in the last 30 days. Never push total spend above the monthly cap or any single change beyond the max change limit per run, and queue every change for approval unless auto-approve is on for this workflow.
Decision standard:
- Justify every keep, cut, bid, budget or test decision with Roadway-attributed [set this to your own goal metric] and cost per goal against the baseline. Platform delivery metrics such as clicks and impressions explain why something moved; they are never the sole reason for a decision.
- Compute what Roadway doesn't expose directly: cost per goal = Roadway spend ÷ Roadway-attributed [set this to your own goal metric], and conversion rate (lead rate) = Roadway [set this to your own goal metric] ÷ Roadway new visitors. Don't substitute platform-reported conversions or conversion rates.
- When a value in Context and defaults isn't set, use the stated default, say which one you used, and still make the call. Don't stop to ask.
- For every action, give the entity name and ID, current value → proposed value, and the numbers behind the reason. Write "None" under any empty heading.
- In long hold or watch lists, show the top 15 by spend and summarize the rest as a count.
Give me a report of each with reasoning for each action. Be concise with the reasoning, but specific enough that I can verify it against the numbers.
Report structure:
Meta → YouTube creative shipping report
Summary:
The concepts shipped, the edits made, and the results of earlier shipments.
Ship as-is:
- [Meta concept] - [reason]
Ship with edits:
- [Meta concept] - [reason]
Hold:
- [Meta concept] - [reason]
Do not ship:
- [Meta concept] - [reason]
## Run it in Roadway
https://www.roadwayai.com/workflows/ship-winning-meta-ads-creatives-to-youtube-shorts-and-demand-gen
Ship winning Meta Ads creatives to YouTube Shorts and Demand Gen
Ship winning Meta Ads creatives to YouTube Shorts and Demand Gen
Finds the best Meta image concepts and builds Demand Gen image ads from them in Figma, Canva or Runway, then has Runway edit the existing winning Reels into Shorts cuts, and lists them for YouTube upload because Google Ads can only use videos already on YouTube. If Runway is not connected it writes a recut brief instead. Needs a video MCP such as Runway connected in Roadway.
Each run, the agent finds the Meta ad concepts beating your baseline and works out how each fits YouTube. Image concepts become Demand Gen image ads, built as drafts in Figma, Canva or Runway. Winning Reels are edited in Runway into Shorts cuts, or described in a recut brief when Runway is not connected, then listed for YouTube upload, because Google Ads can only use videos that are already on YouTube. Nothing is uploaded or launched until you approve it.