Advertising
Turn a dropped file into a named, live ad
A designer exports a file into the shared folder and someone else rebuilds it as an ad by hand, inventing a name in the process. Six weeks later nobody can tell which creative earned what, because the names do not agree with each other. The build is worth automating. The naming convention is the actual deliverable, and the workflow's real job is to refuse anything that does not follow it.
- Triggers
- Two
- Runs
- Twice daily
- Stack
- 4 tools
- Durable execution
- Not required
The flow
The top track reads the file and its name. The batch below builds only what parsed — everything else waits in the tray rather than going live under a name nobody can query.
A file lands in the folder
n8n · Make
Read the filename
n8n · Make
Register the creative
Sheets · Airtable
Twice a day
n8n 排程
Upload to the ad account
Meta Marketing API
Named and uploaded?
n8n IF
Build the ad, paused
Meta Marketing API · Google Ads API
Leave it in the tray
—
Step by step
- 01
A file lands in the folder
n8n · MakeOne watched folder, not a per-designer arrangement. The moment there are two drop points, the naming convention has two dialects.
- 02
Read the filename
n8n · MakeSplit the name into the fields you will later filter reports by — campaign, offer, aspect ratio, date. If it does not split cleanly, that is a finding to raise now, not a default to invent quietly.
- 03
Register the creative
Sheets · AirtableOne row per file, with the parsed fields in separate columns and the designer's name. This row is what later joins a reporting figure back to the person who made the thing.
- 04
Twice a day
n8n 排程Batching, not speed. A creative that goes live four hours after export costs nothing; one built the second a file appears goes live before anyone has looked at it.
- 05
Upload to the ad account
Meta Marketing APIUpload the asset to the account first and keep the identifier it returns. That identifier, not the file, is what the ad will reference — and it lets the same asset be reused instead of uploaded twice.
- 06
Named and uploaded?
n8n IFBoth have to hold. A file whose name did not parse must not be built under a guessed name, because a wrong name is harder to find later than a missing ad.
- 07
Build the ad, paused
Meta Marketing API · Google Ads APICreate it paused, with the name assembled from the parsed fields rather than typed. A person turns it on — that review is what makes automating the build safe.
What the platform will not allow
Two of these shape the build step. The third is the reason a name, once it is wrong, is expensive to correct.
On Meta the asset is uploaded to the ad account and then referenced by an identifier — the image hash is "the hash which uniquely identifies the image", uploaded through /act_{ad_account_id}/adimages, and a creative can be specified "by image hash value of a previously uploaded image". The same file uploaded twice is two hashes and two names to reconcile.
Meta Marketing API — Ad Image referenceMeta's Ads Management limit is calculated per account rather than as a flat quota — on standard access, "Calls within one hour = 300 + 40 * Number of Active ads". A small account has a genuinely small hourly allowance, which is an argument for batching the builds rather than firing one per file.
Meta Graph API — Rate limitingGoogle Ads treats assets as "units of shareable data—such as images, videos, headlines, and descriptions—that are used to construct different types of ads across multiple formats", linked to campaigns through CampaignAsset. Reuse is the intended path, so a workflow that re-uploads per ad is fighting the model.
Google Ads API — Assets overviewNot everything in an account is editable after the fact: "Assets generated by text customization (formerly automatically created assets) cannot be modified." What your workflow names, it names once, and the convention is worth settling before the first run rather than after the hundredth.
Google Ads API — Assets overview
When this is not worth building
Three cases where the upkeep costs more than the manual build.
Fewer than a handful of new creatives a week. Building an ad by hand takes minutes; maintaining a parser against filenames people keep changing takes longer than that, forever.
There is no naming convention yet. The workflow cannot invent one — it can only enforce one. Write it down with the people who will use it first, then automate the enforcement.
Each creative needs a different audience, placement or budget decision. Then the file is the small half of the job, and automating it leaves the actual work untouched while adding a system to maintain.