> ## Documentation Index
> Fetch the complete documentation index at: https://docs.querying.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 답변 분석: 브랜드 언급, 순위, 감성, 출처 종류

> 답변 태스크에 include.analysis를 더해 답변이 언급한 모든 브랜드, 브랜드마다 어떻게 다뤘는지, 인용한 사이트가 어떤 종류인지 받습니다.

`payload.include.analysis`를 `true`로 설정하면 태스크는 답변과 함께 다음을 반환합니다. 답변이 언급한 모든 브랜드와 그 순서, 브랜드마다 추천했는지와 어떤 태도로 말했는지, 내 브랜드와 경쟁사가 나왔는지, 인용한 사이트가 어떤 종류인지입니다. 답변에 직접 모델을 돌리지 않고도 언급률, 평균 순위, 감성, 점유율, 출처 점유율을 계산할 수 있습니다.

## 요청

```bash theme={"theme":"css-variables"}
curl -X POST https://api.querying.ai/v1/async/task \
  -H "Authorization: Bearer $QUERYING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "taskType": "CHATGPT",
    "payload": {
      "prompt": "best CRM for a small team",
      "country": "US",
      "include": { "analysis": true },
      "brand": "Acme CRM",
      "brandAliases": ["Acme"],
      "brandDomains": ["acme-crm.example"],
      "competitors": ["Northwind", { "name": "Contoso CRM", "aliases": ["Contoso"], "domains": ["contoso-crm.example"] }]
    }
  }'
```

| 필드 | 필수 | 설명 |
| - | - | - |
| `include.analysis` | 예 | `true`면 분석을 실행합니다. |
| `brand` | 아니요 | 내 브랜드 이름, 최대 200자. URL은 안 되며, 사이트는 `brandDomains`에 넣으세요. |
| `brandAliases` | 아니요 | 내 브랜드의 다른 이름, 최대 20개. `brand`와 함께만 보냅니다. |
| `brandDomains` | 아니요 | `acme-crm.example` 같은 사이트, 최대 20개. 그 사이트나 하위 도메인의 인용은 내 것으로 봅니다. `brand`와 함께만 보냅니다. |
| `competitors` | 아니요 | 경쟁사, 최대 50개. 각각 이름이거나, 별칭과 도메인을 각 20개까지 담은 `{ name, aliases, domains }`입니다. |

모든 이름은 두 글자 이상이거나 두 글자 이상의 별칭이 있어야 합니다. `brand`와 `competitors`가 없어도 분석은 답변이 언급한 모든 브랜드를 나열합니다.

## 지원 엔진

`CHATGPT`, `GEMINI`, `PERPLEXITY`, `GOOGLE`, `AIMODE`, `NAVER_AI_BRIEF`, `NAVER_AI_TAB`(과 그 별칭). `followUps`가 있는 `CHATGPT` 태스크에서는 첫 답변을 분석합니다.

## 크레딧

분석은 엔진 가격에 태스크당 **1크레딧**이 더해집니다. 제출할 때 예약하고, `analysis.status`가 `ok`일 때만 청구합니다. [크레딧과 한도](/ko/concepts/credits-and-limits.md)를 참고하세요.

## 응답

태스크의 `response`에 `analysis` 객체가 더해집니다. 예:

