타겟팅 등록 API는 정보 등록 API와 데이터 등록 API로 나뉩니다. 타겟팅 정보 등록 API가 타겟팅 기본 정보를 요청하면, 이 API를 연동해 반환하는 타겟팅 ID 값과 타겟팅 본문은 타겟팅 데이터 등록 API에서 저장 요청합니다.
연동 준비사항
타겟팅 정보 등록 API를 연동하려면 인증토큰(API KEY)을 발급받아야 합니다. 토큰을 이미 발급받았다면 추가할 권한만 요청합니다. HIVE Server API > 노티피케이션 > 푸시 v4 > 인증에서 인증토큰 발급과 요청 방법을 확인하세요.
타겟팅 정보 등록 API
기본 정보 및 요청 변수
Method | POST | ||||
URL | /push/targets | ||||
구분 | 필드명 | 설명 | 타입 | 필수여부 | |
Header | Content-Type | application/json;charset=utf-8 | |||
Authorization | bearer {{API KEY}} | ||||
Body | company | 회사명 (예: gamevil, com2us, gcp) | String | O | |
companyIndex | 회사 코드 (앱 센터에 등록된 회사 번호) | Integer | O | ||
registrant | id | 등록 요청자 ID | String | O | |
name | 등록 요청자 이름 | String | X | ||
description | 타겟팅 제목 또는 설명 | String | O | ||
game | gameindex | 게임인덱스 | Integer | O |
출력 결과
구분 | 필드명 | 설명 | 타입 | 필수여부 | |
Header | Content-Type | application/json;charset=utf-8 | |||
UUID | {{UUID}} | ||||
Body | id | 타겟팅 ID | Long | O | |
company | Request 정보와 동일 | String | O | ||
companyIndex | Integer | O | |||
registrant | id | String | O | ||
name | String | X | |||
description | String | O | |||
game | gameindex | Integer | O | ||
available | 가용성 | Boolean | O |
응답 상태 코드
키 | 값 | 설명 |
---|---|---|
200 | 성공 | (Body는 비어 있음) |
400 | Bad Request | POST 데이터 누락 JSON 포맷 오류 데이터 내 필수 요소가 누락되었거나 유효하지 않음 Body에 담긴 reason 메시지로 에러에 대한 추가 확인이 가능함 |
401 | Unauthorized | 요청 메시지의 Authorization 헤더가 누락되었거나 그 값이 유효하지 않음 인증토큰(API KEY)이 등록되어 있지 않음 해당 API로의 접근 권한 없음 |
403 | Forbidden | Authorization 헤더의 인증 스킴이 “Bearer”가 아님 (현재 Bearer만 지원) |
404 | Not Found | 요청 URL이 잘못되었음 |
500 | Internal Server Error | 서버 내부적으로 문제가 발생함 |
502 | Bad Gateway | 푸시 게이트웨이 서버 과부하 네트워크가 잘못된 연결을 시도하였음 |
503 | Service Unavailable | API 서버 또는 인증 서버 다운 상태 |
예제코드
1 2 3 4 5 |
curl -L \ -d '{"companyIndex": 3, "company" : "gcp", "registrant":{"id":"pushmanager", "name":"푸시 관리자"}, "description":"푸시 타겟팅 테스트", "game":{"gameindex":592}}' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {API KEY}" \ https://sandbox-notification.qpyou.cn/push/targets |
1 2 3 4 5 6 7 |
> POST /push/targets HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: sandbox-notification.qpyou.cn > Accept: */* > Content-Type: application/json > Authorization: Bearer {API KEY} > Content-Length: 143 |
1 2 3 4 5 6 7 8 |
< HTTP/1.1 200 OK < Content-Length: 180 < Content-Type: application/json < UUID: 6f75eab9-9e66-40da-a375-a5209cea6a9c < * Connection #0 to host sandbox-notification.qpyou.cn left intact * Closing connection #0 {"id":11,"companyIndex": 3, "company" : "gcp", "game":{"gameindex":592},"description":"테스트 타겟팅","registrant":{"name":"identifier_name","id":"identifier_id"},"available":false,"locked":false} |
타겟팅 데이터 등록 API
기본 정보 및 요청 변수
Method | POST | ||||
URL | /push/targets/{{타겟팅 ID}}/direct/new | ||||
구분 | 필드명 | 설명 | 타입 | 필수여부 | |
---|---|---|---|---|---|
Header | Content-Type | application/json;charset=utf-8 | |||
Authorization | bearer {{API KEY}} | ||||
Body | – | 타겟팅 데이터 목록 타겟팅 구조와 예제는 아래에서 확인 |
Target[] | O |
구분 | 필드명 | 설명 | 타입 | 필수여부 | |
---|---|---|---|---|---|
Target | Identifier | playerId | 네 가지 중 반드시 하나 이상 포함해야 함 | Long | O |
vid | Long | ||||
uid | Long | ||||
did | Long | ||||
app | appid | String | O |
1 2 3 4 5 6 7 8 9 10 11 |
[ { "identifier": { "playerId": 1, "did": 1000 }, "app": { "appid": "com.gcp.stepbystep.ios.apple.global.ent" } } ] |
출력 결과
Header | Content-Type | application/json;charset=utf-8 | ||
---|---|---|---|---|
UUID | {{UUID}} | |||
SUCCESS: HTTP Status Code == 200 |
에러
구분 | 필드명 | 설명 | 타입 | 필수여부 | |
---|---|---|---|---|---|
FAILURE: HTTP Status Code !== 200 | |||||
Body | error | reason | 오류 발생 원인 | String | X |
예제코드
1 2 3 4 5 |
curl -L -H "Content-Type: application/json" -H "Authorization: Bearer {API KEY}" -d '[ { "identifier": { "playerId": 1, "did": 1000 }, "app": { "appid": "com.gcp.stepbystep.ios.apple.global.ent" } }, { "identifier": { "playerId": 2, "did": 2000 }, "app": { "appid": "com.gcp.stepbystep.android.google.global.normal" } } ]' https://sandbox-notification.qpyou.cn/push/targets/11/direct/new |
1 2 3 4 5 6 7 |
> POST /push/targets/11/direct/new HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: sandbox-notification.qpyou.cn > Accept: */* > Content-Type: application/json > Authorization: Bearer {API KEY} > Content-Length: 236 |
1 2 3 4 |
< HTTP/1.1 200 OK < content-length: 0 < Content-Type: application/json < UUID: d4d177d3-2f90-48ba-ae97-37890045495a |