skills/meta-ads-setup/SKILL.md
Meta 광고 세팅 가이드 — Ads Manager에서 캠페인부터 Threads 배치까지 처음부터 수동 설정하고, Pencil App으로 광고 에셋 초안도 만든다. Meta 광고 세팅, Threads 광고 세팅 시 사용.
npx skillsauth add october-academy/agnt meta-ads-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Meta 광고 세팅 가이드. Ads Manager에서 캠페인 -> 광고 세트 -> 광고 순서로 직접 설정하게 안내합니다.
.claude/agnt/state.json을 Read 시도 → 성공하면 AGNT_DIR = .claude/agnt~/.claude/agnt/state.json Read 시도 → 성공하면 AGNT_DIR = ~/.claude/agnt.codex/agnt/state.json Read 시도 → 성공하면 AGNT_DIR = .codex/agnt~/.codex/agnt/state.json Read 시도 → 성공하면 AGNT_DIR = ~/.codex/agnt/agnt:start로 시작하세요." 출력 후 종료{AGNT_DIR}/references/shared/navigator-engine.md 존재 여부로 탐색.
아래 우선순위로 ICP 문서 경로를 결정한다:
docs/ICP.md{AGNT_DIR}/docs/ICP.md아래 우선순위로 디자인 시스템 문서 경로를 결정한다:
docs/design-system.md{AGNT_DIR}/docs/design-system.md광고 타겟의 source of truth는 아래 우선순위로 결정한다:
state.json의 project.icp{AGNT_DIR}/journey-brief.md의 현재 프로젝트 설명/시장 섹션ICP_DOC_PATH의 현재 프로젝트용 ICP 문서중요:
docs/ICP.md가 이 스킬/프레임워크 자체 또는 Agentic30 자체의 ICP를 설명하면, 그 문서는 참고 자료일 뿐 광고 타겟 기본값으로 쓰지 않는다docs/ICP.md가 있어도 자동으로 채택하지 않는다광고 에셋 비주얼 스타일의 source of truth는 아래 우선순위로 결정한다:
docs/design-system.md 문서중요:
스타일 fallback일 뿐, 사용자의 제품 메시지나 ICP를 대신하지 않는다내부 로직 무음 처리.
{AGNT_DIR}/state.json Read.
meta.schema_version != 3 → /agnt:start로 안내 후 종료project.icp == null이고 ICP_DOC_PATH도 없으면 → "먼저 /agnt:icp로 타겟을 고정해." (비강제 — 진행 가능)기본값 보증:
artifacts.meta_ads_setup_defined가 undefined면 false로 처리가능하면 아래를 Read:
state.json의 project.icp, project.problem, project.namestate.json의 tools.analyticsICP_DOC_PATHDESIGN_SYSTEM_DOC_PATH{AGNT_DIR}/journey-brief.md{AGNT_DIR}/ad-creatives.md없어도 진행 가능하다. 없으면 아래 기본값을 사용한다:
대한민국24-39한국어Threads feed트래픽ICP_DOC_PATH를 읽었다면 아래를 먼저 점검한다.
문서를 현재 광고 대상의 ICP로 쓰면 안 되는 신호:
Agentic30, agnt, 이 스킬, 이 커리큘럼 자체를 설명함project.name/project.problem이 전혀 다름위 신호가 있으면:
docs/ICP.md를 기본 타겟 source에서 제외project.icp 또는 journey-brief를 우선 사용DESIGN_SYSTEM_DOC_PATH가 있으면 아래를 먼저 우선 적용한다:
Asset Rules 섹션의 광고/OG 규칙문서가 현재 제품용이 아니거나 예시 문서처럼 보이면:
질문은 선택지 우선:
AskUserQuestion: "광고하려는 제품의 ICP source는 뭐야?"
docs/ICP.mdC를 선택한 경우에만:
AskUserQuestion: "누구에게 파는 제품인지 한 줄로 적어줘. 직업/상황/문제를 포함해."
먼저 현재 사용자가 어디에 있는지 짧게 판별한다.
AskUserQuestion: "지금 어디 화면이야?"
출력 규칙:
광고 전환 추적을 위해 Meta Pixel이 필요하다. 아래 순서로 안내한다.
AskUserQuestion: "Meta Pixel이 이미 설치되어 있어?"
B일 경우 아래 안내:
NEXT_PUBLIC_META_PIXEL_ID에 Pixel ID 설정| 페이지 | Meta 표준 이벤트 | 시점 |
|--------|-----------------|------|
| 랜딩 | ViewContent | 페이지 로드 |
| 로그인/가입 클릭 | Lead | OAuth 버튼 클릭 |
| 가입 완료 | CompleteRegistration | 온보딩 폼 제출 |
| 결제 CTA | InitiateCheckout | 구독 버튼 클릭 |
| 결제 성공 | Purchase | 결제 완료 (금액 + 통화 포함) |
브라우저 Pixel만으로는 광고 차단기에 의해 전환이 누락될 수 있다. PostHog에서 서버사이드로도 전환을 보내면 이중 추적이 된다.
광고 성과를 보려면 URL 파라미터와 PostHog가 먼저 맞아야 한다.
판단 원칙:
tools.analytics == "posthog" 또는 analytics setup이 완료돼 있으면 PostHog 기준으로 진행/agnt:analytics-setup을 먼저 안내ToolSearch로 +agentic30 검색.
도구 발견 시:
connect_posthog_project를 사용할 수 있으면 PostHog 프로젝트 연결을 우선 안내도구가 없으면:
/agnt:analytics-setup으로 PostHog 이벤트와 UTM 저장 흐름부터 맞추라고 안내광고 세팅 전에 크리에이티브가 없거나 약하면, 먼저 에셋 초안 생성을 제안한다.
AskUserQuestion: "광고 에셋도 같이 만들까?"
A를 선택하면 아래 Pencil App 광고 에셋 초안 절차를 실행한다.
해석 원칙:
전업, 수익 0원, Codex 사용자, N번째 실패직업/상황/현재 대안에서 관심사 후보를 만들고, 직접 타겟팅 안 되는 부분은 카피로 필터링한다기본 추천 타겟 구성:
대한민국24-39전체한국어상세 타게팅 후보는 ICP 유형별로 고른다.
Software developerProgrammingWeb developmentSoftware engineeringArtificial intelligenceOpenAIChatGPTGitHubStartup companyEntrepreneurshipEntrepreneurshipStartup companySmall business ownersDigital marketingOnline advertisingProduct developmentSaaSE-commerceBusiness planProductivity, Time management, NotionFitness and wellness, Home exercise, Healthy dietJob hunting, Career development, Online learning선택 규칙:
project.icp나 선택된 ICP source를 보고 가장 가까운 archetype 1개를 먼저 고른다아래 순서로, 클릭할 UI 라벨을 한국어/영문 같이 적어 단계별로 안내한다.
+ 만들기 (+ Create) 클릭트래픽 (Traffic) 선택KR_Threads_ICP_Test_TrafficAdvantage campaign budget는 처음엔 끔다음 (Next)전환 위치 (Conversion location) = 웹사이트성과 목표 (Performance goal)는 가능하면 랜딩 페이지 조회수일일 예산 입력
10,000원전체배치 (Placements)에서 수동 배치 (Manual placements) 선택Threads 플랫폼의 Threads feed 체크다음으로 광고 (Ad) 단계 진입광고 설정 (Ad setup)에서 단일 이미지 또는 가장 단순한 피드형 광고 선택크리에이티브 미디어 (Creative media)에 비율별 이미지를 업로드한다
1200x628 또는 1080x566 (1.91:1, 가로)1080x1080 (1:1, 정사각형)1080x1350 (4:5, 세로 피드)1080x1920 (9:16, 스토리/릴스)기본 텍스트 (Primary text)는 가능하면 3-5개를 넣는다
헤드라인 (Headline) 입력설명 (Description) 입력 가능하면 짧게자세히 알아보기를 추천자세히 알아보기가입하기Threads feed, Instagram 탐색 홈, Stories/Reels 미리보기를 확인게시 (Publish)기본 문구(Primary text) 작성 규칙:
3-5개 넣어 테스트 여지를 만든다Agentic30 기준 예시:
만들 줄은 아는데 왜 안 팔릴까? Agentic30은 전업 1인 개발자를 위한 30일 PMF 검증 시스템입니다. AI 코파운더와 함께 첫 유저 반응과 첫 결제 신호까지 확인해보세요.혼자 만들다 멈추는 개발자를 위해 만들었습니다. 문제 정의, 랜딩 검증, 유입 확인, 첫 매출 신호까지 30일 안에 숫자로 점검하세요.코드는 되는데 유저가 없다면, 지금 필요한 건 기능 추가가 아니라 검증입니다. Agentic30에서 AI 코파운더와 함께 팔리는 문제부터 찾으세요.전업 1인 개발자에게 30일은 저축 잔고입니다. 감으로 만들지 말고, 유저 100명과 첫 매출 신호를 목표로 실제 반응을 확인해보세요.온라인 강의가 아니라 실행 시스템입니다. AI 코파운더, 멘토, 커뮤니티와 함께 혼자 삽질하지 않고 30일 안에 PMF를 검증하세요.Tracking)광고 단계 하단의 추적 (Tracking) 섹션에서 아래를 설정한다.
웹사이트 이벤트는 현재 광고 계정의 기본 전환 데이터 세트 또는 픽셀을 유지URL 매개변수 (URL parameters)를 연다canonical UTM 템플릿을 넣는다권장 템플릿:
utm_source=meta&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content={{site_source_name}}__{{placement}}__{{ad.name}}&meta_campaign_id={{campaign.id}}&meta_adset_id={{adset.id}}&meta_ad_id={{ad.id}}
권장 이유:
utm_source: meta로 고정
facebook, instagram, threads로 source를 쪼개면 리포트가 흩어진다utm_medium: paid-social로 고정
social과 분리된다utm_campaign: 사람이 읽을 수 있는 캠페인 이름
utm_content: site source + placement + 광고 변형을 담는다
th__threads_stream__pain-v1 같은 값이 된다meta_*_id: 이름 변경이나 운영 중 꼬임이 생겼을 때 디버깅용 anchor가 된다추가 권장:
kr-threads-pmf-sprint-apr25pain-v1, outcome-v1, transformation-v1가능하면 피해야 할 것:
utm_campaign=23849... 같은 숫자 ID만 사용utm_source=facebook / instagram / threads를 뒤섞어서 source 분절utm_content자동 추가 관련 주의:
utm_source / utm_medium / utm_campaign / utm_content에 가장 안정적으로 맞춰져 있다Meta UI에서 dynamic parameter가 지원되면 아래 원칙으로 쓴다.
우선순위
utm_campaign, utm_content에 넣는다지원되는 핵심 dynamic parameters:
{{campaign.id}}{{adset.id}}{{ad.id}}{{campaign.name}}{{adset.name}}{{ad.name}}{{placement}}{{site_source_name}}권장 매핑:
campaign source) → metacampaign medium) → paid-socialcampaign name) → {{campaign.name}}campaign content) → {{site_source_name}}__{{placement}}__{{ad.name}}Threads에서 특히 useful:
{{placement}} → 보통 threads_stream{{site_source_name}} → th즉 Threads 광고의 utm_content 예시는:
th__threads_stream__pain-v1
보조 파라미터가 필요하면 아래를 추가할 수 있다:
&meta_campaign_id={{campaign.id}}&meta_adset_id={{adset.id}}&meta_ad_id={{ad.id}}&meta_site={{site_source_name}}&meta_placement={{placement}}
하지만 현재 agnt + PostHog 기본 스택에서는:
utm_sourceutm_mediumutm_campaignutm_content이 4개가 가장 안정적으로 저장/분석된다.
즉, 다이나믹 값은 우선 utm_campaign과 utm_content 안에 녹이고, ID는 보조 파라미터로 함께 붙여라.
이름 기반 매개변수 주의:
{{campaign.name}}, {{adset.name}}, {{ad.name}}는 광고가 처음 게재될 때의 이름을 참조한다현재 코드베이스 기준:
utm_source, utm_medium, utm_campaign, utm_content를 PostHog에 실어 보낸다utm_source, utm_medium, utm_campaign를 쿠키로 저장한다utm_content까지 저장한다그래서 Meta 광고용 기본값은 아래가 가장 안전하다:
utm_source=meta
utm_medium=paid-social
utm_campaign={{campaign.name}}
utm_content={{site_source_name}}__{{placement}}__{{ad.name}}
Threads placement만 테스트할 때:
utm_source=meta&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content=th__threads_stream__{{ad.name}}
Meta 전체 placement를 같이 돌릴 때:
utm_source=meta&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content={{site_source_name}}__{{placement}}__{{ad.name}}
광고 관리자에 그대로 넣는 완성형 권장안:
utm_source=meta&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content={{site_source_name}}__{{placement}}__{{ad.name}}&meta_campaign_id={{campaign.id}}&meta_adset_id={{adset.id}}&meta_ad_id={{ad.id}}
identity.mode == "synced"면:
ToolSearch로 +agentic30 검색connect_posthog_project를 먼저 안내create_utm_link보다 Ads Manager의 URL parameters 필드를 우선 사용
추가 안내:
utm_campaign, utm_content 기준으로 Meta 광고를 비교utm_source=meta, 매체 수준은 utm_medium=paid-social로 묶는다광고 문구 첫 줄로 Anti-ICP를 걸러야 한다고 안내한다.
예시 첫 줄:
퇴사 후 전업인데 아직 첫 매출이 없나요?1인 샵을 운영하는데 광고 효율이 계속 안 맞는다면매일 운동 계획은 세우는데 3일 이상 못 가는 사람용경고:
문제 / 결과 / 증거가 먼저 보여야 한다전환형 카피 원칙:
만들다, 성장, 기회 같은 추상어보다 첫 유저, 첫 예약, 첫 결제, 검증 같은 결과어를 우선한다이제는 판다처럼 발화 주체가 모호한 표현보다 이제는 팔린다처럼 결과가 바로 읽히는 표현을 우선한다SPEC, UTM, 배포, 검증 같은 내부 작업 단어를 이미지 헤드라인에 그대로 올리지 않는다30일, 100명첫 매출 5,000원처럼 제품 가치를 싸 보이게 할 수 있는 작은 금액이미지 카피 기본 구조:
기본 필드별 역할:
Primary text: 배경 설명 + 대상 필터Headline: 클릭 이유를 한 줄로 압축Description: 선택 사항이며, 반복 설명이면 생략 가능사용자가 막힐 때는 아래 분기로 답한다.
트래픽인지 확인단일 이미지처럼 단순하게 변경수동 배치로 다시 진입Audiences 라이브러리야. 뒤로 가서 캠페인 생성 흐름으로 돌아가."라고 말한다지원되지 않는 화면 비율이 뜰 때Instagram 탐색 홈 placement 비율 조건을 만족하지 않는다는 뜻이다1080x1350 (4:5) 또는 1080x1920 (9:16) 이미지를 추가 업로드1:1이나 1.91:1만으로는 일부 Instagram placement가 빠질 수 있다1.91:1 + 1:1 + 4:5 + 9:16 세트를 권장한다최종 출력은 아래 순서를 유지한다.
사용자가 지금 이 화면에서 뭘 눌러?라고 물으면 긴 설명 대신 바로 다음 클릭 1-3개만 말한다.
이 단계는 Pencil MCP가 사용 가능할 때 실행한다.
Pencil MCP가 없거나 Pencil.app이 설치/실행되지 않은 것 같으면:
Pencil.app이 없으면 https://www.pencil.dev/ 에서 설치/실행해.라고 안내한다목표:
1200x630 (1.91:1) 3장1080x1080(1:1), 1080x1350(4:5), 1080x1920(9:16) 파생본까지 만든다pain / outcome / transformation1.91:1 / 1:1 / 4:5 / 9:16아래를 먼저 정리한다:
스타일 source 결정:
docs/design-system.md가 있으면 그 문서의 Color System, Typography, Asset Rules를 먼저 사용apps/web/public/images/og-image.png와 assets/meta-ad-*.png를 레퍼런스 예시로 사용광고 초안은 항상 3개 각도로 만든다:
pain
outcome
transformation
각도 선택 규칙:
카피 선택 우선순위:
내 얘기다라고 느끼는 문제 문장권장 예시:
만들 줄은 아는데, 왜 안 팔릴까?30일 안에 첫 유저 반응까지혼자 빌드하던 개발자, 이제는 팔린다비권장 예시:
이번엔 끝까지성장의 시작SPEC → 배포 → 검증이유:
기본 톤:
하지만 다음은 제품별로 조정한다:
docs/design-system.md가 있으면 그 문서의 금지 규칙을 우선 적용get_editor_state(include_schema: true)로 현재 문서 확인pain / outcome / transformation 프레임이 있으면 그 문서를 source of truth로 사용.pen 문서를 열거나 현재 문서를 사용get_screenshot 또는 로컬 레퍼런스 이미지 확인batch_design으로 1200x630 프레임 3개 생성 또는 기존 3개 수정get_screenshot으로 프레임별 검수1080x1080, 1080x1350, 1080x1920 파생본을 만든다get_screenshot으로 1:1 / 4:5 / 9:16까지 다시 검수export_nodes로 비율별 PNG 추출비율별 기본 원칙:
1200x630: Threads feed, 링크 공유형 기준의 기본 마스터1080x1080: 정사각형 placement 및 보조 피드 자산1080x1350: 모바일 피드에서 우선순위가 높다1080x1920: Story/Reels 계열 placement 대응1.91:1 + 1:1 + 4:5 + 9:16 모두 준비한다세로 비율 주의:
정사각형 비율 주의:
pain과 outcome은 정사각형에서 하단 밀도가 약해지기 쉬우니 장식 면을 한 번 더 점검한다기본 출력:
{AGNT_DIR}/ads/meta-ad-pain.png{AGNT_DIR}/ads/meta-ad-outcome.png{AGNT_DIR}/ads/meta-ad-transformation.png{AGNT_DIR}/ads/1x1/meta-ad-pain.png{AGNT_DIR}/ads/1x1/meta-ad-outcome.png{AGNT_DIR}/ads/1x1/meta-ad-transformation.png{AGNT_DIR}/ads/4x5/meta-ad-pain.png{AGNT_DIR}/ads/4x5/meta-ad-outcome.png{AGNT_DIR}/ads/4x5/meta-ad-transformation.png{AGNT_DIR}/ads/9x16/meta-ad-pain.png{AGNT_DIR}/ads/9x16/meta-ad-outcome.png{AGNT_DIR}/ads/9x16/meta-ad-transformation.png프로젝트 구조상 다른 위치가 더 자연스러우면 다음도 허용:
tmp/ 또는 artifacts/assets/는 샘플 보관용이지 사용자 산출물 기본 경로는 아님1:1, 4:5, 9:16은 각각 별도 스크린샷 검수를 거친다문제형 / 결과형 / 증거형 중 무엇이 가장 강한지 비교 가능한 상태로 남긴다Pencil MCP가 없거나 Pencil editor가 연결되지 않으면:
Pencil.app이 없으면 https://www.pencil.dev/ 에서 설치/실행해.라고 먼저 안내{AGNT_DIR}/meta-ads-setup.md Write.
# Meta Ads Setup
생성일: {날짜}
채널: Threads
목표: 트래픽
## 추천 타겟
{ICP source / archetype / 위치 / 연령 / 언어 / 상세 타게팅}
## Ads Manager 세팅 순서
{캠페인 -> 광고 세트 -> 광고 절차}
## Tracking
{utm_source / utm_medium / utm_campaign / utm_content 권장값}
## Pencil 에셋 초안
{pain / outcome / transformation 카피와 출력 파일 경로}
## 문제 해결
{Threads 미노출 / Audiences 화면 / 관심사 부족 대응}
state.json 업데이트:
artifacts.meta_ads_setup_defined = trueartifacts.meta_ads_assets_drafted = true (Pencil 초안 생성 시)meta.last_action = "meta-ads-setup"meta.total_actions++ToolSearch로 +agentic30 검색.
도구 발견 시:
submit_practice 호출: quest_id = "wf-meta-ads-setup"도구 없으면 (identity.mode != "synced" 또는 ToolSearch 실패):
sync.pending_events에 추가 (50건 초과 시 가장 오래된 이벤트 제거):
{ "type": "submit_practice", "args": { "quest_id": "wf-meta-ads-setup" }, "created_at": "<now()>" }
Audiences 화면이 아니라 광고 세트 단계에서 바로 세팅하는 흐름을 기본으로 안내placement라는 점을 분명히 해docs/ICP.md가 있어도 그 문서가 현재 사용자의 제품 ICP인지 먼저 검증해docs/design-system.md가 있으면 Meta 광고 에셋은 그 문서의 Asset Rules를 우선 따라utm_source, utm_medium, utm_campaign, utm_content 4개를 우선 사용한다utm_campaign, utm_content 안에 녹이고, 숫자 ID는 보조 파라미터로만 사용한다utm_source=meta, utm_medium=paid-social를 기본값으로 권장한다트래픽 + Threads feed only + 단일 이미지 + 소액 일예산으로 단순화pain / outcome / transformation 3안으로 시작해 비교 가능하게 만든다1.91:1 + 1:1 + 4:5 + 9:16까지 함께 만들어 placement 대응 범위를 넓힌다SPEC, UTM, 배포)는 광고 이미지 안 헤드라인 기본값으로 쓰지 않는다Primary text는 1개만 넣지 말고 가능하면 3-5개 넣어 Meta가 자동 최적화할 여지를 남긴다https://www.pencil.dev/로 먼저 안내하고, 그 전에는 텍스트 초안까지만 진행한다tools
도구 비교 가이드 — 결제, 마케팅, 분석, 광고 도구. 도구 비교, 결제 솔루션 선택 시 사용.
testing
구독 전략 설계 — niche, paywall, pricing, trial, 플랫폼, 웹 병행 전략을 정한다. 앱/구독형 제품 monetization 설계 시 사용.
tools
현재 상태 대시보드 — 진행 현황, 시그널, 도구, 리더보드. 진행 상태 확인 시 사용.
data-ai
Agentic30 온보딩 + 상태 초기화. 시작하기, 프로젝트 시작 시 사용.