```json theme={"theme":"css-variables"}
{
  "analysis": {
    "version": 1,
    "status": "ok",
    "brands": [
      { "name": "Northwind", "domain": null, "writtenAs": "Northwind", "spellings": ["Northwind"], "rank": 1, "role": "competitor", "recommended": true, "sentiment": "positive", "sentimentScore": 0.9 },
      { "name": "Acme CRM", "domain": "acme-crm.example", "writtenAs": "Acme", "spellings": ["Acme", "Acme CRM"], "rank": 2, "role": "brand", "recommended": true, "sentiment": "positive", "sentimentScore": 0.5 },
      { "name": "Fabrikam", "domain": "fabrikam.example", "writtenAs": "Fabrikam", "spellings": ["Fabrikam"], "rank": 3, "role": null, "recommended": false, "sentiment": "neutral", "sentimentScore": 0 }
    ],
    "targets": [
      { "name": "Acme CRM", "role": "brand", "mentioned": true, "rank": 2, "recommended": true, "sentiment": "positive", "sentimentScore": 0.5, "cited": true },
      { "name": "Northwind", "role": "competitor", "mentioned": true, "rank": 1, "recommended": true, "sentiment": "positive", "sentimentScore": 0.9, "cited": false },
      { "name": "Contoso CRM", "role": "competitor", "mentioned": false, "rank": null, "recommended": null, "sentiment": null, "sentimentScore": null, "cited": false }
    ],
    "sources": [
      { "position": 1, "url": "https://www.acme-crm.example/pricing", "domain": "acme-crm.example", "kind": "owned", "brand": "Acme CRM" },
      { "position": 2, "url": "https://www.g2.com/categories/crm", "domain": "g2.com", "kind": "reviews", "brand": null }
    ]
  }
}
```

