규정 검수 실행
캠페인 번호 없이 trial 가이드라인의 규정 검수(Meta 광고정책·약기법 등)를 비동기로 실행합니다.
규정 검수 실행
어드민 가이드라인 규정 검수(POST /ai/admin/regulation/{collabNo}/guideline/review)의 trial 판입니다. 캠페인 번호 대신 trialId 로 실행하며, 결과는 규정 검수 결과 조회로 폴링합니다.
검수는 비동기로 돌고 1회 약 30초~1분 걸립니다. 호출 즉시 결과가 IN_PROGRESS 로 기록됩니다.
HTTP 요청
POST /ai/guideline/trial/{trialId}/regulation/review?policyKey=metaAds
Content-Type: application/json인증 불필요 (permitAll).
Path Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
trialId | String | 예 | 세션 UUID |
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
policyKey | String | 아니오 | metaAds (기본) / yakkiho / tiktokAds. 정책마다 따로 호출합니다 |
Request Body (선택)
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
guideline | Object | 아니오 | 검수할 가이드라인 본문. 생략하면 생성 결과(data)를 검수합니다 |
contentHash | String | 아니오 | 프론트가 계산한 본문 해시. 서버는 검증 없이 결과에 저장하고 조회 응답 result.contentHash 로 돌려줍니다 |
trial 에는 편집 내용을 저장하는 API 가 없어, 화면에서 고친 내용은 서버에 남지 않습니다. 수정본을 검수하려면 편집 중인 본문을 guideline 에 담아 보내세요. 형식은 생성 결과(data)와 같습니다.
{
"contentHash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"guideline": {
"concept_one_liner": "...",
"shots": { "beginning": [], "middle": [], "ending": [] },
"required_appeal_points": ["..."],
"optional_appeal_points": ["..."],
"hashtags": ["..."]
}
}재검수 버튼 활성화 판단용입니다. 보낸 guideline 의 해시를 contentHash 로 함께 보내면, 조회 응답의 result.contentHash 와 현재 화면 본문의 해시를 비교해 "검수 이후 본문이 바뀌었는지" 알 수 있습니다. 해시는 저장할 때와 비교할 때 같은 함수로 계산해야 하므로 프론트가 계산합니다. guideline 을 생략하면 해시와 실제 검수 대상이 어긋날 수 있으니 둘은 함께 보내세요.
검수에 쓰이는 항목은 concept_one_liner, shots, required_appeal_points, optional_appeal_points, hashtags, caution_guide 입니다. 나머지 필드는 무시됩니다.
응답 (200 OK)
{
"status": 200,
"message": "규정 검수를 시작했습니다. 결과는 조회 API로 확인하세요.",
"data": {
"trialId": "45de0ba5-91f3-4184-96ef-c87ac939fabc",
"policyKey": "metaAds",
"status": "IN_PROGRESS"
}
}에러
| 상황 | 응답 |
|---|---|
존재하지 않는 trialId | 404 GUIDELINE_TRIAL_NOT_FOUND |
알 수 없는 policyKey | 400 REGULATION_POLICY_UNSUPPORTED (args.policyKey) |
생성 결과도 없고 guideline 도 비어 있음 | 400 GUIDELINE_CONTENT_EMPTY |
캠페인 검수와의 차이
| 항목 | 캠페인 (어드민) | Trial |
|---|---|---|
| 식별자 | collabNo | trialId |
| 정책 선택 | 캠페인 속성으로 자동 (인스타=metaAds 등) | policyKey 로 지정 (기본 metaAds) |
| 국가 | creator_target_country (없으면 TB_COLLAB.nation) | prepare 결과의 creator_target_country (없으면 nation) |
| 보상 형태 | 캠페인 유형으로 채움 | 비움 (Python 이 unknown 처리) |
| 결과 저장 | guidelines.regulationRiskResults | MongoDB guideline_trial_regulations (_id = trialId) |