행동 데이터 연동 가이드

1

연동 준비하기 (Prepare)

API를 호출하기 위해 필요한 기본 정보입니다.

  • API Endpoint: https://statistics.genser.app

  • Method: POST

  • Content-Type: application/json (또는 application/ld+json)

  • Service Key: genser 어드민 [설정] 메뉴에서 발급받은 apiKey

2

인증하기 (Authenticate)

준비된 키를 HTTP 요청 헤더(Header)에 설정합니다. 모든 API 요청 시 아래 헤더가 반드시 포함되어야 합니다.

필드명
구분
설명

Content-Type

필수

데이터 전송 형식을 JSON으로 지정합니다.

serviceKey

필수

[인증키] genser 어드민 설정에서 발급받은 서비스 식별 키입니다. (비밀번호처럼 관리해주세요)

requestId

필수

[추적키] 매 요청마다 새로 생성하는 고유 식별자입니다. (오류 추적용)

Idempotency-Key

필수

[중복방지키] 네트워크 오류 등으로 인한 중복 처리를 막기 위한 키입니다.

circle-check

HTTP 요청 헤더 예시:

POST /actions/cart/add HTTP/1.1
Host: statistics.genser.app
Content-Type: application/json
serviceKey: cb37cce9d6ae434fa366151b3420a9af
Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000
requestId: req-20260112-001

3

데이터 전송하기 (Send Data)

사용자의 행동이 발생한 시점(버튼 클릭, 페이지 로드 등)에 맞춰 해당 API를 호출합니다. 아래 상황별 JSON 예시를 참고하여 데이터를 전송해 주세요. 상세한 필드 규격은 각 항목의 [API 레퍼런스]arrow-up-right에서 확인하실 수 있습니다.

장바구니 (Cart)

장바구니 추가 (Add to Cart)

사용자가 '장바구니 담기' 버튼을 클릭했을 때 호출합니다.

Path: /actions/cart/add

API 레퍼런스 확인하기arrow-up-right

chevron-right본문(Body) 코드 샘플hashtag
{
  "specversion": "1.0.0",
  "id": "EVT-ADD-TO-CART-001",
  "type": "add_to_cart",
  "time": "2025-12-02T10:00:00Z",
  "source": "[https://shop.groobee.com](https://shop.groobee.com)",
  "data": {
    "@context": "[https://schema.org/](https://schema.org/)",
    "@type": "AddAction",
    "agent": {
      "@type": "Person",
      "identifier": [
        { "@type": "PropertyValue", "propertyID": "memberId", "value": "user1234" },
        { "@type": "PropertyValue", "propertyID": "userId", "value": "2aa9a562..." }
      ]
    },
    "object": {
      "@type": "OrderItem",
      "orderQuantity": 2,
      "orderedItem": {
        "@type": "Product",
        "sku": "131776",
        "name": [{ "@value": "소이 3인소파", "@language": "ko" }],
        "offers": { "@type": "Offer", "price": 1285000, "priceCurrency": "KRW" }
      }
    },
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "[https://www.groobee.com/cart](https://www.groobee.com/cart)"
    }
  }
}

장바구니 제거 (Remove from Cart)

사용자가 장바구니에서 상품을 삭제했을 때 호출합니다.

Path: /actions/cart/remove

API 레퍼런스 확인하기arrow-up-right

chevron-right본문(Body) 코드 샘플hashtag
{
  "specversion": "1.0.0",
  "id": "EVT-REMOVE-FROM-CART-001",
  "type": "remove_from_cart",
  "time": "2025-12-02T10:10:00Z",
  "source": "[https://shop.groobee.com](https://shop.groobee.com)",
  "data": {
    "@context": "[https://schema.org/](https://schema.org/)",
    "@type": "DeleteAction",
    "agent": {
      "@type": "Person",
      "identifier": [
        { "@type": "PropertyValue", "propertyID": "memberId", "value": "user1234" }
      ]
    },
    "object": {
      "@type": "OrderItem",
      "orderQuantity": 1,
      "orderedItem": {
        "@type": "Product",
        "sku": "131776",
        "name": [{ "@value": "소이 3인소파", "@language": "ko" }],
        "offers": { "@type": "Offer", "price": 1285000, "priceCurrency": "KRW" }
      }
    },
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "[https://shop.groobee.com/cart](https://shop.groobee.com/cart)"
    }
  }
}

