A/B ν…ŒμŠ€νŠΈ

πŸ“˜

HTTP APIλŠ” μ„œλ²„ ν™˜κ²½μ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

HTTP APIλ₯Ό μ‚¬μš©ν•˜μ—¬ μ‚¬μš©μžμ— λŒ€ν•œ A/B ν…ŒμŠ€νŠΈ λΆ„λ°° κ²°κ³Όλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


Authentication

SDK ν‚€λ₯Ό 톡해 인증을 μ§„ν–‰ν•©λ‹ˆλ‹€. SDK ν‚€λ₯Ό HTTP ν—€λ”λ‘œ 전솑해야 ν•©λ‹ˆλ‹€.
APIλ₯Ό ν˜ΈμΆœν•˜λŠ” 곳에따라 Browser, App, Server SDK 킀쀑 ν•˜λ‚˜λ₯Ό ν—€λ”λ‘œ μ„€μ •ν•©λ‹ˆλ‹€.

X-HACKLE-API-KEY: {YOUR_SDK_KEY}


Request

POST https://api.hackle.io/v1/variation

Request Body

FieldTypeRequiredDescription
experimentKeynumberOλΆ„λ°° λŒ€μƒ A/B ν…ŒμŠ€νŠΈ μ‹€ν—˜ν‚€
userUser objectOλΆ„λ°° λŒ€μƒ μ‚¬μš©μž

User Object

FieldTypeRequiredDescription
userIdstringXμ‚¬μš©μž ID (핡클 ν†΅ν•©μ‹λ³„μž μ‚¬μš© κ°€λŠ₯)
deviceIdstringXλ””λ°”μ΄μŠ€ ID (핡클 톡합 μ‹λ³„μž μ‚¬μš©κ°€λŠ₯)
identifiersobjectXμ‚¬μš©μž μ •μ˜ μ‹λ³„μž
key(string)-value(string) Pair
propertiesobjectXμ‚¬μš©μž 속성
key(string)-value(string|number|boolean) Pair

Example

curl -i -X POST \
  'https://api.hackle.io/v1/variation' \
  -H 'X-HACKLE-API-KEY: YOUR_SDK_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "experimentKey": 42,
    "user": {
      "userId": "19285035",
      "deviceId": "ae2182e0",
      "identifiers": {
        "sessionId": "16930492542",
        "myCustomId": "ff01eae2"
      },
      "properties": {
        "grade": "GOLD",
        "age": 30,
        "isLogin": true
      }
    }
  }'

Response

200 OK

성곡적인 μš”μ²­μΈ 경우 200 응닡과 λΆ„λ°° κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

Response Body

FieldTypeDescription
variationstringλΆ„λ°°κ·Έλ£Ή (A, B, C, D, ...)
reasonstringλΆ„λ°°μ‚¬μœ 
parametersobject뢄배그룹에 μ„€μ •λœ νŒŒλΌλ―Έν„°

Example

{
  "variation": "B",
  "reason": "TRAFFIC_ALLOCATED",
  "parameters": {
    "buttonText": "Purchase",
    "buttonSize": 16
  }
}

400 Bad Request

μœ νš¨ν•˜μ§€ μ•Šμ€ μš”μ²­ 정보인 경우 400 μƒνƒœλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

401 Unauthorized

X-HACKLE-API-KEY 헀더값이 μ—†κ±°λ‚˜ μœ νš¨ν•˜μ§€ μ•Šμ€ SDK 킀인 경우 401 μƒνƒœλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€