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
Field | Type | Required | Description |
---|---|---|---|
experimentKey | number | O | λΆλ°° λμ A/B ν μ€νΈ μ€νν€ |
user | User object | O | λΆλ°° λμ μ¬μ©μ |
User Object
Field | Type | Required | Description |
---|---|---|---|
userId | string | X | μ¬μ©μ ID (ν΅ν΄ ν΅ν©μλ³μ μ¬μ© κ°λ₯) |
deviceId | string | X | λλ°μ΄μ€ ID (ν΅ν΄ ν΅ν© μλ³μ μ¬μ©κ°λ₯) |
identifiers | object | X | μ¬μ©μ μ μ μλ³μ key(string)-value(string) Pair |
properties | object | X | μ¬μ©μ μμ± 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
Field | Type | Description |
---|---|---|
variation | string | λΆλ°°κ·Έλ£Ή (A, B, C, D, ...) |
reason | string | λΆλ°°μ¬μ |
parameters | object | λΆλ°°κ·Έλ£Ήμ μ€μ λ νλΌλ―Έν° |
Example
{
"variation": "B",
"reason": "TRAFFIC_ALLOCATED",
"parameters": {
"buttonText": "Purchase",
"buttonSize": 16
}
}
400 Bad Request
μ ν¨νμ§ μμ μμ² μ λ³΄μΈ κ²½μ° 400 μνλ₯Ό λ°νν©λλ€.
401 Unauthorized
X-HACKLE-API-KEY
ν€λκ°μ΄ μκ±°λ μ ν¨νμ§ μμ SDK ν€μΈ κ²½μ° 401 μνλ₯Ό λ°νν©λλ€
Updated 10 months ago