| 필드 | 설명 |
| - | - |
| `status` | `ok`, `no_answer`, `failed` 중 하나. [상태](#상태)를 참고하세요. |
| `brands` | 답변이 언급한 모든 브랜드를 처음 언급한 순서대로 담습니다. 제품은 제조사로 셉니다. 예를 들어 "MacBook Air"는 Apple의 순위가 됩니다. `rank`는 1부터 시작합니다. `role`은 요청에 넣은 브랜드면 `brand`나 `competitor`, 나머지는 `null`입니다. |
| `brands[].name`, `domain`, `writtenAs`, `spellings` | 요청에 넣은 브랜드는 `name`이 보낸 이름입니다. 그 밖의 브랜드는 언어와 상관없이 같은 대표 이름입니다. 공식 영문 이름이고, 없으면 원래 이름입니다. 예를 들어 마켓컬리와 컬리는 둘 다 `Kurly`입니다. `domain`은 브랜드의 사이트입니다. 보낸 도메인 중 첫 번째이거나, 그 브랜드에 대해 찾은 사이트이며, 없으면 `null`입니다. `spellings`는 답변이 브랜드 이름을 쓴 표기를 처음 나온 순서대로 모두 담습니다. 예를 들어 Baemin은 배민과 배달의민족을 담습니다. 이름 뒤에 붙은 제품명이나 설명은 표기에 넣지 않습니다. `writtenAs`는 그중 첫 번째 표기입니다. |
| `targets` | 요청에 넣은 브랜드를 넣은 순서대로 담고, 각각 `mentioned`와 `brands` 안의 `rank`를 줍니다. `cited`는 그 브랜드 도메인의 인용이 있으면 `true`이고, 도메인을 보내지 않았으면 `false`입니다. |
| `recommended` | 답변이 그 브랜드를 추천하거나 좋은 선택으로 제시했는지입니다. |
| `sentiment`, `sentimentScore` | 답변이 그 브랜드에 대해 취한 태도를 다섯 단계로 판정하고 0.9, 0.5, 0, -0.5, -0.9로 점수를 매깁니다. 다른 브랜드에 대한 칭찬이나 비판은 세지 않으며, 추천이나 경고가 지나가는 언급보다 우선합니다. |
| `sources[].kind` | `owned`와 `competitor`는 보낸 도메인으로 정합니다. 알려진 사이트는 정해진 목록을 따릅니다. `editorial`(뉴스, 잡지), `review_media`(제품 테스트, 리뷰 매체), `pr_wire`, `reviews`(사용자 리뷰 플랫폼), `commerce`, `social`(SNS), `blog`(블로그 플랫폼), `community`(포럼, Q\&A, 위키), `video`, `institution`(정부, 학교)입니다. 그 밖의 사이트는 모델이 한 번 분류하고 그 결과를 다시 씁니다. `brand`(기업 공식 사이트), `content`(독립 사이트, 개인 블로그) 또는 위 유형 중 하나가 됩니다. `other`는 검색엔진, 도구처럼 어디에도 맞지 않거나 분류하지 못한 사이트입니다. |

## 판정 방식

* 어떤 이름이 브랜드인지, 그중 어느 것이 내 브랜드인지, `recommended`, `sentiment`는 모델이 판정합니다. 위치, 순위, 이름 찾기, 출처 종류는 규칙으로 계산하므로 같은 모델 판정에는 같은 결과가 나옵니다.
* 내 브랜드와 경쟁사는 [모니터](/ko/monitors.md#이름-일치-방식)와 같은 규칙으로 이름과 별칭을 찾습니다. 라틴 문자는 단어 단위로, 한국어, 일본어, 중국어, 태국어는 어디서든 찾고, 인용 링크 안은 찾지 않습니다. 모델은 다른 표기도 찾아 연결합니다. 브랜드 이름 자체로 확인한 표기(예: Kurly의 컬리)는 저장해 다음 답변부터 규칙으로 찾습니다. 답변에 없는 이름은 보고하지 않습니다.
* 이름은 일치했지만 모델이 이 답변에서 브랜드로 읽지 않은 경우(다른 뜻으로 쓰인 흔한 단어)에는 브랜드가 목록에 남고 `recommended`, `sentiment`, `sentimentScore`가 `null`입니다.
* 요청에 넣지 않은 브랜드는 어떤 답변이든 그 표기를 처음 쓸 때 모델이 이름을 정하고, 그 이름과 사이트를 이후 모든 답변에 다시 씁니다. 인용된 사이트나 비슷한 표기로 이미 이름이 정해진 브랜드를 모델에 함께 보내므로, 지점이나 다른 문자 표기도 같은 이름이 됩니다. 이름을 정하지 못하면 답변의 표기를 그대로 쓰고 `domain`은 `null`입니다.
* 사이트 하나는 브랜드 하나입니다. 같은 사이트로 이름이 정해진 브랜드는 사이트 자체의 이름(baemin.com의 Baemin)이나, 없으면 그 사이트에 처음 정해진 이름으로 한 번만 나옵니다. 예를 들어 아임웹과 I'mweb은 한 브랜드입니다. 요청에 넣은 브랜드의 사이트로 찾은 브랜드는 그 브랜드입니다. 블로그, 커뮤니티, 영상, 소셜 플랫폼의 글은 요청에 넣지 않은 브랜드와 연결하지 않습니다. NAVER의 blog.naver.com처럼 그 브랜드의 플랫폼이어도 같습니다.
* 모델이 브랜드가 아니라고 읽은 이름은 빠집니다. 일반 명사, 장소, 시술명 같은 이름입니다. 답변이 "마켓컬리, 오아시스마켓, SSG닷컴"처럼 한 이름으로 묶어 쓴 브랜드는 각각의 브랜드로 셉니다. 이름 뒤에 붙은 설명은 이름에 포함하지 않습니다.
* 모델은 답변의 처음 40,000자를 읽습니다. 그 뒤에 처음 나온 브랜드는 보고하지 않습니다.
* 분석은 태스크 완료를 몇 초 늦춥니다.

## 상태

| `status` | 의미 | 청구 |
| - | - | - |
| `ok` | 분석을 실행했습니다. | 1크레딧 |
| `no_answer` | 엔진이 답변 텍스트 없이 완료했습니다(AI 개요가 없는 Google 검색 등). 요청한 브랜드는 모두 언급되지 않은 것으로 나옵니다. | 없음 |
| `failed` | 분석을 실행하지 못했습니다. `error`는 `ANALYSIS_FAILED`, `ANALYSIS_TIMEOUT`, `ANALYSIS_UNAVAILABLE` 중 하나입니다. 태스크는 답변과 함께 완료됩니다. | 없음 |

## 오류

| 상태 | 코드 | 발생 조건 |
| - | - | - |
| `422` | `VALIDATION_ERROR` | `include.analysis`가 boolean이 아니거나, 엔진이 분석을 지원하지 않거나, `brand`, `brandAliases`, `brandDomains`, `competitors`가 위 규칙을 어겼습니다. `details[].field`가 필드를 알려줍니다. |

## 관련 문서

* [Markdown과 원본 응답](/ko/engines/response-options.md)
* [GEO 모니터링](/ko/monitors.md): 같은 분석을 일정에 따라 실행합니다.
* [엔진 개요](/ko/engines/overview.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.