[DEPRECATED] 포인트 적립 포스트백 API 연동
유저가 버즈빌 프로덕트를 통해 적립받은 포인트가 실제 퍼블리셔의 포인트로 적립되기 위해서는 버즈빌 서버와 퍼블리셔의 서버 간 연동이 필요합니다.
퍼블리셔의 상황에 따른 연동 방법
Index
Introduction
BuzzScreen SDK, BuzzAd SDK, Offerwall SDK 또는 Offerwall API를 통해 유저가 포인트를 지급받은 경우, 매체사에게 이 사실을 전달하여 적립 요청을 보내기 위한 API입니다.
항목 | 내용 | |
---|---|---|
1 | 요청 방향 | 버즈빌 → 매체사 |
2 | HTTP Request method | POST - application/x-www-form-urlencoded |
3 | HTTP Request URL | 매체사에서 정의 |
4 | HTTP Request Parameters | 아래 표 참고 |
5 | HTTP Response Code | 매체사로부터 받은 응답 코드에 따라 해당 Postback 요청의 성공 여부를 결정
body에 오류 내용을 담더라도 응답 코드가 200인 경우 재시도하지 않으므로 주의해 주세요. |
HTTP Request Parameters
포인트 적립 포스트백은 포인트를 적립받은 상황에 따라 아래 두 가지 유형으로 나뉘어 전송됩니다. 각 유형 별로 포스트백에 포함되는 필드 값들은 아래 표를 참고해주세요.
노출형
버즈스크린 지면에서 기본포인트를 적립한 경우
또는 CPC, CPM 타입의 광고 포인트를 적립한 경우
액션형
CPC, CPM 외의 광고 포인트를 적립한 경우 (아래 파라미터 중
action_type
이a
인 경우에 해당)
필드 | 타입 | 노출형 | 액션형 | 설명 |
---|---|---|---|---|
| Integer | O | O |
현재 주로 전달하는 값은 15자리의 숫자입니다. |
| String | O | O | 포인트 중복 적립을 막기 위한 id
★ 같은 |
| String | O | O | 매체사에서 정의한 유저의 식별값
|
| Long | O | O | 포인트가 지급된 캠페인의 id
|
| String | O | O | 포인트가 지급된 캠페인의 이름 |
| String | X | O | 참여한 광고의 이름 |
| Integer | O | O | 유저에게 지급할 포인트의 전체 합
|
| Integer | O | X | 유저에게 정해진 기본포인트 주기마다 제공해주는 포인트
|
| Integer | O | O |
|
| String | O | O | 포인트가 지급된 캠페인의 타입
|
| String | O | O | 포인트를 지급 받기 위해 유저가 취한 액션 타입
|
| Long (timestamp) | O | O | 포인트 지급 시점 |
| String | O | O | 매체사가 자체 정의한 캠페인 데이터의 json serialize된 스트링 e.g. |
| decimal (18,9) | X | O | 포인트가 지급된 캠페인의 매체사 단가 |
| String | X | O |
|
| String | X | O | 유저의 광고 id (AOS: Google Ad ID, iOS: IDFA) |
| Integer | X | O | 유저에게 지급할 포인트 금액 (액션형에서 사용하는 파라미터)
|
| 0 or 1 | X | O |
|
| String | optional | HTTP request parameter를 암호화 해서 전송하는 경우 사용되는 파라미터 | |
| String | O | X | 랜딩/잠금해제 구분자
|
Request Parameter Validation (Optional)
버즈빌서버에서 전달되는 포스트백을 암호화 할 수 있습니다. 이 과정은 필수 적용 항목은 아니고, 필요한 경우, 아래의 두 가지 방법 중 한 가지를 적용하면 됩니다.
1. HTTP Request Parameter Encryption/Decryption
BuzzScreen에서 매체사로 보내는 HTTP Request parameter를 암호화 하고 싶은 경우 사용합니다. 아래 과정에 따라 암호화를 진행할 수 있습니다.
진행 절차
암호화 키 발급
버즈빌 BD 매니저와 사전 협의
이메일(tech-support@buzzvil.com)을 통해 암호화 키를 요청하면 AES key, IV 값을 지급
BuzzScreen 에서 아래 순서대로 파라미터를 암호화
JSON serialized parameters with UTF-8 encoding
AES(CBC mode, PKCS7 padding) encryption
base64 encoding
암호화된 데이터를 HTTP POST request 파라미터에
data
라는 이름으로 추가하여 전송수신 측 (매체사) 에서는 HTTP POST request에서
data
파라미터를 가져와 아래와 같은 순서로 복호화base64 decoding
AES decoding
JSON load
예제
예제에서는 AES key, IV 값으로 모두
12341234asdfasdf
를 사용
{
"event_at": 1442984268,
"user_id": "testuserid76301",
"action_type": "u",
"extra": "{}",
"is_media": 0,
"base_point": 2,
"point": 2,
"campaign_name": "test campaign",
"campaign_id": 3467,
"transaction_id": 429482977
}
암호화 결과
JSON (UTF-8encoding) → AES encryption → base64 encoding 순서로 진행
sgfHOC5Z66tLmlokmQEaXY39u+64gMWhLnxQAZ9ivYsTvF1isjVfaRx2BNhOADwPR6KB55/7F7iXBm5FKU8mHmHnlR3wSomVAlcjtx77KluoYoXi/jRCvaFLGIo7vcK1GVHxS557u/XTo53/AzdPZpk/aXkvFZvWPgS+GWj1TWle0mBJ0xOgfmb8LwMfi4rvfayTph3bZeryLuphorBzMoIhf+kQLyjfIyouWVoCh6UICeRBgzTS9SlgdUA6M1PVlCsQch0zKVeTJZEFEn8478QbpEEhgHDhXkzdo8tXgkw=
위의 암호화된 문장을 복호화하면,
base64 decoding)
\xb2\x07\xc78.Y\xeb\xabK\x9aZ$\x99\x01\x1a]\x8d\xfd\xbb\xee\xb8\x80\xc5\xa1.|P\x01\x9fb\xbd\x8b\x13\xbc]b\xb25_i\x1cv\x04\xd8N\x00<\x0fG\xa2\x81\xe7\x9f\xfb\x17\xb8\x97\x06nE)O&\x1ea\xe7\x95\x1d\xf0J\x89\x95\x02W#\xb7\x1e\xfb*[\xa8b\x85\xe2\xfe4B\xbd\xa1K\x18\x8a;\xbd\xc2\xb5\x19Q\xf1K\x9e{\xbb\xf5\xd3\xa3\x9d\xff\x037Of\x99?iy/\x15\x9b\xd6>\x04\xbe\x19h\xf5Mi^\xd2`I\xd3\x13\xa0~f\xfc/\x03\x1f\x8b\x8a\xef}\xac\x93\xa6\x1d\xdbe\xea\xf2.\xeaa\xa2\xb0s2\x82!\x7f\xe9\x10/(\xdf#*.YZ\x02\x87\xa5\x08\t\xe4A\x834\xd2\xf5)`u@:3S\xd5\x94+\x10r\x1d3)W\x93%\x91\x05\x12\x7f8\xef\xc4\x1b\xa4A!\x80p\xe1^L\xdd\xa3\xcbW\x82L
AES decryption) Key, IV:
12341234asdfasdf
UTF-8 decoding
(memo) 위의 예제에 한글이 없기 때문에 UTF-8 decoding 을 거치지 않아도 같은 결과가 나옵니다.
2. Add Checksum Parameter
포스트백 데이터 검증을 위해 Request Parameters 에 Checksum parameter를 추가하고자 하는 경우 사용합니다.
진행 절차
BD 매니저에게
hmac_key
를 요청하여 키 값을 수령전달받은 포스트백 파라미터 중
transaction_id
,user_id
,campaign_id
,point
값으로 아래 형식대로 String을 생성 (이하 "msg"
)주의사항 :
msg
값은 인코딩되어야 하며, 각 파라미터 string 과 colon 사이에는 띄어쓰기가 없습니다.
HMAC SHA-256 알고리즘을 사용하여
msg
값을 암호화key: 1번에서 발급받은
hmac_key
data: 2번에서 생성한
msg
전달받은 포스트백 파라미터 중
c
필드의 값과 비교, 일치 여부를 확인결과값 길이: 64자
예제
hmac_key
=12345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh
msg
=429482977:testuserid76301:3467:2