[DEPRECATED] Feed(Web) 포스트백 API 연동
다음 연동은 포인트 시스템을 보유한 퍼블리셔가 적용해야 합니다.
사용자에게 보상을 지급하기 위해서 포스트백(Postback) 연동이 필요합니다. 포스트백 요청은 보안을 위해 서버 간 통신(Server-to-server) 형태로 진행됩니다.
포스트백 요청 정보
다음은 버즈빌이 퍼블리셔 엔드포인트로 보내는 포스트백 요청에 대한 정보입니다.
내용 | 설명 | |
---|---|---|
1 | 요청 방향 | 버즈빌 서버 → 퍼블리셔 서버 |
2 | HTTP Request method | POST - application/x-www-form-urlencoded |
3 | HTTP Request URL | 퍼블리셔 서버의 엔드포인트 (i.e |
4 | HTTP Request Parameters | 아래 포스트백 파라미터 테이블을 참고합니다. |
5 | HTTP Response Code | 버즈빌 서버는 퍼블리셔 서버로 부터 전달받은 응답 코드(Response Code)를 바탕으로 성공 여부를 판단합니다.
버즈빌 서버는 응답 내용(body)를 확인하지 않습니다. 요청 응답 내용에 에러가 포함되어 있어도 응답 코드가 200일 경우 성공으로 간주합니다. |
포스트백 파라미터
광고의 타입에 따라서 두 종류의 포스트백이 존재합니다. 각 타입에 관한 포스트백 파라미터 정보는 아래 테이블을 참고합니다.
노출형 광고 - CPC, CPM 타입의 광고를 의미합니다.
액션형 광고 - 액션을 기반으로 과금 및 사용자 보상이 지급되는 광고를 의미합니다.
파라미터 정보
파라미터 필드(Field) | 타입 | 노출형 | 액션형 | 설명 |
---|---|---|---|---|
| Long | O | O | 퍼블리셔 서비스의 |
| Integer | O | O | 광고가 노출된 웹 피드 지면의 ID 값입니다. 현재 주로 사용하는 값은 15자리의 숫자입니다. |
| String | O | O | 보상에 발급되는 Transaction ID 입니다. 리워드 중복 지급을 방지하기 위해 사용합니다.
|
| String | O | O | 퍼블리셔 사용자의 ID 입니다. 웹 피드 연동 시 전달 받은 값입니다. |
| Long | O | O | 리워드 포인트를 지급한 캠페인의 ID 입니다. |
| String | O | O | 리워드 포인트를 지급한 캠페인의 이름입니다. |
| String | X | O | 사용자가 참여한 광고의 제목입니다. |
| Integer | O | O | 사용자에게 지급해야 하는 리워드 금액입니다. |
| Integer | O | O |
|
| String | O | O | 광고의 타입입니다.
|
| String | O | O | 리워드를 받기 위한 사용자의 활동을 의미합니다.
|
| Long (timestamp) | O | O | 리워드 관련 행동이 일어난 시각을 의미합니다. |
| String | O | O | 퍼블리셔가 지정한 캠페인 데이터 입니다. JSON 형태의 문자열 값입니다. 대시보드에서 캠페인을 생성할 때 지정할 수 있습니다. e.g |
| decimal (18,9) | X | O | 퍼블리셔에게 제공되는 캠페인의 단위 금액입니다. |
| String | X | O | 사용자의 광고 ID 입니다. e.g GAID, IDFA |
| Integer | X | O | 액션형 광고를 위한 지급 리워드 금액입니다. |
| 0 or 1 | X | O | 해당 광고에 여러 번 참여할 수 있는지 의미합니다.
|
| String | OPTIONAL | 파라미터가 암호화 되어 있을 경우 사용합니다. 다음 요청 파라미터 검증 항목을 참고합니다. |
요청 파라미터 검증 OPTIONAL
보안을 위해 파라미터 암호화를 사용할 수 있습니다.
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
}
[1] 암호화
암호화는 JSON (UTF-8encoding) → AES encryption → base64 encoding 순서로 진행
sgfHOC5Z66tLmlokmQEaXY39u+64gMWhLnxQAZ9ivYsTvF1isjVfaRx2BNhOADwPR6KB55/7F7iXBm5FKU8mHmHnlR3wSomVAlcjtx77KluoYoXi/jRCvaFLGIo7vcK1GVHxS557u/XTo53/AzdPZpk/aXkvFZvWPgS+GWj1TWle0mBJ0xOgfmb8LwMfi4rvfayTph3bZeryLuphorBzMoIhf+kQLyjfIyouWVoCh6UICeRBgzTS9SlgdUA6M1PVlCsQch0zKVeTJZEFEn8478QbpEEhgHDhXkzdo8tXgkw=
[2] 복호화
복호화는 base64 decoding → AES decryption → UTF-8 decoding 순서로 진행
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 을 거치지 않아도 같은 결과가 나옵니다.