주문/결제 (Purchase)

결제 시작 (Start Checkout)

사용자가 주문서 작성 페이지에 진입했을 때 호출합니다.

Path: /actions/purchase/checkout

API 레퍼런스 확인하기arrow-up-right

chevron-right본문(Body) 코드 샘플hashtag

결제 완료 (Complete Purchase)

결제가 성공적으로 완료된 시점(주문 완료 페이지)에 호출합니다. 가장 중요한 데이터입니다.

Path: /actions/purchase/complete

API 레퍼런스 확인하기arrow-up-right

chevron-right본문(Body) 코드 샘플hashtag

결제 취소 (Cancel Purchase)

사용자가 결제를 취소하거나 주문을 철회했을 때 호출합니다.

Path: /actions/purchase/cancel

API 레퍼런스 확인하기arrow-up-right

chevron-right본문(Body) 코드 샘플hashtag

검색어 제출 (Search Submitted)

사용자가 검색창에 검색어를 입력하고 엔터키를 치거나 돋보기 아이콘을 눌렀을 때 호출합니다.

Path: /actions/search/submitted

API 레퍼런스 확인하기arrow-up-right

chevron-right본문(Body) 코드 샘플hashtag

검색 결과 조회 (View Search Result)

검색 결과 리스트 페이지가 로딩되었을 때 호출합니다.

Path: /actions/search/result

API 레퍼런스 확인하기arrow-up-right

chevron-right본문(Body) 코드 샘플hashtag

상품 (Product)

상품 상세 조회 (View Product)

상품 상세 페이지(PDP)에 진입했을 때 호출합니다.

Path: /actions/view/product

API 레퍼런스 확인하기arrow-up-right

chevron-right본문(Body) 코드 샘플hashtag

상품 클릭 (Click Product)

리스트에서 특정 상품을 클릭했을 때 호출합니다.

Path: /actions/click/product

API 레퍼런스 확인하기arrow-up-right

chevron-right본문(Body) 코드 샘플hashtag

위시리스트 (Wishlist)

위시리스트 등록 (Add to Wishlist)

'찜하기' 또는 '위시리스트 추가' 버튼 클릭 시 호출합니다.

Path: /actions/wishlist/add=

API 레퍼런스 확인하기arrow-up-right

chevron-right본문(Body) 코드 샘플hashtag

위시리스트 제거 (Remove from Wishlist)

위시리스트에서 상품을 삭제할 때 호출합니다.

Path: /actions/wishlist/remove

API 레퍼런스 확인하기arrow-up-right

chevron-right본문(Body) 코드 샘플hashtag

4

응답 확인하기 (Check Response)

API 호출 후 HTTP 상태 코드를 확인하여 전송 성공 여부를 판단합니다.

상태 코드
결과
설명

200 OK

성공

성공입니다. 다음날 00:15am 배치를 통해 반영됩니다.

400 Bad Request

요청 형식 오류

JSON 문법이 틀렸거나, 필수 값(sku, name 등)이 누락되었는지 확인하세요.

401 Unauthorized

인증 실패

serviceKey가 유효하지 않거나 누락되었습니다.

500 Internal Error

서버 오류

일시적인 장애일 수 있습니다. 잠시 후 재시도(Retry) 로직을 실행하세요.

5

연동 결과 확인하기 (Verify)

API 연동 후 데이터가 정상적으로 쌓이고 있는지 genser 어드민에서 확인할 수 있습니다.

  1. 대시보드 화면의 통계 지표를 통해 이벤트 건수가 정상적으로 집계되는지 확인합니다.

  2. 검색 인사이트 화면의 통계 지표를 통해 이벤트 건수가 정상적으로 집계되는지 확인합니다.

데이터 반영 및 갱신 시점 안내

genser는 데이터의 성격에 따라 실시간 반영과 정기 업데이트(Batch)를 구분하여 운영합니다. 확인하고자 하는 데이터 종류에 따른 갱신 시점과 기준 시간대를 참고해 주십시오.

데이터 구분
조회 대상
갱신 시점
기준 시간대

검색 로그

전체 검색 이력 목록

실시간 (Real-time)

UTC

통계/분석

'오늘(Today)' 조회 시

매 시간 5분 (예: 11:05)

KST (한국 시간)

통계/분석

'어제' 및 과거 기간 조회 시

매일 00시 (자정)

KST (한국 시간)

Last updated

Was this helpful?