자동화된 Meta 광고 분석
고급
이것은Market Research, AI Summarization분야의자동화 워크플로우로, 17개의 노드를 포함합니다.주로 Limit, SplitOut, HttpRequest, GoogleSheets, ManualTrigger 등의 노드를 사용하며. Gemini AI, ScrapingFlash 및 Google Sheets를 사용한 Meta 광고 자동 분석
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
- •Google Gemini API Key
사용된 노드 (17)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "1f5ba07b3d13878feccf2edc6715cb776b71c7f07f9111b940d134cc0b5c944e"
},
"nodes": [
{
"id": "84fd2525-1a80-42e8-b0c1-d179b96d5d31",
"name": "README",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1520,
-2400
],
"parameters": {
"width": 500,
"height": 980,
"content": "## AI Meta Ads Analyst\n\n### This workflow automates the analysis of Meta (Facebook) ads. It scrapes ads from a provided list of Facebook Ad Library URLs, uses Gemini AI to perform an in-depth analysis of each ad creative and text, and then stores the structured results in a Google Sheet.\n\n### How it works\n1. **Trigger & Fetch URLs:** The workflow starts on a schedule (e.g., daily) and fetches a list of Facebook Ad Library URLs from a Google Sheet.\n2. **Scrape Ads:** It uses the ScrapingFlash API to scrape the ads found at each URL.\n3. **Process Ads:** The workflow splits the scraped data into individual ads and loops through them (limited to 10 per run in this template to manage costs).\n4. **AI Analysis with Gemini:** For each ad, it sends the image and text to Google's Gemini AI model. A detailed prompt guides the AI to act as an expert analyst, evaluating strengths, weaknesses, and suggesting improvements.\n5. **Structured Output:** A Structured Output Parser ensures the AI's response is in a clean, consistent JSON format.\n6. **Save to Google Sheets:** The final, structured analysis for each ad is appended as a new row in a designated Google Sheet.\n\n### How to use\n1. **Set up Credentials:**\n * **ScrapingFlash:** Create a Header Auth credential for ScrapingFlash. Set the `Name` to `x-api-key` and the `Value` to your actual API key.\n * **Google Gemini:** Add your Google Gemini API key credential.\n * **Google Sheets:** Authenticate your Google account for the Sheets nodes.\n2. **Configure Google Sheets:**\n * In the \"Get URL to scrap\" node, select your Sheet and specify the column with the Facebook Ad Library URLs.\n * In the \"Add row in Sheet\" node, select the Sheet and worksheet where you want to save the analysis. Map the columns to the output from the Gemini node.\n3. **Activate Workflow:** Enable the workflow. It will run automatically based on the schedule set in the \"Schedule Trigger\" node. You can also run it manually using the \"When clicking ‘Execute workflow’\" button for testing.\n\n### Requirements\n* A ScrapingFlash account and API key.\n* A Google account with access to the Gemini API.\n* A Google account for Google Sheets.\n\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Hacking!"
},
"typeVersion": 1
},
{
"id": "501e6350-a65e-4e61-a9ca-0ec2efcb9c8b",
"name": "워크플로우 실행 시",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-848,
-1920
],
"parameters": {},
"typeVersion": 1
},
{
"id": "6b82376a-d57a-4be2-9354-6f891f474238",
"name": "일정 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-848,
-2128
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "38c384ad-f9ad-4ccd-8a20-3ceefc8eec82",
"name": "메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
-848,
-2400
],
"parameters": {
"color": 7,
"width": 316,
"height": 240,
"content": "## 1. Trigger & Get URLs\n\nThis workflow can be triggered manually or on a schedule.\n\nThe Google Sheets node fetches a list of Facebook Ad Library URLs that you want to analyze. Make sure your sheet has a column with these URLs."
},
"typeVersion": 1
},
{
"id": "54543b50-a2cb-44c7-8152-4be093167276",
"name": "스크랩할 URL 가져오기",
"type": "n8n-nodes-base.googleSheets",
"position": [
-560,
-2032
],
"parameters": {
"sheetName": {
"__rl": true,
"mode": "list",
"value": ""
},
"documentId": {
"__rl": true,
"mode": "list",
"value": ""
}
},
"typeVersion": 4.6
},
{
"id": "2edfce52-e8c7-41a3-ae21-8516cf7e8957",
"name": "scrapingflash.com 요청",
"type": "n8n-nodes-base.httpRequest",
"position": [
-288,
-2032
],
"parameters": {
"url": "https://api.scrapingflash.com/v1/facebook_ads",
"method": "POST",
"options": {},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "headerAuth"
},
"typeVersion": 4.2
},
{
"id": "c70a0c61-d6f6-44e1-9ab2-da906b67a9c7",
"name": "메모1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
-2400
],
"parameters": {
"color": 7,
"width": 332,
"height": 224,
"content": "## 2. Scrape Meta Ads\n\nThe HTTP Request node calls the ScrapingFlash API to scrape the ads from the URL provided by the previous step.\n\n**Important:** You must create a \"Header Auth\" credential and add your ScrapingFlash API key there."
},
"typeVersion": 1
},
{
"id": "b020da3e-8f9a-4af0-8f2e-0986725bbd45",
"name": "모든 광고 분할",
"type": "n8n-nodes-base.splitOut",
"position": [
-48,
-2032
],
"parameters": {
"options": {},
"fieldToSplitOut": "body.ads"
},
"typeVersion": 1
},
{
"id": "0765638f-61e9-40d3-b1a1-dd5b261566b6",
"name": "항목 반복",
"type": "n8n-nodes-base.splitInBatches",
"position": [
160,
-2032
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "d42b014e-63cc-41d8-8741-b7b028e74d02",
"name": "메모2",
"type": "n8n-nodes-base.stickyNote",
"position": [
64,
-2400
],
"parameters": {
"color": 7,
"width": 444,
"height": 224,
"content": "## 3. Process & Loop Through Ads\n\n- **Split all the ads:** This node takes the list of ads from the scraper and creates a separate item for each one.\n- **Loop Over Items:** This utility node processes each ad one by one.\n- **Limit:** To control costs and execution time, this node limits the workflow to analyzing only the first 10 ads per run. You can adjust or remove this."
},
"typeVersion": 1
},
{
"id": "9e197a15-e01f-479a-a149-76887d4f2fcc",
"name": "10개 광고로 제한",
"type": "n8n-nodes-base.limit",
"position": [
368,
-2032
],
"parameters": {},
"typeVersion": 1
},
{
"id": "cbf96cba-eccb-4e5a-ba88-f8a6dd9a6fd7",
"name": "모든 Meta 광고 분류",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
608,
-2032
],
"parameters": {
"text": "Analyse this D2C newsletter",
"messages": {
"messageValues": [
{
"message": "=You are a highly skilled Meta Ads Analyst, possessing a deep understanding of advertising principles, consumer psychology, and Meta's advertising platform. Your expertise lies in evaluating ad creatives (images and text) to predict their performance and provide actionable insights. Your analysis will culminate in a score (out of 5) and a concise TL;DR summarizing the ad's strengths and weaknesses.\n\nHere's the format you will use to analyze the provided Meta ad and deliver your assessment:\n\n---\n\n## Meta Ad Analysis\n\n**Ad Image:**\n**Ad Text:** \n\n\n**Analysis:**\n\n* **Strengths:** [Identify at least three strengths of the ad, explaining why they are effective. Consider elements like visual appeal, clarity of message, value proposition, call to action, and relevance to the target audience.]\n* **Weaknesses:** [Identify at least three weaknesses of the ad, explaining why they might hinder performance. Consider elements like confusing messaging, lack of visual appeal, weak call to action, irrelevance to the target audience, and potential for misinterpretation.]\n* **Potential Improvements:** [Suggest specific, actionable improvements to address the identified weaknesses. Be practical and consider the limitations of the Meta Ads platform.]\n\n**Scoring:**\n\n* **Overall Score (out of 5):** [Provide a score between 1 and 5, with 5 being an exceptionally strong ad and 1 being a very weak ad.]\n* **Justification:** [Briefly explain the reasoning behind your score, highlighting the key factors that influenced your assessment.]\n\n**TL;DR:** [Provide a concise summary (one or two sentences) of the ad's overall effectiveness and key areas for improvement.]\n\n---\n\nHere is the Meta Ad you are tasked with analyzing: [ENTER META AD IMAGE DESCRIPTION AND TEXT HERE]"
},
{
"type": "HumanMessagePromptTemplate",
"imageUrl": "=",
"messageType": "imageUrl"
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.4
},
{
"id": "ac7d5925-9115-4fbf-8108-0c8a1c17a9fb",
"name": "메모3",
"type": "n8n-nodes-base.stickyNote",
"position": [
592,
-2400
],
"parameters": {
"color": 7,
"width": 348,
"height": 224,
"content": "## 4. Analyze Ad with Gemini AI\n\nThis is the core of the workflow. The LangChain chain sends the ad image and text to Google's Gemini model.\n\nA detailed prompt instructs the AI on how to perform the analysis, and a Structured Output Parser ensures the response is in a usable JSON format."
},
"typeVersion": 1
},
{
"id": "303cc507-4916-4340-a824-85ca0a90b9af",
"name": "Google Gemini 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
608,
-1792
],
"parameters": {
"options": {},
"modelName": "models/gemini-pro-vision"
},
"typeVersion": 1
},
{
"id": "23e184a4-81a9-49bf-9d62-618e8c2febc5",
"name": "구조화된 출력 파서",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
864,
-1792
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"ad_image\": {\n \"type\": \"string\",\n \"description\": \"Description of the ad image.\"\n },\n \"ad_text\": {\n \"type\": \"string\",\n \"description\": \"Text used in the Meta ad.\"\n },\n \"analysis\": {\n \"type\": \"object\",\n \"properties\": {\n \"strengths\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" },\n \"description\": \"List of at least 3 strengths with explanations.\"\n },\n \"weaknesses\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" },\n \"description\": \"List of at least 3 weaknesses with explanations.\"\n },\n \"potential_improvements\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" },\n \"description\": \"Specific, actionable improvement suggestions.\"\n }\n },\n \"required\": [\"strengths\", \"weaknesses\", \"potential_improvements\"]\n },\n \"scoring\": {\n \"type\": \"object\",\n \"properties\": {\n \"overall_score\": {\n \"type\": \"number\",\n \"minimum\": 1,\n \"maximum\": 5,\n \"description\": \"Overall score from 1 to 5.\"\n },\n \"justification\": {\n \"type\": \"string\",\n \"description\": \"Reasoning behind the given score.\"\n }\n },\n \"required\": [\"overall_score\", \"justification\"]\n },\n \"tldr\": {\n \"type\": \"string\",\n \"description\": \"One or two sentence summary of effectiveness and key improvements.\"\n }\n },\n \"required\": [\"ad_image\", \"ad_text\", \"analysis\", \"scoring\", \"tldr\"]\n}\n"
},
"typeVersion": 1.2
},
{
"id": "08482067-31af-4586-a89e-48f493149b21",
"name": "시트에 행 추가",
"type": "n8n-nodes-base.googleSheets",
"position": [
1152,
-2032
],
"parameters": {
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": ""
},
"documentId": {
"__rl": true,
"mode": "list",
"value": ""
}
},
"typeVersion": 4.6
},
{
"id": "4304793b-6545-4cd8-b35f-9143090a4897",
"name": "메모4",
"type": "n8n-nodes-base.stickyNote",
"position": [
992,
-2400
],
"parameters": {
"color": 7,
"width": 412,
"height": 224,
"content": "## 5. Save Analysis to Google Sheets\n\nThe final step takes the structured output from the Gemini AI analysis and appends it as a new row to your Google Sheet.\n\nYou'll need to configure this node to point to your desired sheet and map the data from the AI node to the correct columns."
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"9e197a15-e01f-479a-a149-76887d4f2fcc": {
"main": [
[
{
"node": "cbf96cba-eccb-4e5a-ba88-f8a6dd9a6fd7",
"type": "main",
"index": 0
}
]
]
},
"0765638f-61e9-40d3-b1a1-dd5b261566b6": {
"main": [
[
{
"node": "9e197a15-e01f-479a-a149-76887d4f2fcc",
"type": "main",
"index": 0
}
]
]
},
"54543b50-a2cb-44c7-8152-4be093167276": {
"main": [
[
{
"node": "2edfce52-e8c7-41a3-ae21-8516cf7e8957",
"type": "main",
"index": 0
}
]
]
},
"6b82376a-d57a-4be2-9354-6f891f474238": {
"main": [
[
{
"node": "54543b50-a2cb-44c7-8152-4be093167276",
"type": "main",
"index": 0
}
]
]
},
"b020da3e-8f9a-4af0-8f2e-0986725bbd45": {
"main": [
[
{
"node": "0765638f-61e9-40d3-b1a1-dd5b261566b6",
"type": "main",
"index": 0
}
]
]
},
"303cc507-4916-4340-a824-85ca0a90b9af": {
"ai_languageModel": [
[
{
"node": "cbf96cba-eccb-4e5a-ba88-f8a6dd9a6fd7",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"23e184a4-81a9-49bf-9d62-618e8c2febc5": {
"ai_outputParser": [
[
{
"node": "cbf96cba-eccb-4e5a-ba88-f8a6dd9a6fd7",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"cbf96cba-eccb-4e5a-ba88-f8a6dd9a6fd7": {
"main": [
[
{
"node": "08482067-31af-4586-a89e-48f493149b21",
"type": "main",
"index": 0
}
]
]
},
"2edfce52-e8c7-41a3-ae21-8516cf7e8957": {
"main": [
[
{
"node": "b020da3e-8f9a-4af0-8f2e-0986725bbd45",
"type": "main",
"index": 0
}
]
]
},
"501e6350-a65e-4e61-a9ca-0ec2efcb9c8b": {
"main": [
[
{
"node": "54543b50-a2cb-44c7-8152-4be093167276",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 시장 조사, AI 요약
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
01 AI 미디어 바이어를 사용한 Facebook 광고 성과 분석 및 Google Sheets로 인사이트 전송
Gemini AI를 사용한 Facebook 광고 분석 및 Google Sheets로 인사이트 전송
If
Set
Code
+
If
Set
Code
34 노드JJ Tham
시장 조사
브랜드 보이콧성 검사 - AI 연구소 데모 프로젝트
跨AI검색工具의品牌可见性및情感분석 (OpenAI、Perplexity、ChatGPT)
If
Set
Limit
+
If
Set
Limit
48 노드AOE Agent Lab
시장 조사
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
Scrape.do, GPT-4 및 Google Sheets를 사용하여 아마존 제품 데이터 추출
Scrape.do, GPT-4, Google Sheets를 사용하여 아마존 제품 데이터를 추출합니다.
Html
Split Out
Http Request
+
Html
Split Out
Http Request
11 노드Onur
시장 조사
ScrapeGraph AI를 사용하여 n8n 커뮤니티에서 최근 추가된 워크플로우 추출
ScrapeGraphAI와 Gemini를 사용하여 n8n 커뮤니티가 최근 추가한 워크플로우를 추출하고 저장합니다.
Set
Merge
Split Out
+
Set
Merge
Split Out
21 노드Davide
기타
Google 크롤링, Bright Data 및 Gemini AI를 사용한 키워드 검색 의도 분석
구글 크롤링, Bright Data 및 Gemini AI를 사용하여 키워드 검색 의도 분석
Set
Merge
Split Out
+
Set
Merge
Split Out
24 노드Zacharia Kimotho
시장 조사