🔓 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 Drive + Sheets for Meta ad creative research

Lisa Granqvist Partner Workflow Automation Expert

Ad research sounds simple until you’re three tabs deep, downloading images one-by-one, and trying to remember why that “winner” looked good in the first place. Then the Slack pings start, the spreadsheet is half-filled, and your “swipe file” turns into a messy folder called final_v7_FINAL.

This Meta ad research problem hits performance marketers first. But agency owners trying to scale creative testing and e-commerce teams moving fast feel it too. The outcome you want is obvious: competitor winners captured, organized, and ready to turn into your next batch of tests without losing half a day.

This n8n workflow pulls active ads from the Facebook Ad Library, saves the source creatives into Google Drive, generates a few fresh variations with AI, and logs everything into Google Sheets. You’ll see what it does, what you need, and how to use it without turning your process into a science project.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Drive + Sheets for Meta ad creative research

The Problem: Creative Research Turns Into Busywork

When you find a promising ad in the Meta Ad Library, you don’t just need the image. You need the page name, the copy, the angle, and the context that made it work. And you need it in a place your team can actually reuse. Manually, that means screenshots, downloads, messy Drive folders, and a spreadsheet that’s always missing “one more detail.” Worse, research gets repeated because nobody trusts the archive. So you keep re-finding the same ads every week. Honestly, it’s exhausting.

It adds up fast. Here’s where it breaks down when you keep it manual.

  • You spend about 10 minutes per ad just saving the basics (image, copy, URL, notes) and it’s still inconsistent.
  • Teams lose track of “why this won,” so the next creative round starts from vibes, not evidence.
  • Folders grow without structure, which means your best inspiration is effectively buried.
  • Even when you do find winners, turning them into variations takes another hour of repetitive briefs and back-and-forth.

The Solution: Meta Winners to Drive + Sheets, Automatically

This workflow runs a full “research to ready-to-test” pipeline inside n8n. You launch it, and it queries the Facebook Ad Library via an Apify-powered scrape (using your keywords, industries, or competitor targets). It filters out ads that won’t help (like missing images or video-only results), then creates a clean folder structure in Google Drive for each ad archive ID. Next, it downloads the source image, uploads it to Drive, and shares it so you can link to it reliably. Then AI steps in: OpenAI Vision analyzes the creative (layout, colors, design patterns, messaging), and a second AI step drafts variation prompts based on your brand change request. Finally, the workflow generates multiple edited image variations, uploads them, and logs every detail to Google Sheets with direct links.

The workflow starts with a manual run in n8n, which is perfect when you want control over what you’re pulling. It moves from ad discovery to asset storage, then into analysis and image spinning. Google Sheets becomes the searchable database your team actually uses, while Google Drive stays clean and predictable.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you pull 20 competitor ads for a new campaign angle. Manually, if it takes about 10 minutes per ad to download the creative, capture the copy, file it into Drive, and log it into Sheets, that’s roughly 3 hours. Then you still need briefs for variations, which can easily add another hour. With this workflow, you run one job, wait for the scraping and AI generation, and review the finished Drive folders and Sheet links in one place. The human time drops to more like 20 minutes of setup plus quick QA.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Drive to store source and spun creatives.
  • Google Sheets to track ads, notes, and links.
  • Apify API key (get it from your Apify account settings).
  • OpenAI API key (get it from the OpenAI dashboard).

Skill level: Advanced. You’ll be comfortable setting API keys, editing a JSON request body, and troubleshooting a few moving parts.

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

How It Works

You trigger a run in n8n. This workflow is launched manually, which is useful for controlled research sprints (for example, “pull 20 ads for this competitor set”). It also makes initial setup safer since you can test in small batches.

The workflow fetches ads and filters them. n8n sends an HTTP request to pull Ad Library results (via Apify), then removes items with missing images and limits the count so you don’t accidentally run up costs during testing.

Drive and Sheets are prepared, then assets are organized. It creates a parent Drive folder per ad archive ID, plus separate subfolders for “Source Assets” and “Spun Assets.” In parallel, it initializes a Google Sheet with the right headers so every run logs the same fields.

AI analyzes the creative and produces variations. The source image is downloaded and uploaded, then OpenAI Vision describes what’s happening in the ad. Another AI step turns that analysis into prompts, and the workflow iterates through them to generate a few edited image variations.

