콘텐츠로 이동

타겟팅 등록

타겟팅 등록 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 서버 또는 인증 서버 다운 상태

예제코드

  • 호출
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
  • 요청
> 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
  • 응답
< 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

Targeting 구조

구분 필드명 설명 타입 필수여부
Target Identifier playerId 네 가지 중 반드시 하나 이상 포함해야 함 Long O
vid Long
uid Long
did Long
app appid String O

Targeting 예제

[
 {
    "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

예제코드

  • 호출
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
  • 요청
> 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
  • 응답
< HTTP/1.1 200 OK
< content-length: 0
< Content-Type: application/json
< UUID: d4d177d3-2f90-48ba-ae97-37890045495a