best moisturizing eye cream 같은 쇼핑 질문을 3개까지 넣으면 엔진마다 이 상품들
가운데 무엇을 보여주는지 볼 수 있습니다.
조회 한 번으로 다음을 확인할 수 있습니다.
- ChatGPT, Google AI 개요, AI 모드, Copilot에 상품을 물었을 때 그 상품이 나오는지
- 엔진마다 어느 판매처와 카탈로그 기록으로, 어떤 가격과 평점, 리뷰 수로 보여주는지
- ChatGPT의 답변 모델이 상품에 대해 무엇을 읽었는지
- 엔진마다 경쟁 상품과 비교해 어떤지
- 쇼핑 질문에 엔진마다 이 상품들 가운데 무엇을 보여주는지
조회 제출
lookup.id는 보낸idempotencyKey이고, 보내지 않으면 서버가 정한 UUID입니다. 이 값으로 조회 결과를 읽습니다.asks[]의 각 항목에는role(product,competitor,prompt), 물은 내용(prompt또는query), 그 질문의task가 있습니다. 거절된 질문에는task대신success: false와error가 있습니다. 오류를 참고하세요.credits.creditsToCharge는 응답에 담긴 질문들의 가격 합계이며, 각 질문이 끝날 때까지 잔액에서 보류됩니다.creditsCharged는 그 질문들에 이미 차감된 크레딧입니다.
lookup.status가 COMPLETED가 될 때까지 GET /v1/product-lookup/{id}로 조회 결과를 읽습니다. 이 조회는 약 2분
걸렸습니다. 조회는 가장 느린 엔진이 답할 때 끝납니다. webhook.url을 넣으면 질문마다 태스크가 끝날 때 전송되고,
task.idempotencyKey에는 조회 id로 시작하는 그 질문의 key가 담깁니다. 조회 전체가 끝났다는 webhook은 없으므로
받을 때마다 조회 결과를 읽어 lookup.status를 확인하세요. 스키마는 API 레퍼런스의
Product Lookup과 Product Lookup 결과 조회에
있습니다.
요청 필드
엔진과 질문
상품과 각 경쟁 상품은 같은 질문을 받습니다.
“요청 시”는
engines에 넣었을 때만 묻는다는 뜻입니다. engines가 없으면 US 조회는 ChatGPT, AI 개요, AI 모드,
Copilot에 묻고 상품마다 질문이 5개입니다. KR 조회는 네이버 AI 탭, ChatGPT, AI 모드에 묻고 상품마다 질문이
4개입니다. 쇼핑 질문은 엔진마다 한 번 묻으므로 US 기본 엔진에서 4개, KR 기본 엔진에서 3개입니다. 위 조회의
질문은 3 × 5 + 2 × 4 = 23개였습니다.
ChatGPT에 두 번 묻는 이유는 질문 하나로는 상품의 절반 정도에서만 상품 기록이 나오고, 같은 질문을 다시 하면 다른
절반에서 나오는 경우가 많기 때문입니다. 나머지 기본 엔진은 2026-10-20에 상품 50개로 시험했을 때 상품을 보여준
엔진입니다.
ChatGPT 행은
US 상품 12개와 KR 상품 10개를 두 번씩 조회한 결과입니다. Gemini는 두 시장에서 질문 115개를
받는 동안 상품 기록을 하나도 보여주지 않았습니다.
조회 결과 읽기
lookup: 물은 내용,status, 지금까지 차감된credits.summary와engines[]: 상품에 대한 답변을 엔진 전체로, 그리고 엔진별로 정리한 것.competitors[]: 경쟁 상품마다 같은 형식의summary와engines[].comparison[]: 상품과 경쟁 상품을 엔진별로 나란히 놓은 것.prompts[]: 쇼핑 질문마다 엔진이 답한 내용.
lookup.status는 질문이 시작되기 전까지 QUEUED, 끝나지 않은 질문이 있으면 PROCESSING입니다. 모든 질문이 끝나고
하나 이상 완료되면 COMPLETED, 모두 실패하면 FAILED가 됩니다. 질문이 끝나는 대로 항목이 채워지므로 완료 전에도
읽을 수 있습니다.
아래는 위 조회의 lookup, summary, engines[]입니다. 엔진 4개 중 2개와 목록마다 항목 몇 개만 남겼습니다.
variant가 붙은 스틱 제품을 보여줬고, 같은 브랜드의 아이 젤은 otherListings에 넣었습니다.
summary
engines[]
물은 엔진마다 항목이 하나씩 있습니다.
리스팅 필드
리스팅은 엔진이 가진 판매처 한 곳의 상품 기록입니다. 엔진이 주는 필드만 담깁니다.source는 리스팅이 어느 카탈로그에서 왔는지 알려줍니다.
ChatGPT 위젯 카드
ChatGPT는 쇼핑 질문에 카드로 답하는 경우가 많습니다. 카드마다 판매처 페이지에서 읽은 판매처와 가격이 있지만, 그 뒤에 카탈로그 기록은 없습니다. 조회는 이 카드를 답변의 기록 다음에chatgpt_widget 리스팅으로 읽고 found에도
셉니다.
merchant는 카드가 쓴 판매처 이름이거나 구매 링크의 도메인입니다.description은 카드의 설명 줄입니다.- 카드에는
rating,reviewCount,available,ids,modelSees가 없습니다. 가격이$40–$62처럼 범위면price가 빠집니다. - 구매 링크도 판매처 줄도 없는 카드는 읽지 않습니다.
- 그 상품의 기록이나 앞선 카드와 판매처, 가격이 같은 카드는 뺍니다. 판매처 이름이나 링크한 사이트가 같거나 한쪽이 다른 쪽으로 시작하면 같은 판매처로 봅니다. Ulta, Ulta Beauty, ulta.com이 그런 예입니다.
source가 chatgpt_widget인 리스팅을 빼고 읽으세요.
경쟁 상품과 비교하기
상품 하나를 물은 답변에는 다른 브랜드 상품이 거의 나오지 않습니다. 상품 50개 시험에서는 한 번도 나오지 않았습니다. 그래서 경쟁 상품은 직접 넣고, 경쟁 상품마다 상품과 같은 질문을 묻습니다.competitors[]의 각 항목에는 경쟁 상품의
product, summary, engines[]가 있고, 상품과 같은 방식으로 읽습니다.
comparison[]은 상품과 경쟁 상품을 한 행에 하나씩 놓고, 행마다 엔진별 항목을 둡니다. 아래는 위 조회에서 Copilot만
남기고, 상품은 ChatGPT도 남긴 것입니다.
세 상품 모두 네 엔진에 나왔습니다. Copilot에서 상품의 리뷰가 가장 많은 리스팅은 리뷰 2,942개였고, 두 경쟁 상품은
85,773개와 117,193개였습니다. 쇼핑 질문 답변 8개 중 CeraVe Eye Repair Cream은 5개에 나왔고, 상품과 Clinique All
About Eyes는 2개씩 나왔습니다.
쇼핑 질문
prompts[]의 각 항목에는 prompt와, 엔진마다 하나씩 담긴 engines[]가 있습니다.
쇼핑 질문 답변에는 여러 브랜드의 상품이 나오므로, 기록에 브랜드, 곧 상품 이름의 첫 단어가 있어야 조회 상품으로
셉니다. 본문의 이름은 GEO 모니터가 브랜드 언급을 세는 방식으로 세고, 상품의 전체 이름을 찾습니다.
아래는 위 조회에서 AI 개요와 Copilot이
best moisturizing eye cream에 답한 내용입니다. 리스팅은 조회 상품만
남겼습니다.
Clinique All About Eyes Rich처럼 이름에 단어가 더 붙은 버전도 그
상품으로 셉니다.
다시 보내기
질문마다 조회 id로 만든 key가 있습니다.- 상품의 질문:
<id>:<engine>:<ask>. 예:eye-bomb-us:CHATGPT:buy. ChatGPT의 질문은buy와price, 나머지 엔진의 질문은name입니다. - n번째 경쟁 상품의 질문은 뒤에
:c<n>이 붙습니다. 예:eye-bomb-us:CHATGPT:buy:c1. - n번째 쇼핑 질문의 질문:
<id>:<engine>:p<n>. 예:eye-bomb-us:AIMODE:p1.
idempotencyKey로 조회를 다시 보내면 이미 있는 질문은 그대로 돌려주고 빠진 질문만 넣습니다. 과금도 새로 넣은
질문만 합니다. 크레딧이나 동시 실행 한도 때문에 거절된 질문을 채우거나, 목록 끝에 경쟁 상품이나 쇼핑 질문을 더할 때
씁니다. 다시 보낸 요청에서 뺀 경쟁 상품과 쇼핑 질문은 조회에 그대로 남습니다.
상품이나 국가를 바꾸거나, 이미 채워진 자리에 다른 경쟁 상품이나 쇼핑 질문을 넣으면 409 RESOURCE_ALREADY_EXISTS를
반환하고 아무것도 쓰지 않습니다. 실패한 질문은 다시 보내도 실패한 그대로 돌아옵니다. 엔진에 다시 물어 새 답변을
받으려면 새 idempotencyKey로 보내세요.
가격
조회는 상품(상품과 각 경쟁 상품)마다 10 크레딧, 쇼핑 질문마다 5 크레딧이며 어느 엔진에 묻든 같습니다.- 위 조회는 3 × 10 + 2 × 5 = 40 크레딧입니다. 가장 큰 조회인 상품 하나와 경쟁 상품 5개, 쇼핑 질문 3개는 75 크레딧입니다.
- 상품이나 쇼핑 질문의 크레딧은 그 질문들에 나눠 매깁니다.
US기본 엔진에서는 상품 질문 하나가 2 크레딧, 쇼핑 질문의 질문 하나가 1.25 크레딧입니다.KR기본 엔진에서는 상품 질문 하나가 2.5 크레딧이고, 쇼핑 질문의 질문 세 개는 1.67, 1.67, 1.66 크레딧입니다. 엔진을 줄여도 가격은 같습니다. ChatGPT에만 물으면 상품의 질문 두 개가 각각 5 크레딧입니다. - 질문마다 다른 태스크처럼 제출할 때 보류하고 완료되면 차감합니다. 실패한 질문은 과금하지 않습니다.
- 요금제 가격으로 환산하면 상품 하나는 Basic에서 $0.025, Max에서 $0.010입니다.
결과를 올바르게 읽기
- 조회 한 번은 한 시점의 기록입니다. 엔진마다 질문 한두 개에 답합니다. 한 번 나온 차이로 결정하기 전에 새
idempotencyKey로 다시 조회하세요. - 기록의 값은 그대로이고, 어떤 기록이 나오는지가 바뀝니다. 같은 조회를 네 번 실행했을 때 같은 판매처 기록의
가격, 평점, 리뷰 수는 316개 값 중 307개가 같았습니다. 실행마다 바뀌는 것은 답변이 어떤 기록을 보여주는지입니다.
그래서
found(특히 ChatGPT), 판매처,mostReviewed,priceRange, 쇼핑 질문의shown과named가 달라질 수 있습니다. - 몇 분 간격도 몇 시간 간격만큼 다릅니다. ChatGPT, AI 모드, Copilot의 답변은 3분 간격일 때도 11시간 간격일 때만큼 달랐습니다. AI 개요는 몇 초 안에 다시 물으면 같은 답변이 나올 수 있으므로, 곧바로 다시 물은 결과는 새 표본이 아닙니다.
- 답변 하나보다 합계가 안정적입니다. 네 번의 실행에서 쇼핑 질문 답변 하나하나는 바뀌었지만, 가장 많은 답변에 나온 상품들은 매번 앞섰습니다. 쇼핑 질문을 시간에 따라 추적하려면 GEO 모니터를 쓰세요.
found: false는 이번 답변에 대한 결과입니다. 이번 실행의 질문들이 상품을 보여주지 않았다는 뜻입니다. 엔진의 카탈로그에 상품이 없다는 뜻은 아닙니다.- 판정은 이름으로 합니다. GTIN을 주는 엔진은 없습니다. 이름이 바뀌었거나 번역된 상품은
otherListings에 들어갈 수 있고, 이름으로 구분되지 않는 버전은 그 상품으로 셀 수 있습니다. 리스팅이 이상해 보이면match를 확인하세요.
제한 사항
- 입력은 상품 이름입니다. 상품 페이지 URL과 GTIN은 지원하지 않습니다.
- 시장은
US와KR입니다. - 조회 하나에 경쟁 상품 5개와 쇼핑 질문 3개까지 넣을 수 있습니다.
US기본 엔진에서 가장 큰 조회는 질문 42개입니다. - 경쟁 상품은 직접 넣은 것만 봅니다. 조회가 경쟁 상품을 찾아 주지는 않습니다. 엔진이 쇼핑하는 사람에게 어떤 상품을 보여주는지는 쇼핑 질문으로 확인합니다.
- ChatGPT는 기록과 위젯 카드를 읽습니다. 답변 본문이나 표에 쓴 판매처와 가격은 읽지 않습니다.
- 답변 하나에서 리스팅은 60개, 인용 페이지는 20개까지 담습니다.
- 조회 결과는 질문 태스크를 읽을 수 있는 동안, 곧 완료 후 24시간까지 읽을 수 있습니다. 비동기 태스크를 참고하세요.
오류
제출 시 거절
거절된 질문
질문은 단건 태스크처럼 받아들여지므로 잔액(402 INSUFFICIENT_CREDITS),
요금제의 동시 실행 한도(429 PLAN_CONCURRENCY_LIMIT), 키의 일일 크레딧 한도(429 KEY_DAILY_CREDIT_LIMIT), 다른
엔진만 쓸 수 있는 키 때문에 거절될 수 있습니다. 거절된 질문은 success: false와 error를 담아 asks[]에 남고,
나머지 질문은 그대로 진행됩니다.
질문은 하나씩 들어갑니다. 모든 엔진의 상품별 첫 질문과 각 쇼핑 질문이 두 번째 질문보다 먼저 들어갑니다. 그래서
요금제에 일부 질문만 들어갈 여유가 있을 때는 들어간 질문이 되도록 많은 엔진과 상품을 덮습니다. 상품의 첫 질문이 하나도 들어가지
못하면 나머지는 묻지 않고, 첫 거절이 그 상태 코드 그대로 응답이 됩니다. 402 INSUFFICIENT_CREDITS가 그 예입니다.
동시 실행이 2개인 Free 요금제에서 US 조회는 상품의 ChatGPT 첫 질문과 AI 개요 질문만 들어갑니다. 이 질문들이 끝난
뒤 다시 보내면 나머지가 들어갑니다. 가장 큰 US 조회인 질문 42개는 다른 태스크가 없을 때 Basic의 동시 실행 50개
안에 들어갑니다.
인증 오류는 다른 요청과 같습니다. 오류를 참고하세요.
실패한 질문과 조회
- 실패한 질문은
via[]에status: "FAILED"와error가 있고, 과금하지 않습니다. 질문이 모두 실패한 엔진은status: "FAILED",found: null이며summary.failed에 들어갑니다. GET /v1/product-lookup/{id}는 계정에 그 id의 조회가 없으면404 RESOURCE_NOT_FOUND를 반환합니다. 태스크를 읽을 수 있는 기간이 지난 조회도 같습니다.
다음 단계
GEO 모니터링
쇼핑 질문을 여러 AI 엔진에서 정해진 주기로 추적합니다.
Prompt Research
한 분야에서 사람들이 묻는 쇼핑 질문을 찾습니다.