유저가 버즈빌 프로덕트를 통해 적립받은 포인트가 실제 퍼블리셔의 포인트로 적립되기 위해서는 버즈빌 서버와 퍼블리셔의 서버 간 연동이 필요합니다.
퍼블리셔의 상황에 따른 연동 방법
Expand | ||
---|---|---|
| ||
아래의 절차에 따라 진행합니다.
|
Expand | ||
---|---|---|
| ||
퍼블리셔 앱에 버즈빌의 포인트 시스템 (BuzzStore) 을 연동합니다. 해당 문서의 연동 가이드에 따라 진행해주세요. |
Index
Table of Contents | ||||
---|---|---|---|---|
|
...
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 요청의 성공 여부를 결정
|
HTTP Request Parameters
포인트 적립 포스트백은 포인트를 적립받은 상황에 따라 아래 두 가지 유형으로 나뉘어 전송됩니다. 각 유형 별로 포스트백에 포함되는 필드 값들은 아래 표를 참고해주세요.
...
필드 | 타입 | 노출형 | 액션형 | 설명 | ||||||
---|---|---|---|---|---|---|---|---|---|---|
| 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 | 포인트 지급 시점 대부분 API 호출시점과 동일하지만 API 호출이 재시도인 경우 다를 수 있습니다. | ||||||
| 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 |
| 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
를 사용
...
위의 암호화된 문장을 복호화하면,
base64 decoding)
Code Block \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
Code Block {"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}
UTF-8 decoding
Code Block {"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}
(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 사이에는 띄어쓰기가 없습니다.Code Block msg=u'{0}:{1}:{2}:{3}'.format( params['transaction_id'], params['user_id'], params['campaign_id'], params['point'], ).encode('utf-8')
HMAC SHA-256 알고리즘을 사용하여
msg
값을 암호화key: 1번에서 발급받은
hmac_key
data: 2번에서 생성한
msg
전달받은 포스트백 파라미터 중
c
필드의 값과 비교, 일치 여부를 확인결과값 길이: 64자
예제
hmac_key
=12345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh
Code Block { "transaction_id": 429482977, "user_id": "testuserid76301", "campaign_id": 3467, "point": 2, "c": "57a11e913980277b6fb628ca0aa8bf09f8dc368015a9d53db56299d5c6121998" }
msg
=429482977:testuserid76301:3467:2