Everything is logged for reuse. The workflow uploads the variant images to Drive and appends a row in Google Sheets with timestamps, IDs, copy, prompts, and direct links. You can easily modify the search terms and the brand “change request” to match different clients or offers based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

Start the workflow manually and confirm the initial flow into the folder and spreadsheet setup.

  1. Add the Manual Launch Trigger node as the workflow start.
  2. Confirm the execution flow begins with Manual Launch TriggerInitialize Drive Folder.
  3. Keep Flowpast Branding as a documentation note (no configuration required).

Step 2: Connect Google Drive & Google Sheets

Provision a Drive folder and a spreadsheet to store scraped ads and generated asset links.

  1. In Initialize Drive Folder, set Name to PPC Thievery and Resource to folder. Credential Required: Connect your Google Drive credentials.
  2. In Create Spreadsheet File, set Title to PPC Thievery and create a sheet named scraped_ads. Credential Required: Connect your Google Sheets credentials.
  3. In Prepare Sheet Fields, keep the field assignments for timestamp, ad_archive_id, page_id, original_image_url, page_name, ad_body, date_scraped, spun_prompts, asset_folder, source_folder, spun_folder, and direct_spun_image_link (all empty strings).
  4. In Append Sheet Headers, set Operation to append, Sheet Name to scraped_ads, and Document ID to ={{ $('Create Spreadsheet File').item.json.spreadsheetId }}. Credential Required: Connect your Google Sheets credentials.
  5. Group Google Drive credentials across all Drive nodes (7 nodes total including Generate Parent Asset Folder, Create Source Subfolder, Create Variant Subfolder, Upload Source Image, Share Source File, and Upload Variant Image). Credential Required: Connect your Google Drive credentials.
⚠️ Common Pitfall: If Google Drive or Google Sheets credentials are missing, every downstream create/append action will fail. Ensure both are connected before testing.

Step 3: Set Up Configuration & Ad Fetching

Provide configuration values and fetch ads from the library with filtering and limits.

  1. In Map Config Values, replace googleDriveFolderId and spreadsheetId values [YOUR_ID] with your actual folder and spreadsheet IDs, and edit changeRequest as needed.
  2. In Execute Ad Library Fetch, set URL to https://api.apify.com/v2/acts/XtaWFhbtfxyzqrFmd/run-sync-get-dataset-items, Method to POST, and JSON Body to the provided payload. Update the Authorization header to Bearer [CONFIGURE_YOUR_TOKEN].
  3. In Remove Missing Images, keep the condition that checks ={{ $json.snapshot.images[0].original_image_url }} exists.
  4. In Restrict Item Count, set Max Items to 2 to limit processing per run.
Tip: Increase maxItems in Restrict Item Count after validating the pipeline to scale safely.

Step 4: Configure Asset Foldering & Source Image Handling

Create per-ad Drive folders, download the original creative, and share it for AI vision analysis.

  1. In Generate Parent Asset Folder, set Name to ={{ $json.ad_archive_id }} and Folder ID to ={{ $('Map Config Values').item.json.googleDriveFolderId }}.
  2. In Create Source Subfolder, set Name to =1. Source Assets and Folder ID to ={{$json.id}}.
  3. In Create Variant Subfolder, set Name to =2. Spun Assets and Folder ID to ={{ $('Generate Parent Asset Folder').item.json.id }}.
  4. In Retrieve Source Image, set URL to ={{ $('Execute Ad Library Fetch').item.json.snapshot.images[0].original_image_url }}.
  5. In Upload Source Image, set Name to ={{ $binary.data.fileName }} and choose the target Drive folder (preferably the Source subfolder). Credential Required: Connect your Google Drive credentials.
  6. In Share Source File, set Operation to share with Role writer and Type anyone to allow the vision model to access the image.

Step 5: Set Up AI Analysis & Prompt Variations

