🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets + Drive to Meta Ads, uploads logged

Lisa Granqvist Partner Workflow Automation Expert

Launching ads shouldn’t feel like assembling IKEA furniture with half the screws missing. But when your creative lives in Drive, your specs live in a spreadsheet, and Meta Ads Manager lives somewhere else entirely, mistakes creep in fast.

Performance marketers get stuck re-uploading the same assets. Agency owners end up triple-checking naming, placements, and variants. And the small business team member “helping with ads” is usually one misclick away from the wrong campaign going live. This Meta ads automation fixes that loop and keeps everything logged.

You’ll see how this workflow watches a Drive folder, reads your upload queue from Google Sheets, creates image or video ads through the Meta Graph API, then writes back ad IDs and status so your sheet becomes the source of truth.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets + Drive to Meta Ads, uploads logged

The Problem: Meta ad uploads get messy fast

Most ad upload “processes” are really a chain of tiny manual steps: find the latest creative, confirm which version is approved, upload it, wait for video processing, build the ad, copy the ID somewhere, then tell someone it’s ready. Do that a few times and you’ll miss one detail. A campaign gets built with the wrong thumbnail. An image ad ships with the old headline. Or you lose track of what actually made it into the account because Ads Manager doesn’t give you a clean audit trail tied to your spreadsheet naming.

It adds up fast. And the friction compounds when you’re handling both image and video formats.

  • Uploading creatives one-by-one means you repeat the same clicks for every ad variation, even when the inputs already exist in a sheet.
  • Video ads are worse because “uploaded” isn’t “ready,” so you end up refreshing status screens and guessing when it’s safe to build the ad.
  • If your Drive folder is the creative hub, someone will eventually rename a file or swap an asset and the spreadsheet will quietly drift out of sync.
  • Without ad IDs and upload status written back automatically, reporting and troubleshooting turn into detective work.

The Solution: Launch Meta ads from a sheet, using Drive assets

This workflow turns Google Sheets into your ad “command center,” and Google Drive into the single creative source. It can start from a Drive folder update (new uploads or changes), or from a manual/webhook trigger tied to a Google Sheets custom menu. Once triggered, it reads your “Ready to Upload” queue from Sheets, loops through each ad in batches (with built-in pacing to avoid rate limits), and routes each item based on asset type. Video assets go through upload and processing checks, including a retry loop until Meta reports the video is ready, plus thumbnail generation for previews. Image assets go through smart handling too: one image becomes a single creative, two images can become a multi-image creative. At the end, the workflow creates the ad in a safe state (paused for review) and logs the ad ID plus progress details back to your sheet.

The workflow starts when your Drive folder changes or you click “Meta → Upload Ads” in your sheet. Then n8n pulls the queued rows, fetches the matching Drive file(s), uploads them via the Meta Graph API, and assembles the final creative with your texts, headlines, and descriptions. Finally, Google Sheets gets updated with what happened, which means you can track launches without opening Ads Manager every five minutes.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you launch 10 ads a week: 6 image ads and 4 video ads. Manually, even a “fast” upload is maybe 15 minutes per ad once you include finding the right Drive file, building the creative, waiting on video processing, and copying the ad ID back to a tracker, so you’re spending roughly 2–3 hours weekly just moving things around. With this workflow, you upload assets to Drive and mark rows “Ready to Upload” in Sheets (about 10 minutes total), then n8n runs the rest while you do other work. You still review in Ads Manager before turning anything on, but the grunt work is gone.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store your upload queue and settings.
  • Google Drive for the folder that holds creatives.
  • Meta Graph API access token (generate it in your Meta Developer app)

Skill level: Intermediate. You’ll connect OAuth credentials and paste IDs/tokens, but you won’t be writing a bunch of code.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A Drive update or a Sheet action triggers the run. The workflow can start when a file changes in your chosen Google Drive folder, or when a webhook/manual trigger fires (commonly from a custom menu in your Google Sheet).

