체인지로그개선

답변 분석이 1크레딧으로 내려갔어요

API
답변 분석이 2크레딧에서 1크레딧으로 바뀐 것과, ChatGPT 답변을 분석해 Northwind를 1위, Acme CRM을 2위로 두고 둘 다 추천으로 표시하며 인용 사이트를 owned와 reviews로 나눈 결과

include.analysis를 켠 답변 태스크는 이전의 절반 가격으로 답변 속 모든 브랜드의 순위, 추천 여부, 감성과 인용한 사이트의 종류를 받아요.

달라진 점

  • 답변 분석은 엔진 가격에 태스크당 1크레딧이 더해집니다(이전 2크레딧). 분석을 켠 ChatGPT 답변은 모두 2크레딧입니다.
  • 인용한 사이트의 kind가 더 자세해졌습니다. 알려진 사이트는 editorial, review_media, pr_wire, reviews, commerce, social, blog, community, video, institution으로 나뉩니다. 그 밖의 사이트는 brand, content 또는 위 종류 중 하나로 한 번 분류하고 그 결과를 다시 씁니다.
  • 분석이 브랜드 이름 자체로 확인한 표기(예: Kurly의 컬리)는 저장해 다음 답변부터 규칙으로 찾습니다.
  • 분석은 CHATGPT, GEMINI, PERPLEXITY, GOOGLE, AIMODE, NAVER_AI_BRIEF, NAVER_AI_TAB 태스크에서 씁니다.

동작 방식

어떤 이름이 브랜드인지, 그중 어느 것이 내 브랜드인지, recommended와 sentiment는 모델이 판정합니다. 위치, 순위, 이름 찾기, 출처 종류는 규칙으로 계산하므로 같은 판정에는 같은 결과가 나옵니다.

내 브랜드와 경쟁사는 모니터와 같은 규칙으로 이름과 별칭을 찾습니다. 라틴 문자는 단어 단위로, 한국어, 일본어, 중국어, 태국어는 어디서든 찾습니다. 모델은 답변의 처음 40,000자를 읽고, 분석은 태스크 완료를 몇 초 늦춥니다.

이렇게 활용하세요

  • analysis.targets로 질문 전체의 언급률, 평균 순위, 점유율을 바로 계산합니다.
  • recommended와 sentiment로 엔진마다 내 브랜드와 경쟁사를 어떻게 말하는지 비교합니다.
  • sources[].kind로 내 분야에서 엔진이 어떤 종류의 사이트를 인용하는지, 내 사이트가 owned로 어디에 나오는지 봅니다.

요청 보내기

API 키를 Authorization 헤더에 넣어 요청을 보냅니다.

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"]
        }
      ]
    }
  }'

요청 필드

taskTypestring필수
실행할 엔진입니다. CHATGPT, GOOGLE 같은 값을 넣습니다.
payload.promptstring필수
사용자가 채팅에 입력하듯 쓴 질문입니다. 최대 100,000자.
payload.countrystring
질문할 시장의 두 글자 국가 코드입니다. US, KR, JP 등. 기본값 US.
payload.include.analysisboolean필수
true면 analysis를 함께 받습니다. 답변이 언급한 모든 브랜드의 순위, 추천 여부, 감성과 인용한 사이트의 종류입니다. 엔진 가격에 1크레딧이 더해집니다.
payload.brandstring
내 브랜드 이름입니다. 최대 200자이고, analysis.targets에 역할 brand로 나옵니다.
payload.brandAliasesarray
답변이 내 브랜드를 부를 수 있는 다른 이름 최대 20개입니다. brand와 함께 씁니다.
payload.brandDomainsarray
내 사이트 최대 20개입니다. 예: acme-crm.example. 이 사이트나 하위 도메인의 인용은 kind가 owned입니다. brand와 함께 씁니다.
payload.competitorsarray
경쟁사 최대 50개입니다. 이름만 쓰거나, 별칭과 도메인을 각각 20개까지 담은 { name, aliases, domains }로 씁니다. analysis.targets에 역할 competitor로 나옵니다.

응답

완료된 태스크는 이런 형태입니다. 길이를 줄여 보여 드립니다.

JSON
{
  "success": true,
  "task": {
    "id": "…",
    "taskType": "CHATGPT",
    "status": "COMPLETED",
    "createdAt": "…"
  },
  "credits": { "creditsToCharge": 2, "creditsCharged": 2 },
  "response": {
    "text": "…",
    "analysis": {
      "version": 1,
      "status": "ok",
      "brands": [
        {
          "name": "Northwind",
          "rank": 1,
          "role": "competitor",
          "recommended": true,
          "sentiment": "positive",
          "sentimentScore": 0.9
        },
        {
          "name": "Acme CRM",
          "rank": 2,
          "role": "brand",
          "recommended": true,
          "sentiment": "positive",
          "sentimentScore": 0.5
        },
        {
          "name": "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
        }
      ]
    }
  }
}
response.analysis.statusstring
분석을 실행했으면 ok입니다. 엔진이 답변 텍스트 없이 끝나면 no_answer, 분석을 실행하지 못하면 failed입니다. ok일 때만 청구합니다.
response.analysis.brandsarray
답변이 언급한 모든 브랜드를 처음 언급한 순서로 담습니다. rank는 1부터 시작하고, 제품은 제조사로 셉니다. 브랜드마다 recommended, sentiment, sentimentScore가 붙습니다.
response.analysis.targetsarray
보낸 브랜드를 보낸 순서대로 담습니다. 브랜드마다 mentioned, brands 안의 rank, 그 도메인이 인용됐는지 알려 주는 cited가 붙습니다.
response.analysis.sources[].kindstring
인용한 사이트의 종류입니다. 보낸 도메인으로 owned와 competitor를 정하고, 나머지는 editorial, review_media, pr_wire, reviews, commerce, social, blog, community, video, institution, brand, content, other 중 하나입니다.

결과 받기

요청하면 status가 QUEUED인 태스크가 바로 돌아옵니다. status가 COMPLETED나 FAILED가 될 때까지 GET /v1/async/task/{id}로 조회하거나, webhook.url을 넣어 같은 task, credits, response를 서버로 받으세요. 결과는 태스크가 끝난 뒤 24시간 동안 조회됩니다.

curl https://api.querying.ai/v1/async/task/$TASK_ID \
  -H "Authorization: Bearer $QUERYING_API_KEY"

요금

태스크는 제출할 때 분석용 1크레딧을 예약하고, analysis.status가 ok일 때만 청구합니다. no_answer나 failed이면 예약한 크레딧을 돌려주고 태스크는 답변과 함께 완료됩니다. 플랜과 크레딧 가격은 https://querying.ai/pricing 에서 볼 수 있습니다.

다른 업데이트

새 소식을 받아보세요

제품 업데이트를 이메일로 보내드립니다.

RSS 구독