당근마켓 지역 광고 분석 스크래퍼
Pricing
from $0.50 / 1,000 results
당근마켓 지역 광고 분석 스크래퍼
지역/키워드 기준으로 당근마켓 동네업체 및 비즈 소식글을 수집하고, 문의/관심/조회/단골 수를 파싱해 우리 광고 vs 경쟁사 광고를 비교 분석합니다.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
Sun Kwak
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
1
Monthly active users
2 months ago
Last modified
Categories
Security
Limited permissionsShare
당근마켓 지역 광고 분석 스크래퍼 (daangn-ad-scraper)
당근마켓 특정 지역 + 키워드 기준으로 동네업체 및 비즈 소식글(광고)을 수집하여, 대표 이미지 URL / 문의 수 / 관심(좋아요) 수 / 조회 수 / 단골(팔로워) 수 / 댓글 수를 파싱하고 우리 업체 vs 경쟁 업체 광고 성과를 자동으로 비교 분석하는 Apify Actor입니다.
이런 분께 유용합니다
- 당근 비즈니스 광고를 운영 중이며, 우리 지역 경쟁 업체들의 광고 반응을 알고 싶은 소상공인/마케터
- 특정 업종(헬스, 필라테스, 미용 등)의 지역 내 광고 트렌드를 파악하고 싶은 경우
🔑 필수 입력값: locationSlug 찾는 방법
이 Actor는 동네명-regionId 형식의 지역 코드(locationSlug) 를 입력받아야 합니다. 현재 당근 검색 URL에는 지역 ID가 표시되지 않으므로, 아래의 당근 지역 검색 API로 확인하는 방법이 가장 간단합니다. 로그인이나 개발자도구는 필요하지 않습니다.
- 아래 URL의 마지막 지역명을 원하는 동네로 바꿔 브라우저에서 엽니다.
https://www.daangn.com/kr/api/v1/regions/keyword?keyword=동천동
- JSON 응답의
locations에서name1(시/도),name2(시/군/구),name3(동)을 확인해 원하는 행정구역을 고릅니다. 같은 이름의 동이 여러 지역에 있을 수 있으므로 이름만 보고 첫 결과를 사용하지 마세요. - 선택한 항목의
name과id를 하이픈(-)으로 연결합니다. 예를 들어 용인시 수지구 동천동의 응답 항목이 다음과 같다면:
최종{"id": 1694,"name1": "경기도","name2": "용인시 수지구","name3": "동천동","name": "동천동"}locationSlug는 다음과 같습니다.동천동-1694
예를 들어 keyword=배곧동 응답은 경기도 시흥시 배곧동의 id를 4245로 반환하므로 배곧동-4245를 입력합니다. ID가 맞는지 추가로 확인하려면 https://www.daangn.com/kr/api/v1/regions/4245/center-coord를 열어 해당 지역의 중심 좌표가 반환되는지 확인할 수 있습니다.
💡 이 절차는 2026-09-21 현재 당근 웹 UI가 지역 선택에 사용하는
/kr/api/v1/regions/keywordAPI로 검증했습니다. 모바일 앱이 아니라 Safari, Chrome 등 일반 브라우저에서 URL을 여세요.
Input 파라미터
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
locationSlug | string | ✅ | 위에서 찾은 지역 코드 (예: 동천동-1694) |
searchKeywords | string[] | ✅ | 검색할 업종/키워드 배열 (예: ["헬스", "필라테스", "여성전용"]) |
myBusinessNames | string[] | ❌ | 우리 업체명 (경쟁사와 구분해 isMine: true로 표시) |
maxBusinessesPerKeyword | integer | ❌ | 키워드별 검색 결과에서 실제 PROFILE 수집 대상으로 사용할 상위 업체 수. 기본값 및 현재 Task 값은 20, 허용 범위는 1~100 |
maxPostsPerBusiness | integer | ❌ | 업체당 최대 수집 게시글 수. 화면의 최신 게시글 링크뿐 아니라 Remix SSR 데이터의 전체 게시글을 포함해 최신순으로 적용 (기본값 존재) |
proxyConfiguration | object | ❌ | Apify 프록시 설정 |
출력 데이터
- business_post 타입 레코드: 개별 광고 게시글의 문의/관심/조회/댓글/단골 수
thumbnailUrl: 광고 게시글의 대표 이미지 URL.og:image가 실제 게시글 이미지인지 확인한 뒤 사용하고, 필요하면 페이지의 Remix SSR 이미지 배열 첫 항목으로 보완합니다. 게시글 이미지가 없으면null입니다.keywordMatches: 이 업체(게시글)가 검색된 모든 키워드와 각 키워드에서의 노출 순위 배열. 한 업체가 여러 키워드로 동시에 검색될 경우(예: "여성전용"에서 4위, "헬스"에서 6위) 정보 손실 없이 전부 기록됩니다."keywordMatches": [{ "keyword": "여성전용", "searchRank": 4 },{ "keyword": "헬스", "searchRank": 6 }]keywordMatched/searchRank: 하위 호환용 필드로,keywordMatches중 순위가 가장 좋은(숫자가 작은) 키워드 하나만 남긴 값입니다. 여러 키워드 분석이 필요하면keywordMatches를 사용하세요.postedAt: 광고 게시글의 실제 작성 시각(ISO8601). 화면에 보이는 "N일 전" 상대 표시가 아닌, 페이지에 내장된 정확한 값입니다. 게시 시점이 다른 광고끼리 누적 지표(좋아요/조회 등)를 그대로 비교하면 왜곡되므로, 게시 경과일 기준 일평균 비교나 스크래핑 시점 간 증감(delta) 분석에 활용하세요.
- summary 타입 레코드: 우리 광고(
myAds) vs 경쟁사 광고(competitorAds)의 평균 지표 비교
사용법 (로컬 개발)
npm installnpm start
Input 예시는 .actor/input_schema.json 참고. 로컬 실행 시 storage/key_value_stores/default/INPUT.json 파일에 입력값을 넣어서 테스트합니다.
Apify 클라우드 배포
apify loginapify push
주의사항
- 당근마켓 이용약관 및 robots.txt 준수 확인 필요
- 검색은
locationSlug의 지역 ID와 쿠키를 명시한 당근search/local-profileroute를 사용합니다. Remix SSR 결과가 비어 있으면 route가 제공한 viewport로local-profiles/searchAPI를 호출하며, 이전 JSON-LD(ItemList) 구조도 하위 호환으로 지원합니다 (외부 검색엔진 경유 없음). - 검색 API가 반환한 전체 결과 수(
total)는 실행 로그의전체 N건으로 표시됩니다. 실제 PROFILE 수집 대상은 각 키워드 결과에result.items.slice(0, maxBusinessesPerKeyword)를 적용한 상위 항목뿐이며, 기본값 및 현재 Task 값20이면 키워드별 상위 20개 업체만 수집합니다. - 일부 키워드의 요청이나 구조 파싱이 실패하면 해당 키워드만 warning 후 건너뜁니다. 정상 파싱된 0건은 성공으로 처리하지만, 모든 키워드가 기술적으로 실패하면 데이터 신뢰성을 위해 Run을 실패 처리합니다.
- 개인 식별 정보(채팅 문의 내용, 연락처 등)는 수집하지 않음 — 공개된 집계 수치(문의/관심/조회/단골 수)만 수집
- 검색 결과는 최대 300건까지 노출되는 것으로 확인됨 (매우 인기 키워드의 경우 일부 누락 가능)