The workflow collects the right inputs. It pulls your settings (ad account ID, page/IG IDs, and the sheet URL), fetches the “Ready to Upload” rows from Google Sheets, and then retrieves file metadata from Drive so each row can be matched to the correct asset.

Meta ad creation happens based on asset type. For videos, it uploads the file, checks processing status, waits and retries if needed, then builds the video creative and generates the ad. For images, it uploads the primary image, optionally uploads a second image, then assembles either a single-image or multi-image creative before generating the ad.

Everything gets logged back to Google Sheets. The workflow writes the ad ID and upload/status details into the appropriate row, so your team can see exactly what launched and what still needs attention.

You can easily modify placements (Facebook/Instagram/Messenger/Audience Network) to match your account rules. You can also adjust how many ads are processed per batch if you’re launching in bulk. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Trigger Type

This workflow starts from three entry points to ingest assets and ad queue rows. Configure each trigger to match how you want to run the automation.

  1. Open Drive Folder Watcher and set it to monitor the Google Drive folder where new ad assets will land.
  2. Open Manual Run Trigger to enable on-demand execution when testing or backfilling.
  3. Open Incoming Webhook Trigger and copy the webhook URL if you want to trigger queue processing externally.

Credential Required: Connect your Google Drive credentials in Drive Folder Watcher.

Step 2: Connect Google Drive and Register Assets

This segment lists files, requests metadata, maps attributes, and logs each asset into a sheet for later processing.

  1. Open Configure Drive Settings and set any fields needed to target your folder and file filters.
  2. In List Drive Files, select the same Drive connection and configure how files should be listed.
  3. In Request File Metadata, confirm the request points to the file IDs from List Drive Files.
  4. In Map File Attributes, map the metadata fields into a normalized structure for logging.
  5. In Register Asset Row, map the file attributes into your sheet columns.

Credential Required: Connect your Google Drive credentials in List Drive Files.

Credential Required: Connect your Google Sheets credentials in Register Asset Row.

⚠️ Common Pitfall: If Request File Metadata does not receive file IDs, the downstream mapping in Map File Attributes will be empty. Verify the file listing is returning items.

Step 3: Connect Google Sheets for the Ads Queue

This block reads the ad queue and splits it into batches for processing.

  1. Open Configure Sheet Settings and set the spreadsheet ID, sheet name, and any filters you need.
  2. In Fetch Ads Queue, configure the range and ensure it reads the queue rows expected for processing.
  3. In Iterate Ads Batch, set the batch size to control how many ads are processed per run.

Credential Required: Connect your Google Sheets credentials in Fetch Ads Queue.

Step 4: Route Assets and Prepare Media Inputs

This section routes the queue row into video or image processing and prepares files for upload.

  1. In Route Asset Type, set conditions to split between video and image flows using your queue fields.
  2. For videos, ensure Fetch Video File retrieves the media from your source location.
  3. In Transform Video Payload, build the request body needed for chunk upload.
  4. For images, confirm Fetch First Image and Fetch Second Image point to the correct URLs or storage paths.
  5. Use Check Image Count to decide between single-image and multi-image creative paths.

⚠️ Common Pitfall: If your image count condition in Check Image Count is misconfigured, it will incorrectly route to Compose Single Image Creative or Compose Multi Image Creative.

Step 5: Configure Video Upload and Processing Loop

This block uploads videos to Meta, waits for processing, checks status, and then builds the video ad.

  1. Configure Upload Video Asset to initialize the video upload and return an upload session ID.
  2. In Upload Video Chunk, use the transformed payload to send chunk data.
  3. Use Pause For Processing and Verify Processing Status to poll until the video is ready.
  4. In Processing Complete?, define the success criteria to advance to creative building.
  5. Use Delay Retry to re-check processing when not complete.
  6. After completion, ensure Retrieve Video Thumbnail, Build Video Creative, and Generate Video Ad have the required creative parameters.
  7. Log results in Log Video Ad Info to your tracking sheet.

Credential Required: Connect your Facebook Graph API credentials to all Meta-related nodes (11+ nodes including Upload Video Asset, Upload Video Chunk, Verify Processing Status, Retrieve Video Thumbnail, Build Video Creative, and Generate Video Ad).