Use vision analysis and prompt rewriting to generate multiple creative variants.

  1. In Analyze Image Vision, set Resource to image, Operation to analyze, Text to What's in this image? Describe it extremely comprehensively. Leave nothing out., and Image URLs to =https://drive.google.com/uc?export=download&id={{ $('Upload Source Image').item.json.id }}. Credential Required: Connect your OpenAI credentials.
  2. In Draft Variation Prompts, enable JSON Output and keep the message template that uses ={{ $json.content }} and ={{ $('Map Config Values').item.json.changeRequest }}. Credential Required: Connect your OpenAI credentials.
  3. In Separate Prompt Variants, set Field to Split Out to message.content.variants and include allOtherFields.
  4. In Map Variant Fields, map variant to ={{ $json["message.content.variants"] }} and imageAdUrl to ={{ $('Remove Missing Images').item.json.snapshot.images[0].original_image_url }}.
  5. In Iterate Variations, keep batch processing enabled to feed the image edit loop.
⚠️ Common Pitfall: Analyze Image Vision and Draft Variation Prompts are OpenAI nodes; both require valid credentials or the workflow will stop before variants are created.

Step 6: Configure Image Editing, Uploads, and Logging

Generate new images, store them, and log results into Google Sheets with pacing between batches.

  1. In Fetch Image For Edit, set URL to ={{ $json.imageAdUrl }}.
  2. In Generate Edited Image, set URL to https://api.openai.com/v1/images/edits, Method to POST, Content Type to multipart-form-data, and keep the prompt value containing {{ $('Iterate Variations').item.json.variant }}. Credential Required: Connect your openAiApi credentials.
  3. In Convert Image Binary, set Operation to toBinary and Source Property to data[0].b64_json.
  4. In Upload Variant Image, set Name to ={{ $('Upload Source Image').item.json.name }} and choose the variant subfolder as the destination. Credential Required: Connect your Google Drive credentials.
  5. In Log Results to Sheet, keep Operation as append and Document ID as ={{ $('Map Config Values').item.json.spreadsheetId }}, with column mappings such as ={{ $now.toSeconds() }} and ={{ $json.webViewLink }}. Credential Required: Connect your Google Sheets credentials.
  6. In Pause Between Batches, set Amount to 1 to throttle requests before Iterate Variations continues.

Step 7: Test and Activate Your Workflow

Run a manual test, validate outputs, and then activate for ongoing use.

  1. Click Execute Workflow to trigger Manual Launch Trigger and watch each node complete in sequence.
  2. Confirm new folders appear in Drive, a spreadsheet called PPC Thievery is created, and rows are appended in the scraped_ads sheet.
  3. Verify that variant images are uploaded and that Log Results to Sheet writes valid links and metadata.
  4. Once validated, toggle the workflow to Active for production runs (or keep manual execution if only on-demand).
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Drive credentials can expire or need specific permissions. If things break, check the n8n credential settings and Drive sharing permissions first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Frequently Asked Questions

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

Plan on about 2–3 hours, mostly for credentials and testing.

Do I need coding skills to automate Meta ad research?

No coding required, but it’s not “one click.” You will edit a few settings like API keys and the scraper request.

Is n8n free to use for this Meta ad research 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 OpenAI image/vision usage and Apify runs, which often lands around $100/month for active use.

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 ad research automation for my brand guidelines and offers?

Yes, and you should. Update the “changeRequest” value in the Set Variables node to include your brand voice, compliance rules, and what must change in every variation (colors, fonts, CTA style, claims). You can also adjust the Apify search terms in the HTTP request body to target specific competitors, regions, or keywords. If you want more or fewer variants per source ad, change how the prompt variants are split and iterated.

Why is my Google Drive connection failing in this workflow?

Usually it’s permissions or an expired token. Reconnect the Google Drive credential in n8n, then confirm the connected Google account can create folders and share files in the target Drive location. If the workflow creates folders but can’t share links, check domain restrictions in Google Workspace. Rate limits can show up too if you’re uploading lots of images quickly, so the Wait node matters.

How many ads can this Meta ad research automation handle?

If you self-host, there’s no execution limit (it mostly depends on your server and API quotas).

Is this Meta ad research automation better than using Zapier or Make?

For this specific use case, n8n is usually the better fit because you’re chaining scraping, file handling, AI vision analysis, image generation, and structured logging. That’s a lot of branching and iteration, and those scenarios get expensive fast on Zapier or Make. n8n also gives you a self-host route, which matters when you’re running frequent research sprints. The flip side is setup complexity. If you only need “save ad link to a sheet,” Zapier is quicker. Talk to an automation expert if you want help choosing.

Once this is running, creative research stops being a scavenger hunt and becomes a repeatable system. The workflow handles the collecting and organizing so you can focus on testing what matters.

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