뒷광고 찾기 API, 게시물 30개 협찬 확률 · 1크레딧
뒷광고 찾기 API로 TikTok 게시물 30개의 협찬 확률과 공개 표시 여부를 1크레딧에 받았어요. 잘못 읽은 한국어 사례까지 응답 그대로 보여 드려요.
뒷광고가 의심되는 협찬 광고 게시물을 검색 결과에서 바로 골라낼 수 있어요. SocialCrawl의 TikTok 검색에 label=sponsored,intent,niche를 붙이면 게시물마다 협찬 확률 p, 공개 표시 여부, 홍보 계정이 같이 와요. 협찬 스킨케어로 검색한 30개가 1크레딧이었어요(2026년 10월 2일 한국 시간 호출).
답은 확률이고 위반 판정은 아니에요. 사람이 확인할 후보를 좁히는 값이에요. 한국어 표기를 어떻게 읽었고 어디서 틀렸는지도 실제 응답으로 보여 드려요.
뒷광고, 게시물 목록에서 바로 찾는 법
검색 한 번이면 돼요. 새로 가져온 응답(x-cache: MISS)이고 30행 모두 첫 응답부터 라벨이 붙어 왔어요.
curl -G -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/tiktok/search" \
--data-urlencode "query=협찬 스킨케어" \
--data-urlencode "label=sponsored,intent,niche" \
--data-urlencode "label_evidence=1"label=을 빼고 부른 첫 응답(collagen powder supplement 검색)은 30행 중 라벨이 붙은 행이 0행이었어요. 그래서 예제는 모두 label=을 직접 적어요. 위 호출의 data.labels는 이래요.
{
"presets": ["sponsored", "intent", "niche"],
"rows": 30,
"labelled": 30,
"cached": 0,
"unjudged": 0,
"extra_credits": 0,
"mode": "requested",
"status": "complete",
"pending": 0
}extra_credits가 0이라 가격은 라벨 없는 검색과 같은 1크레딧이에요. 행 세 개를 골랐고, 계정명은 가렸어요.
[
{
"post": {
"url": "https://www.tiktok.com/@m***/video/769043…",
"content": { "text": "세안 후 피부 당길 때, 요즘 제일 먼저 찾는 미스트💦✨ … N2U 하이로 배리어 글로우 미스트✨ #협찬 #미스트 #수분미스트 …" }
},
"computed": {
"labels": { "sponsored": { "p": 0.97, "disclosed": true, "undisclosed": false, "brand": null } },
"labels_evidence": { "sponsored": { "quote": "세안 후 피부 당길 때, … #협찬 #미스트 #수분미스트 …", "sentence_index": 0 } }
}
},
{
"post": {
"url": "https://www.tiktok.com/@h***/video/769088…",
"content": { "text": "추석선물로 전달받은 \"AWEOP 에이옵 선물세트🎁\" 감사합니다. … #AWEOP #에이옵스킨케어 협찬👍 대표님 번창하세요📢 @aweop_official" }
},
"computed": {
"labels": { "sponsored": { "p": 0.87, "disclosed": true, "undisclosed": false, "brand": "@aweop_official" } },
"labels_evidence": { "sponsored": { "quote": "#AWEOP #에이옵스킨케어 협찬👍 대표님 번창하세요📢 @aweop_official", "sentence_index": 2 } }
}
},
{
"post": {
"url": "https://www.tiktok.com/@.***/video/759960…",
"content": { "text": "신청 감사합니다💞 #미백템추천 #브링그린 #다이소 #스킨케어 #협찬환영" }
},
"computed": {
"labels": { "sponsored": { "p": 0.49, "disclosed": false, "undisclosed": false, "brand": null } }
}
}
]첫 행은 #협찬이 붙어 있고 p가 0.97이에요. 둘째 행은 @멘션이 있어서 brand에 그 계정이 와요. 셋째 행의 #협찬환영은 협찬을 받겠다는 뜻이지 광고 표시가 아니라서 disclosed가 false예요. sponsored: true 같은 불리언 필드는 없어요. 대신 값 네 개가 와요.
p: 협찬일 확률(0~1)이에요.disclosed: 캡션에서 공개 표시를 규칙으로 찾으면 true예요.undisclosed:p가 0.7 이상인데 공개 표시를 못 찾으면 true예요.brand: 캡션 속 @멘션에서 가져온 홍보 계정이에요. 멘션 없이 이름만 적으면 null이에요.
한국어 캡션은 26개였어요(한글 3자 이상으로 저희가 센 값이에요). 그중 18개가 p 0.5 이상, 17개가 disclosed: true, 1개가 undisclosed: true였어요. 0.5는 저희가 정한 기준선이에요. API 쪽 기준은 undisclosed의 0.7이고, brand는 p가 0.5 이상일 때만 채워요. 검색어에 협찬이 들어 있어 공개 표시 쪽으로 기운 표본이에요. label_evidence=1은 같은 가격에 근거 문장을 붙여 주지만, 표기가 있는데도 근거가 null인 행이 여럿 있었어요. 엔드포인트는 TikTok 영상 검색 API에 정리했어요.
뒷광고는 불법인가요? 표시광고법과 공정위 심사지침
뒷광고는 광고 대가를 받고도 광고라는 걸 밝히지 않은 게시물을 부르는 말이에요. 법률 용어는 아니에요. 공정거래위원회는 2020년 6월 「추천·보증 등에 관한 표시·광고 심사지침」 개정안을 확정해 2020년 9월 1일부터 시행했어요(정책브리핑). 광고주와 경제적 이해관계가 있으면 공개하라는 내용이에요. 시행 직전인 2020년 8월에는 유튜버 뒷광고 논란이 크게 번졌어요(서울신문). 표시 문구로는 '광고', '유료광고', '협찬' 같은 표현이 예로 나와요. 지금 기준으로 동영상은 제목이나 영상 안에, 글 중심 매체는 제목이나 첫 부분에 넣어요(생활법령정보). 글 쪽의 '제목이나 첫 부분'은 2024년 12월 개정 지침에 따른 거예요(경향신문). 제재 수위는 현행 법령에서 직접 확인해 주세요. 공정위의 점검 결과는 이래요.
| 발표 | 의심 게시물 | 상위 매체 | 문제 유형 |
|---|---|---|---|
| 2022년 2월 | 17,020건 | 인스타그램 9,538 / 네이버 블로그 7,383 | 위치 부적절 38.8%, 미표시 35.3%, 표현 부적절 14.7% |
| 2025년 3월 (2024년분) | 22,011건 | 인스타그램 10,195 / 네이버 블로그 9,423 | 위치 부적절 39.4%, 미표시 26.5%, 표현 부적절 17.3% |
출처는 공정위 보도자료(2025-03-17), ZDNet, 파이낸셜뉴스(2022)예요. 두 발표가 같은 방식으로 점검했는지 확인하지 못해서 추세로 읽지 않아요. 이 API는 확인할 대상을 좁히는 데만 쓰고, 인스타그램과 네이버 블로그는 이번에 돌려 보지 못했어요.
협찬·유료광고 포함 표기는 어떻게 읽히고, 어디서 틀리나요
한국어 캡션 26개에서 표기를 직접 세어 봤어요. 표기가 둘인 캡션은 두 줄에 모두 들어가요.
| 캡션 속 표기 | 행 수 | disclosed: true | undisclosed: true | p 범위 |
|---|---|---|---|---|
| 협찬 | 15 | 12 | 0 | 0.1 ~ 0.98 |
| 제품 제공 (제품제공) | 4 | 4 | 0 | 0.52 ~ 0.97 |
| 유료광고 포함 | 0 | 0 | 0 | 해당 행 없음 |
| 광고 | 3 | 3 | 0 | 0.07 ~ 0.61 |
| 협찬환영 | 3 | 0 | 0 | 0.1 ~ 0.49 |
협찬 15행에는 협찬환영 3행이 들어 있어요. 이 3행은 disclosed: false, p는 0.49, 0.13, 0.1이에요. 나머지 12행은 모두 true, p는 0.61에서 0.98이에요. 유료광고 포함은 규칙이 찾는 광고가 들어 있어서 규칙상 disclosed: true가 돼요. 다만 이 페이지에는 안 나와서 실제 응답으로는 확인하지 못했어요. 플랫폼의 유료광고 포함 토글은 캡션만 읽는 이 데이터에 안 보여요.
표기와 p가 어긋난 행도 있었어요.
#광고로 시작하는데p가 0.39예요.disclosed는 true, 근거는null이에요.p >= 0.5하나만 보면 놓쳐요.#내돈내산 광고 아예 없이로 시작하는 행은disclosed: true인데p가 0.07이에요. 광고가 없다는 문장을 표기로 읽었어요.p가 맞고disclosed가 틀렸어요.No광고, 협찬으로 오늘도 대리영업뜁니다는p0.61,disclosed: true예요. '광고 아님'과 '협찬'이 같이 있어서 사람도 한 번 더 읽어야 해요.#제품제공행 하나가p0.52에 근거null이에요. 나머지 세 행은 0.91~0.97이에요.- 표기가 없는 행도 있어요. 가격과 판매 채널을 알리는 캡션이
p0.72로undisclosed: true였어요. 한국어 행 중 하나뿐이고, 링크를 누르라는 캡션 두 행은 0.52와 0.67로 0.7에 못 미쳐서 false예요.
영어 검색(TikTok #ad skincare serum gifted)에서는 #giftedbyOlay가 있는데 undisclosed: true로 나온 행이 있었어요. #gifted를 단어 경계에서만 찾는 규칙 때문이고 같은 패턴이 여섯 행에서 반복됐어요. 아래는 그 행과 광고 아예 없이 행이에요.
[
{
"text": "You need to experience this for yourself 💜 @Olay Skin Care #giftedbyOlay #OlaySuperSerum …",
"sponsored": { "p": 0.96, "disclosed": false, "undisclosed": true, "brand": "@olay" }
},
{
"text": "#내돈내산 광고 아예 없이 N통 쓴 찐 추천템 소개합니다 …",
"sponsored": { "p": 0.07, "disclosed": true, "undisclosed": false, "brand": null },
"labels_evidence": { "sponsored": null }
}
]YouTube 영어 검색에서는 제목에 gifted가 들어간 'how to get paid brand deals & gifted PR as a small creator'도 disclosed: true인데 p가 0.05예요. 협찬 받는 법을 알려 주는 영상이에요. 그래서 p와 disclosed를 같이 보고 근거 문장은 사람이 확인해요. 영상 속 말로만 밝힌 협찬은 이 데이터에 안 보여요.
게시물마다 분야와 작성 의도까지 읽을 수 있나요
같은 호출에서 intent와 niche는 이렇게 왔어요. 첫 행은 앞의 #협찬 미스트 행이고, 둘째 행은 해시태그만 있는 #협찬환영 행이에요.
[
{
"intent": { "label": "promoting", "confidence": 0.81, "buyer": false, "seller": 0.27, "fits_offer": null, "urgency": 1.48 },
"niche": { "label": "beauty_skincare", "confidence": 1, "taxonomy": "sc-niche-v1" }
},
{
"intent": { "label": null, "confidence": 0.32, "buyer": false, "seller": 0.19, "fits_offer": null, "urgency": 0.43 },
"niche": { "label": null, "confidence": null, "taxonomy": "sc-niche-v1" }
}
]intent는 글쓴이가 무엇을 하려는지, niche는 어떤 분야 이야기인지예요. 값은 정해진 목록에서만 나와요.
niche (taxonomy sc-niche-v1: 주제 분야 33개 + 해당 없음 값 2개)
beauty_skincare, fashion_style, fitness_workout, health_wellness,
food_cooking, food_dining, travel, outdoors_adventure,
parenting_family, relationships_dating, pets_animals, home_interior,
gardening_plants, diy_crafts, stationery_journaling, art_design,
music, dance, film_tv, celebrities_fandom, gaming, comedy_memes,
sports, automotive, technology, business_career, finance_investing,
education_science, books_writing, news_politics, spirituality_religion,
self_improvement, shopping_deals
+ personal_no_niche, other
intent (7개)
asking_for_recommendation, comparing_options, switching_away,
complaining, promoting, news_or_discussion, other캡션이 너무 짧거나(가중 12자 미만) 확신이 0.6 미만이면 niche가 null이에요. 둘째 행이 그랬어요. intent는 확신이 0.5 미만이면 null이고, 이 호출에서는 30행 중 4행(확신 0.27~0.47)이 그랬어요. 둘째 행의 확신은 0.32예요.
같은 필드가 TikTok, X, YouTube, Reddit 검색에서 같은 이름으로 와요. 이 niche는 공정위의 업종 분류(보건·위생용품, 외식업 등)와 다른 체계예요.
어그로와 레이지베이트 게시물은 어떻게 거르나요
label=quality를 더하면 computed.labels.quality에 값 다섯 개가 붙어요.
fact_density: 확인할 수 있는 구체 정보의 양(0~3 정수)이에요.engagement_bait: 팔로우, 좋아요, 친구 태그를 요구하는 참여 유도 점수(0~1)예요.rage_bait: 분노를 노리는 글의 점수(0~1)예요.secondhand와post_aim도 와요.
우리말 '어그로'와 딱 같은 개념은 아니고, 국내에서 이 둘을 직접 다루는 법령이나 공정위 통계는 찾지 못했어요. label=quality는 TikTok 30행에 3크레딧(기본 1 + 추가 2)이었어요. 새로 판단한 행이 25개까지면 1크레딧, 26~50개면 2크레딧이 더 붙어요.
경품 이벤트 글로 exclude=engagement_bait를 시험했어요.
curl -G -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/twitter/search/tweets" \
--data-urlencode "query=giveaway RT follow tag a friend to win" \
--data-urlencode "sort=top" \
--data-urlencode "label=sponsored,intent,niche,quality" \
--data-urlencode "exclude=engagement_bait"2크레딧이었고, 20행 중 2행만 남았어요. 제외된 id는 data.labels에 있어요(dropped_ids는 18개 중 3개만 적었어요).
{
"presets": ["sponsored", "intent", "niche", "quality"],
"rows": 20,
"labelled": 20,
"cached": 8,
"dropped": 18,
"dropped_ids": ["210569…", "210569…", "210567…"],
"extra_credits": 1,
"mode": "requested",
"status": "complete"
}label=quality만 붙이고 exclude 없이 부른 호출과도 견줬어요. TikTok giveaway follow like tag 3 friends to win은 판단된 29행 중 26행이 0.8 이상이었고, exclude를 붙이면 30행에서 3행이 남았어요. 둘 다 3크레딧이었어요. X는 20행 중 19행이 0.8 이상이었고, exclude를 붙이면 2행이 남았어요. 둘 다 2크레딧이었어요.
추가 비용은 없고 기준은 0.8 이상이에요. label 없이 exclude만 보내면 HTTP 400에 0크레딧이에요. 빠진 행의 id는 data.labels.dropped_ids에 있고, 최상위 data.dropped는 0으로 남아서 여기를 읽으면 놓쳐요. exclude가 받는 값은 engagement_bait 하나뿐이라 rage_bait는 점수를 보고 직접 걸러요.
이 비교는 같은 행끼리가 아니에요. 호출마다 페이지를 따로 가져와서 TikTok은 30개 중 20개, X는 20개 중 13개만 같은 id였어요. 기준선 근처 점수도 움직여서 TikTok 게시물 769143…은 engagement_bait가 0.87에서 0.77로 바뀌어 exclude 호출에서 남았어요.
레이지베이트는 흔하지 않았어요. Reddit 25행 중 rage_bait가 0.5 이상인 행은 1개(0.70, post_aim: "provoke")였고, 영어 스킨케어 TikTok 30행은 최대 0.09였어요.
어떻게 시작하고, 비용은 얼마나 드나요
API 키 하나로 TikTok, X, YouTube, Reddit 검색에 같은 라벨을 붙일 수 있어요. x-api-key 발급과 호출 방법은 문서에 있어요. 가격은 dry_run=1로 먼저 확인해요. 0크레딧이고 아무것도 가져오지 않아요. 그다음 위 협찬 스킨케어 호출(1크레딧)에서 query만 관심 있는 한국어 검색어로 바꾸고 label_evidence=1로 근거 문장을 봐요.
curl -G -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/tiktok/search" \
--data-urlencode "query=#ad skincare serum gifted" \
--data-urlencode "label=quality" \
--data-urlencode "dry_run=1"{ "data": { "estimate": { "rows_expected": 120, "rows_cached": 0, "label_credits_min": 0, "label_credits_max": 5, "base_credits": 1 } }, "credits_used": 0 }rows_expected: 120은 TikTok 검색 한 페이지의 상한이에요. 같은 요청의 실제 30행 호출은 합쳐서 3크레딧이었어요. 코드 한 줄 쓰기 전에 비주얼 익스플로러에서 같은 경로를 먼저 열어 볼 수 있어요. 내 키로 부르면 행은 달라지고 필드 이름은 같아요(확인일 2026-10-02).
이 글의 호출은 2026년 10월 2일 한국 시간(2026-10-01 16:35 ~ 16:51 GMT)에 TikTok, X, YouTube, Reddit 검색으로 했고 쿼리는 손으로 골랐어요. 응답 credits_used 합계는 33이에요. 계속 돌려 보려면 소셜 리스닝 글이 있어요.
자주 묻는 질문
뒷광고는 어떻게 구별하나요?
사람이 공정위 지침(경제적 이해관계 공개, 표시 위치)을 기준으로 판단하고, API는 볼 후보를 좁혀요. p, disclosed, undisclosed, 근거 문장이 와요. undisclosed: true는 위반 판정이 아니고, 영어 검색에서는 #giftedbyOlay가 붙은 행도 true로 나왔어요.
협찬 게시물을 한꺼번에 찾을 수 있나요?
한 번에 한 페이지씩(이번 호출은 20~30행) 행마다 확률이 와요. 전수 조사는 아니에요.
한국어 협찬 표기도 읽나요?
#협찬, #제품제공, #광고는 disclosed: true로, #협찬환영은 false로 읽었어요. 다만 #광고 행의 p가 0.39였고 광고 아예 없이는 true로 잘못 읽었어요. 유료광고 포함은 규칙상 공개 표시로 잡히지만 이번 표본에는 없어서 실제 응답으로는 확인하지 못했어요.
유료광고 포함 표시가 없어도 협찬으로 잡히나요?
내용 때문에 p가 올라가는 행이 있어요. 가격과 판매 채널을 알리는 한국어 캡션이 0.72로 undisclosed: true였어요. 플랫폼의 유료광고 포함 토글은 이 데이터에 안 보여요.
어그로·레이지베이트 게시물을 빼려면 어떻게 하나요?
label=quality와 exclude=engagement_bait를 같이 보내요. engagement_bait가 0.8 이상인 행이 빠지고 추가 비용은 없어요. 레이지베이트는 rage_bait 점수를 보고 직접 걸러요.
협찬 여부 확인에 크레딧이 드나요?
기본 라벨 세 개는 TikTok 30행에 1크레딧이었고 label=quality는 3크레딧이었어요. label_evidence=1은 추가 요금이 없고 dry_run=1은 0크레딧이에요. 틀리게 읽은 한국어 행을 찾으면 request_id와 함께 알려 주세요.
함께 읽으면 좋은 글
질문·구매의도까지 잡는 텍스트 감정분석 API
틱톡·인스타그램·유튜브·X 댓글 API가 감성·질문·구매의도·불만 라벨을 같은 요금으로 돌려줘요. 텍스트 감정분석 API를 따로 붙이지 않아도 되는지 한국어 댓글로 직접 확인했어요.
경쟁사 분석, 갈아탄 고객의 글부터 읽어요
경쟁사 분석은 언급량 세기보다 갈아탔다고 직접 쓴 글 읽기로 시작해요. 원문, 이유, 링크가 붙어 오는 쿠팡 와우 해지와 SKT 번호이동 응답을 실제 호출 그대로 보여 드려요.
틱톡 유사 계정 찾기, API 호출 한 번으로 받기
틱톡 유사 계정 찾기는 API 호출 한 번이면 돼요. 시드 계정별로 달라지는 추천 목록을 실제 호출 결과로 보여 드리고, 틱톡 추천이 끊겼을 때의 대체 경로도 정리했어요.