Step 6: Configure Image Ad Generation

This block uploads images, builds creatives, and generates image ads based on the asset count.

  1. In Upload Primary Image, map the first image asset for upload.
  2. When two images are present, use Upload Secondary Image and then Compose Multi Image Creative.
  3. When only one image is present, route to Compose Single Image Creative.
  4. In Generate Image Ad, confirm the creative ID and ad set details are mapped correctly.
  5. Log outcomes in Log Image Ad Info to the same sheet used for tracking.

Credential Required: Connect your Facebook Graph API credentials to all image-related Meta nodes (e.g., Upload Primary Image, Upload Secondary Image, Compose Multi Image Creative, Compose Single Image Creative, and Generate Image Ad).

Credential Required: Connect your Google Sheets credentials in Log Image Ad Info and Log Video Ad Info.

Step 7: Test and Activate Your Workflow

Run a controlled test to confirm file intake, queue processing, and ad creation are functioning correctly.

  1. Click Execute Workflow on Manual Run Trigger and verify rows load in Fetch Ads Queue.
  2. Upload a test file to your Drive folder and confirm it reaches Register Asset Row.
  3. Verify that video assets proceed through Upload Video AssetVerify Processing StatusGenerate Video Ad.
  4. Verify that image assets proceed through Upload Primary ImageGenerate Image Ad.
  5. Confirm that rows are logged in Log Image Ad Info and Log Video Ad Info.
  6. When testing is successful, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Meta Graph API credentials can expire or lose permissions. If things break, check your access token status in Meta Developer tools and confirm your app is set to Live.
  • If you’re using Wait nodes or external processing, video readiness can take longer than you expect. Bump up the wait duration if downstream Meta steps fail because the video still isn’t processed.
  • Google Sheets rows drift when naming conventions aren’t enforced. If your Drive filenames don’t match what’s referenced in the sheet, you’ll upload the wrong creative or nothing at all.

Frequently Asked Questions

How long does it take to set up this Meta ads automation automation?

Plan on about an hour if your Meta and Google credentials are ready.

Do I need coding skills to automate Meta ads automation?

No. You’ll mostly connect accounts and paste in a few IDs and tokens.

Is n8n free to use for this Meta ads automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Meta API usage (usually negligible) and whatever your VPS costs if you self-host.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Meta ads automation workflow for different placements and creative rules?

Yes, and you should. You can change targeting and placements in the creative-building steps (the parts that compose single-image, multi-image, or video creatives), and you can also adjust how many text/headline variations you send per ad from Google Sheets. Many teams customize the workflow so it only builds Instagram placements for certain campaigns, or forces a consistent naming pattern in the “log back to sheet” fields. If you’re running multiple ad accounts, you can also swap ad account IDs per row so one sheet controls several accounts.

Why is my Meta Graph API connection failing in this workflow?

Usually it’s an expired or short-lived access token, or missing permissions like ads_management. Regenerate a long-lived token in your Meta Developer app, confirm the app is Live (not in Development mode), then update the credential in n8n. If it fails only during batch runs, you may be hitting rate limits, so increase the built-in delays and reduce batch size.

How many ads can this Meta ads automation automation handle?

Dozens in a run is normal, and hundreds are realistic if you pace batches and you’re patient with video processing.

Is this Meta ads automation automation better than using Zapier or Make?

Often, yes, frankly. This workflow leans on branching logic (video vs. image), retry loops for video processing, and batch control to respect rate limits, and those are areas where Zapier/Make can get awkward or expensive as complexity grows. n8n also lets you self-host, which matters when you start doing a lot of executions or want tighter control over credentials. If your goal is a simple “when row is added, send a notification,” Zapier is faster to set up. But for real ad creation through the Graph API, n8n is usually the more flexible option. Talk to an automation expert if you want a quick recommendation based on your volume.

Once your sheet and Drive are the system, Meta uploads stop being a fragile ritual. Set it up, run launches from one place, and keep your ad IDs and status automatically recorded for the next person who asks.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal