Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Drive + Sheets för research av Meta-annonsmaterial

Rickard Andersson Partner, Nodenordic.se

Annonsresearch låter enkelt tills du sitter tre flikar in, laddar ner bilder en och en och försöker minnas varför den där “vinnaren” såg bra ut från början. Sedan börjar Slack-notiserna pinga, kalkylarket är halvifyllt och din “swipe file” blir en rörig mapp som heter final_v7_FINAL.

Det här problemet med Meta-annonsresearch drabbar performance marketers först. Men byråägare som försöker skala kreativa tester och e-handelsteam som jobbar snabbt känner av det också. Resultatet du vill ha är uppenbart: konkurrentvinnare fångade, organiserade och redo att omvandlas till nästa batch tester utan att du tappar en halv dag.

Det här n8n-workflowet hämtar aktiva annonser från Facebook Ad Library, sparar originalkreativen i Google Drive, genererar några nya variationer med AI och loggar allt i Google Sheets. Du ser vad det gör, vad du behöver och hur du använder det utan att göra din process till ett vetenskapsprojekt.

Så fungerar den här automatiseringen

Hela n8n-workflowet, från trigger till slutresultat:

n8n Workflow Template: Drive + Sheets för research av Meta-annonsmaterial

Problemet: kreativ research blir administrativt merjobb

När du hittar en lovande annons i Meta Ad Library behöver du inte bara bilden. Du behöver sidnamnet, texten, vinkeln och sammanhanget som gjorde att den fungerade. Och du behöver det på en plats där teamet faktiskt kan återanvända det. Manuellt betyder det skärmdumpar, nedladdningar, röriga Drive-mappar och ett kalkylark som alltid saknar “en detalj till”. Ännu värre: research görs om eftersom ingen litar på arkivet. Så du hittar samma annonser igen varje vecka. Ärligt talat är det utmattande.

Det eskalerar snabbt. Här är var det fallerar när du håller det manuellt.

  • Du lägger cirka 10 minuter per annons bara på att spara grunderna (bild, text, URL, anteckningar) och det blir ändå inkonsekvent.
  • Team tappar bort “varför den här vann”, så nästa kreativa runda startar på magkänsla i stället för evidens.
  • Mappar växer utan struktur, vilket gör att din bästa inspiration i praktiken blir begravd.
  • Även när du hittar vinnare tar det ytterligare en timme att göra variationer, med repetitiva briefs och fram-och-tillbaka.

Lösningen: Meta-vinnare till Drive + Sheets, automatiskt

Det här workflowet kör en komplett pipeline från “research” till “redo att testa” i n8n. Du startar det och det hämtar resultat från Facebook Ad Library via en Apify-baserad scraping (med dina nyckelord, branscher eller konkurrentmål). Det filtrerar bort annonser som inte hjälper (till exempel utan bilder eller resultat med enbart video), skapar sedan en strukturerad mappstruktur i Google Drive för varje annonsarkiv-ID. Därefter laddar det ner originalbilden, laddar upp den till Drive och delar den så att du kan länka till den pålitligt. Sedan tar AI över: OpenAI Vision analyserar kreativet (layout, färger, designmönster, budskap) och ett andra AI-steg skriver prompts för variationer baserat på din varumärkesändring. Till sist genererar workflowet flera redigerade bildvariationer, laddar upp dem och loggar varje detalj i Google Sheets med direkta länkar.

Workflowet startar med en manuell körning i n8n, vilket är perfekt när du vill ha kontroll över vad du hämtar. Det går från annonsupptäckt till lagring av tillgångar, vidare till analys och bildspinning. Google Sheets blir den sökbara databasen som teamet faktiskt använder, medan Google Drive förblir strukturerat och förutsägbart.

Det du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du hämtar 20 konkurrentannonser för en ny kampanjvinkel. Manuellt, om det tar cirka 10 minuter per annons att ladda ner kreativet, fånga texten, lägga det i Drive och logga det i Sheets, är det ungefär 3 timmar. Sedan behöver du fortfarande briefs för variationer, vilket lätt kan lägga till en timme till. Med det här workflowet kör du ett jobb, väntar på scraping och AI-generering och granskar de färdiga Drive-mapparna och Sheet-länkarna på ett och samma ställe. Den mänskliga tiden landar mer på cirka 20 minuter för setup plus snabb QA.

Det du behöver

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Google Drive för att lagra original- och spunna creatives.
  • Google Sheets för att spåra annonser, anteckningar och länkar.
  • Apify API-nyckel (hämta den i inställningarna för ditt Apify-konto).
  • OpenAI API-nyckel (hämta den i OpenAI-dashboarden).

Kunskapsnivå: Avancerad. Du är bekväm med att sätta API-nycklar, redigera en JSON request body och felsöka några rörliga delar.

Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Du triggar en körning i n8n. Det här workflowet startas manuellt, vilket är användbart för kontrollerade researchsprintar (till exempel “hämta 20 annonser för den här konkurrentgruppen”). Det gör också den initiala setupen säkrare eftersom du kan testa i små batcher.

Workflowet hämtar annonser och filtrerar dem. n8n skickar en HTTP-request för att hämta resultat från Ad Library (via Apify), tar sedan bort objekt utan bilder och begränsar antalet så att du inte råkar dra iväg kostnader under testning.

Drive och Sheets förbereds, sedan organiseras tillgångarna. Det skapar en överordnad Drive-mapp per annonsarkiv-ID, plus separata undermappar för “Source Assets” och “Spun Assets”. Parallellt initierar det ett Google Sheet med rätt rubriker så att varje körning loggar samma fält.

AI analyserar kreativet och tar fram variationer. Originalbilden laddas ner och laddas upp, sedan beskriver OpenAI Vision vad som händer i annonsen. Ett annat AI-steg gör om analysen till prompts och workflowet itererar igenom dem för att generera några redigerade bildvariationer.

Allt loggas för återanvändning. Workflowet laddar upp variantbilderna till Drive och lägger till en rad i Google Sheets med tidsstämplar, ID:n, text, prompts och direkta länkar. Du kan enkelt ändra söktermerna och varumärkets “change request” för att matcha olika kunder eller erbjudanden efter behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementation

Steg 1: konfigurera den manuella triggern

Starta arbetsflödet manuellt och bekräfta det initiala flödet in i mapp- och kalkylarksuppsättningen.

  1. Lägg till noden Manual Launch Trigger som start för arbetsflödet.
  2. Bekräfta att exekveringsflödet börjar med Manual Launch TriggerInitialize Drive Folder.
  3. Lämna Flowpast Branding som en dokumentationsnotering (ingen konfiguration krävs).

Steg 2: anslut Google Drive och Google Sheets

Etablera en Drive-mapp och ett kalkylark för att lagra skrapade annonser och genererade asset-länkar.

  1. I Initialize Drive Folder ställer ni in Name till PPC Thievery och Resource till folder. Credential Required: Anslut era Google Drive-uppgifter.
  2. I Create Spreadsheet File ställer ni in Title till PPC Thievery och skapar ett blad med namnet scraped_ads. Credential Required: Anslut era Google Sheets-uppgifter.
  3. I Prepare Sheet Fields behåller ni fälttilldelningarna för timestamp, ad_archive_id, page_id, original_image_url, page_name, ad_body, date_scraped, spun_prompts, asset_folder, source_folder, spun_folder och direct_spun_image_link (alla tomma strängar).
  4. I Append Sheet Headers ställer ni in Operation till append, Sheet Name till scraped_ads och Document ID till ={{ $('Create Spreadsheet File').item.json.spreadsheetId }}. Credential Required: Anslut era Google Sheets-uppgifter.
  5. Återanvänd Google Drive-uppgifter i samtliga Drive-noder (totalt 7 noder inklusive Generate Parent Asset Folder, Create Source Subfolder, Create Variant Subfolder, Upload Source Image, Share Source File och Upload Variant Image). Credential Required: Anslut era Google Drive-uppgifter.
⚠️ Vanlig fallgrop: Om Google Drive- eller Google Sheets-uppgifter saknas kommer varje efterföljande create/append-åtgärd att misslyckas. Säkerställ att båda är anslutna innan ni testar.

Steg 3: konfigurera inställningar och annonsinhämtning

Ange konfigurationsvärden och hämta annonser från biblioteket med filtrering och begränsningar.

  1. I Map Config Values ersätter ni värdena [YOUR_ID] för googleDriveFolderId och spreadsheetId med era faktiska mapp- och kalkylarks-ID:n, och justerar changeRequest vid behov.
  2. I Execute Ad Library Fetch ställer ni in URL till https://api.apify.com/v2/acts/XtaWFhbtfxyzqrFmd/run-sync-get-dataset-items, Method till POST och JSON Body till den angivna payloaden. Uppdatera headern Authorization till Bearer [CONFIGURE_YOUR_TOKEN].
  3. I Remove Missing Images behåller ni villkoret som kontrollerar att ={{ $json.snapshot.images[0].original_image_url }} finns.
  4. I Restrict Item Count ställer ni in Max Items till 2 för att begränsa bearbetningen per körning.
Tips: Öka maxItems i Restrict Item Count efter att ni har validerat pipelinen för att skala på ett säkert sätt.

Steg 4: konfigurera asset-mappar och hantering av källbild

Skapa en Drive-mapp per annons, ladda ner originalmaterialet och dela det för AI-vision-analys.

  1. I Generate Parent Asset Folder ställer ni in Name till ={{ $json.ad_archive_id }} och Folder ID till ={{ $('Map Config Values').item.json.googleDriveFolderId }}.
  2. I Create Source Subfolder ställer ni in Name till =1. Source Assets och Folder ID till ={{$json.id}}.
  3. I Create Variant Subfolder ställer ni in Name till =2. Spun Assets och Folder ID till ={{ $('Generate Parent Asset Folder').item.json.id }}.
  4. I Retrieve Source Image ställer ni in URL till ={{ $('Execute Ad Library Fetch').item.json.snapshot.images[0].original_image_url }}.
  5. I Upload Source Image ställer ni in Name till ={{ $binary.data.fileName }} och väljer mål-mapp i Drive (helst Source-undermappen). Credential Required: Anslut era Google Drive-uppgifter.
  6. I Share Source File ställer ni in Operation till share med Role writer och Type anyone för att låta vision-modellen komma åt bilden.

Steg 5: konfigurera AI-analys och prompt-variationer

Använd vision-analys och omskrivning av prompts för att generera flera kreativa varianter.

  1. I Analyze Image Vision ställer ni in Resource till image, Operation till analyze, Text till What's in this image? Describe it extremely comprehensively. Leave nothing out. och Image URLs till =https://drive.google.com/uc?export=download&id={{ $('Upload Source Image').item.json.id }}. Credential Required: Anslut era OpenAI-uppgifter.
  2. I Draft Variation Prompts aktiverar ni JSON Output och behåller meddelandemallen som använder ={{ $json.content }} och ={{ $('Map Config Values').item.json.changeRequest }}. Credential Required: Anslut era OpenAI-uppgifter.
  3. I Separate Prompt Variants ställer ni in Field to Split Out till message.content.variants och inkluderar allOtherFields.
  4. I Map Variant Fields mappar ni variant till ={{ $json["message.content.variants"] }} och imageAdUrl till ={{ $('Remove Missing Images').item.json.snapshot.images[0].original_image_url }}.
  5. I Iterate Variations låter ni batchbearbetning vara aktiverad för att mata bildredigeringsloopen.
⚠️ Vanlig fallgrop: Analyze Image Vision och Draft Variation Prompts är OpenAI-noder; båda kräver giltiga uppgifter, annars stoppar arbetsflödet innan varianter skapas.

Steg 6: konfigurera bildredigering, uppladdningar och loggning

Generera nya bilder, lagra dem och logga resultaten i Google Sheets med paus mellan batcher.

  1. I Fetch Image For Edit ställer ni in URL till ={{ $json.imageAdUrl }}.
  2. I Generate Edited Image ställer ni in URL till https://api.openai.com/v1/images/edits, Method till POST, Content Type till multipart-form-data och behåller prompt-värdet som innehåller {{ $('Iterate Variations').item.json.variant }}. Credential Required: Anslut era openAiApi-uppgifter.
  3. I Convert Image Binary ställer ni in Operation till toBinary och Source Property till data[0].b64_json.
  4. I Upload Variant Image ställer ni in Name till ={{ $('Upload Source Image').item.json.name }} och väljer variant-undermappen som destination. Credential Required: Anslut era Google Drive-uppgifter.
  5. I Log Results to Sheet behåller ni Operation som append och Document ID som ={{ $('Map Config Values').item.json.spreadsheetId }}, med kolumnmappningar som ={{ $now.toSeconds() }} och ={{ $json.webViewLink }}. Credential Required: Anslut era Google Sheets-uppgifter.
  6. I Pause Between Batches ställer ni in Amount till 1 för att strypa anrop innan Iterate Variations fortsätter.

Steg 7: testa och aktivera ert arbetsflöde

Kör ett manuellt test, validera utdata och aktivera sedan för löpande användning.

  1. Klicka på Execute Workflow för att trigga Manual Launch Trigger och följ att varje nod slutförs i turordning.
  2. Bekräfta att nya mappar dyker upp i Drive, att ett kalkylark med namnet PPC Thievery skapas och att rader läggs till i bladet scraped_ads.
  3. Verifiera att variantbilder laddas upp och att Log Results to Sheet skriver giltiga länkar och metadata.
  4. När allt är validerat växlar ni arbetsflödet till Active för produktionskörningar (eller behåller manuell körning om det bara ska köras vid behov).
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Drive-autentisering kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, börja med att kontrollera credential-inställningarna i n8n och Drive-delningens behörigheter.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompts i AI-noder är generiska. Lägg in er varumärkesröst tidigt, annars kommer du att redigera outputen i all evighet.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för Meta-annonsresearch?

Räkna med cirka 2–3 timmar, främst för autentisering och testning.

Behöver jag kunna koda för att automatisera Meta-annonsresearch?

Ingen kodning krävs, men det är inte “ett klick”. Du behöver redigera några inställningar som API-nycklar och scraper-requesten.

Är n8n gratis att använda för det här workflowet för Meta-annonsresearch?

Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också räkna in OpenAI-användning för bild/vision och Apify-körningar, vilket ofta landar runt 100 USD/månad vid aktiv användning.

Var kan jag hosta n8n för att köra den här automatiseringen?

Två alternativ: n8n Cloud (hanterat, enklast setup) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa den här automatiseringen för Meta-annonsresearch efter mina varumärkesriktlinjer och erbjudanden?

Ja, och det bör du. Uppdatera värdet “changeRequest” i noden Set Variables så att det inkluderar er varumärkesröst, compliance-regler och vad som måste ändras i varje variation (färger, typsnitt, CTA-stil, claims). Du kan också justera Apify-söktermerna i HTTP-requestens body för att rikta in dig på specifika konkurrenter, regioner eller nyckelord. Om du vill ha fler eller färre varianter per källannons ändrar du hur promptvarianterna delas upp och itereras.

Varför misslyckas min Google Drive-anslutning i det här workflowet?

Oftast handlar det om behörigheter eller en utgången token. Anslut Google Drive-credential igen i n8n och bekräfta sedan att det kopplade Google-kontot kan skapa mappar och dela filer i den valda Drive-platsen. Om workflowet skapar mappar men inte kan dela länkar, kontrollera domänrestriktioner i Google Workspace. Rate limits kan också dyka upp om du laddar upp många bilder snabbt, så Wait-noden spelar roll.

Hur många annonser klarar den här automatiseringen för Meta-annonsresearch?

Om du self-hostar finns ingen körningsgräns (det beror främst på din server och API-kvoter).

Är den här automatiseringen för Meta-annonsresearch bättre än att använda Zapier eller Make?

För just det här användningsfallet är n8n oftast bättre eftersom du kedjar scraping, filhantering, AI-visionanalys, bildgenerering och strukturerad loggning. Det är mycket förgrening och iterering, och sådana scenarier blir snabbt dyra i Zapier eller Make. n8n ger dig också en self-host-väg, vilket är viktigt när du kör frekventa researchsprintar. Nackdelen är setup-komplexiteten. Om du bara behöver “spara annonslänk i ett ark” går Zapier snabbare. Prata med en automationsexpert om du vill ha hjälp att välja.

När detta väl är igång slutar kreativ research att vara en skattjakt och blir ett repeterbart system. Workflowet sköter insamling och organisering så att du kan fokusera på att testa det som betyder något.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal